diff --git a/.github/actions/dependenciesActions/action.yml b/.github/actions/dependenciesActions/action.yml index 0dc5d217e..2615e8125 100644 --- a/.github/actions/dependenciesActions/action.yml +++ b/.github/actions/dependenciesActions/action.yml @@ -11,6 +11,14 @@ runs: - name: Install dependencies run: | python -m pip install --upgrade pip + pip install cython + pip install dd # to first install dependencies of `dd` + pip uninstall -y dd + pip download --no-binary dd --no-deps dd + tar -xzf dd-*.tar.gz + pushd dd-*/ + python setup.py install --fetch --cudd + popd pip install wheel pip install -e ./varats-core pip install -e ./varats diff --git a/.vscode/launch.json b/.vscode/launch.json index 1e97e24c8..10a7253b6 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,16 +6,179 @@ "type": "python", "request": "launch", "program": "~/.local/bin/benchbuild", - "cwd": "${workspaceFolder}/../vara-root/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", "args": [ "run", "-E", - "JustCompile", + "GenerateCoverage", + "FeaturePerfCSCollection" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "benchbuildXZ", + "type": "python", + "request": "launch", + "program": "~/.local/bin/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", + "args": [ + "run", + "-E", + "GenerateCoverage", + "xz" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "benchbuildECT", + "type": "python", + "request": "launch", + "program": "~/.local/bin/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", + "args": [ + "run", + "-E", + "GenerateCoverage", + "ect" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "benchbuildGZIP", + "type": "python", + "request": "launch", + "program": "~/.local/bin/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", + "args": [ + "run", + "-E", + "GenerateCoverage", "gzip" ], "justMyCode": false, "console": "integratedTerminal" + }, + { + "name": "benchbuildSynthIPRuntime", + "type": "python", + "request": "launch", + "program": "~/.local/bin/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", + "args": [ + "run", + "-E", + "GenerateCoverage", + "SynthIPRuntime" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "benchbuildSynthDARecursion", + "type": "python", + "request": "launch", + "program": "~/.local/bin/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", + "args": [ + "run", + "-E", + "GenerateCoverage", + "SynthDARecursion" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "benchbuildSynthSAFlowSensitivity", + "type": "python", + "request": "launch", + "program": "~/.local/bin/benchbuild", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/benchbuild", + "args": [ + "run", + "-E", + "GenerateCoverage", + "SynthSAFlowSensitivity" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + + + { + "name": "plot", + "type": "python", + "request": "launch", + "program": "/home/mmustermann/Dokumente/VARA-root2/.venv/bin/vara-plot", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/", + "args": [ + "coverage", + "--experiment-type", + "GenerateCoverage", + "--case-study", + "FeaturePerfCSCollection_0" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "plotXZ", + "type": "python", + "request": "launch", + "program": "/home/mmustermann/Dokumente/VARA-root2/.venv/bin/vara-plot", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/", + "args": [ + "coverage", + "--experiment-type", + "GenerateCoverage", + "--case-study", + "xz_0" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "plotECT", + "type": "python", + "request": "launch", + "program": "/home/mmustermann/Dokumente/VARA-root2/.venv/bin/vara-plot", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/", + "args": [ + "coverage", + "--experiment-type", + "GenerateCoverage", + "--case-study", + "ect_0" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "plotSynthDADynamicDispatch", + "type": "python", + "request": "launch", + "program": "/home/mmustermann/Dokumente/VARA-root2/.venv/bin/vara-plot", + "cwd": "/home/mmustermann/Dokumente/VARA-root2/", + "args": [ + "coverage", + "--experiment-type", + "GenerateCoverage", + "--case-study", + "SynthDADynamicDispatch_0" + ], + "justMyCode": false, + "console": "integratedTerminal" + }, + { + "name": "Debug Unit Test", + "type": "python", + "request": "test", + "justMyCode": false, } + ] } // This configuration needs vara-root next to VaRA-Tool-Suite. diff --git a/my_case_studies/FeaturePerfCSCollection_0.case_study b/my_case_studies/FeaturePerfCSCollection_0.case_study new file mode 100644 index 000000000..8ae4f2714 --- /dev/null +++ b/my_case_studies/FeaturePerfCSCollection_0.case_study @@ -0,0 +1,24 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: FeaturePerfCSCollection +stages: +- revisions: + - commit_hash: 4300ea495e7f013f68e785fdde5c4ead81297999 + commit_id: 36 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--enc"]' +2: '["--compress"]' +3: '["--enc", "--compress"]' +... diff --git a/my_case_studies/FeaturePerfCSCollection_0.case_study.MSMR b/my_case_studies/FeaturePerfCSCollection_0.case_study.MSMR new file mode 100644 index 000000000..410fdc9e0 --- /dev/null +++ b/my_case_studies/FeaturePerfCSCollection_0.case_study.MSMR @@ -0,0 +1,48 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: FeaturePerfCSCollection +stages: +- revisions: + - commit_hash: 4300ea495e7f013f68e785fdde5c4ead81297999 + commit_id: 36 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--extern"]' +2: '["--slow"]' +3: '["--cpp"]' +4: '["--cpp", "--extern"]' +5: '["--cpp", "--slow", "--extern"]' +6: '["--cpp", "--slow"]' +7: '["--slow", "--extern"]' +8: '["--header"]' +9: '["--extern", "--header"]' +10: '["--slow", "--header"]' +11: '["--slow", "--extern", "--header"]' +12: '["--cpp", "--header"]' +13: '["--cpp", "--extern", "--header"]' +14: '["--cpp", "--slow", "--header"]' +15: '["--cpp", "--slow", "--extern", "--header"]' +... diff --git a/my_case_studies/FeaturePerfCSCollection_0.case_study.MSMR.old b/my_case_studies/FeaturePerfCSCollection_0.case_study.MSMR.old new file mode 100644 index 000000000..ef3a8bd48 --- /dev/null +++ b/my_case_studies/FeaturePerfCSCollection_0.case_study.MSMR.old @@ -0,0 +1,24 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: FeaturePerfCSCollection +stages: +- revisions: + - commit_hash: 27f17080376e409860405c40744887d81d6b3f34 + commit_id: 22 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--slow"]' +2: '["--header"]' +3: '["--slow", "--header"]' +... diff --git a/my_case_studies/FeaturePerfCSCollection_0.case_study.SFI b/my_case_studies/FeaturePerfCSCollection_0.case_study.SFI new file mode 100644 index 000000000..8ae4f2714 --- /dev/null +++ b/my_case_studies/FeaturePerfCSCollection_0.case_study.SFI @@ -0,0 +1,24 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: FeaturePerfCSCollection +stages: +- revisions: + - commit_hash: 4300ea495e7f013f68e785fdde5c4ead81297999 + commit_id: 36 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--enc"]' +2: '["--compress"]' +3: '["--enc", "--compress"]' +... diff --git a/my_case_studies/SynthDADynamicDispatch_0.case_study b/my_case_studies/SynthDADynamicDispatch_0.case_study new file mode 100644 index 000000000..8872337a7 --- /dev/null +++ b/my_case_studies/SynthDADynamicDispatch_0.case_study @@ -0,0 +1,22 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthDADynamicDispatch +stages: +- revisions: + - commit_hash: 04de0642afe35a42931e03c670b588e8f294dcfc + commit_id: 47 + config_ids: + - 0 + - 1 + - 2 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--brut-force"]' +1: '["--sorting"]' +2: '["--hashing"]' +... diff --git a/my_case_studies/SynthDARecursion_0.case_study b/my_case_studies/SynthDARecursion_0.case_study new file mode 100644 index 000000000..979950c0f --- /dev/null +++ b/my_case_studies/SynthDARecursion_0.case_study @@ -0,0 +1,24 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthDARecursion +stages: +- revisions: + - commit_hash: daf81de0738cb861b800c4dae1a805e8dabaa544 + commit_id: 46 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--rev"]' +2: '["--limit 0"]' +3: '["--limit 0", "--rev"]' +... diff --git a/my_case_studies/SynthIPRuntime_0.case_study b/my_case_studies/SynthIPRuntime_0.case_study new file mode 100644 index 000000000..14c112fab --- /dev/null +++ b/my_case_studies/SynthIPRuntime_0.case_study @@ -0,0 +1,26 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthIPRuntime +stages: +- revisions: + - commit_hash: 793035062810ea3a2d9a10f831cd199fbbb82090 + commit_id: 53 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-c"]' +1: '["-c", "-1"]' +2: '["-c", "-2"]' +3: '["-c", "-1", "-2"]' +4: '["-d"]' +... diff --git a/my_case_studies/SynthOVInsideLoop_0.case_study b/my_case_studies/SynthOVInsideLoop_0.case_study new file mode 100644 index 000000000..025d13361 --- /dev/null +++ b/my_case_studies/SynthOVInsideLoop_0.case_study @@ -0,0 +1,24 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthOVInsideLoop +stages: +- revisions: + - commit_hash: 51d3c768e5688a6471cb77d36433804088496ca8 + commit_id: 51 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--verbose"]' +2: '["--reverse"]' +3: '["--verbose", "--reverse"]' +... diff --git a/my_case_studies/SynthSAContextSensitivity_0.case_study b/my_case_studies/SynthSAContextSensitivity_0.case_study new file mode 100644 index 000000000..d873d9d07 --- /dev/null +++ b/my_case_studies/SynthSAContextSensitivity_0.case_study @@ -0,0 +1,40 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthSAContextSensitivity +stages: +- revisions: + - commit_hash: 06eac0edb6886a7e487867c8d5629cb2409b54fd + commit_id: 43 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--mem 1275"]' +1: '["--mem 1275", "--compress"]' +2: '["--mem 765"]' +3: '["--mem 1020"]' +4: '["--mem 0"]' +5: '["--mem 255"]' +6: '["--mem 510"]' +7: '["--mem 255", "--compress"]' +8: '["--mem 510", "--compress"]' +9: '["--mem 1020", "--compress"]' +10: '["--mem 765", "--compress"]' +11: '["--mem 0", "--compress"]' +... diff --git a/my_case_studies/SynthSAFlowSensitivity_0.case_study b/my_case_studies/SynthSAFlowSensitivity_0.case_study new file mode 100644 index 000000000..5a103a274 --- /dev/null +++ b/my_case_studies/SynthSAFlowSensitivity_0.case_study @@ -0,0 +1,24 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthSAFlowSensitivity +stages: +- revisions: + - commit_hash: 06eac0edb6886a7e487867c8d5629cb2409b54fd + commit_id: 43 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--rec"]' +2: '["--cutoff 4"]' +3: '["--cutoff 4", "--rec"]' +... diff --git a/my_case_studies/SynthSAWholeProgram_0.case_study b/my_case_studies/SynthSAWholeProgram_0.case_study new file mode 100644 index 000000000..6815143df --- /dev/null +++ b/my_case_studies/SynthSAWholeProgram_0.case_study @@ -0,0 +1,32 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: SynthSAWholeProgram +stages: +- revisions: + - commit_hash: 06eac0edb6886a7e487867c8d5629cb2409b54fd + commit_id: 43 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--fast"]' +2: '["--print", "--fast"]' +3: '["--count", "--print"]' +4: '["--count", "--fast"]' +5: '["--count", "--print", "--fast"]' +6: '["--print"]' +7: '["--count"]' +... diff --git a/my_case_studies/bzip2_0.case_study b/my_case_studies/bzip2_0.case_study new file mode 100644 index 000000000..5d1005591 --- /dev/null +++ b/my_case_studies/bzip2_0.case_study @@ -0,0 +1,208 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: bzip2 +stages: +- revisions: + - commit_hash: 1ea1ac188ad4b9cb662e3f8314673c63df95a589 + commit_id: 193 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--compress", "-9"]' +1: '["-9", "--decompress"]' +2: '["-9", "--decompress", "--small"]' +3: '["-9", "--force", "--decompress", "--small"]' +4: '["-1", "--force", "--decompress"]' +5: '["-1", "--decompress", "--small"]' +6: '["-1", "--force", "--decompress", "--small"]' +7: '["--compress", "-1", "--force", "--small"]' +8: '["--compress", "-9", "--small"]' +9: '["--compress", "-9", "--force"]' +10: '["--compress", "-9", "--force", "--small"]' +11: '["--compress", "-1", "--small"]' +12: '["--compress", "-1"]' +13: '["--compress", "-9", "--keep"]' +14: '["--compress", "-9", "--force", "--keep"]' +15: '["--compress", "-1", "--force", "--keep"]' +16: '["--compress", "-1", "--force"]' +17: '["-1", "--decompress"]' +18: '["-9", "--force", "--decompress"]' +19: '["-9", "--force", "--keep", "--decompress"]' +20: '["-1", "--force", "--keep", "--decompress"]' +21: '["-9", "--keep", "--quiet", "--decompress"]' +22: '["-9", "--force", "--quiet", "--decompress"]' +23: '["-9", "--force", "--keep", "--quiet", "--decompress"]' +24: '["-1", "--force", "--keep", "--quiet", "--decompress"]' +25: '["-9", "--force", "--keep", "--quiet", "--test"]' +26: '["-1", "--test"]' +27: '["-1", "--quiet", "--test"]' +28: '["-1", "--force", "--keep", "--test"]' +29: '["-1", "--force", "--keep", "--quiet", "--test"]' +30: '["-9", "--force", "--quiet", "--test"]' +31: '["-1", "--force", "--test"]' +32: '["-1", "--force", "--quiet", "--test"]' +33: '["-1", "--force", "--quiet", "--decompress"]' +34: '["-9", "--force", "--quiet", "--decompress", "--small"]' +35: '["-1", "--quiet", "--decompress", "--small"]' +36: '["-1", "--force", "--quiet", "--decompress", "--small"]' +37: '["-9", "--quiet", "--decompress"]' +38: '["-1", "--quiet", "--decompress"]' +39: '["--compress", "-9", "--quiet"]' +40: '["--compress", "-1", "--quiet"]' +41: '["--compress", "-9", "--keep", "--quiet"]' +42: '["--compress", "-1", "--keep", "--quiet"]' +43: '["--compress", "-9", "--force", "--keep", "--quiet"]' +44: '["--compress", "-1", "--force", "--quiet"]' +45: '["--compress", "-1", "--force", "--keep", "--quiet"]' +46: '["--compress", "-9", "--force", "--keep", "--quiet", "--small"]' +47: '["--compress", "-1", "--force", "--quiet", "--small"]' +48: '["--compress", "-1", "--keep", "--small"]' +49: '["--compress", "-1", "--keep", "--quiet", "--small"]' +50: '["--compress", "-1", "--force", "--keep", "--quiet", "--small"]' +51: '["-9", "--force", "--keep", "--quiet", "--decompress", "--small"]' +52: '["-1", "--force", "--keep", "--quiet", "--decompress", "--small"]' +53: '["-9", "--force", "--keep", "--test", "--small"]' +54: '["-9", "--quiet", "--test", "--small"]' +55: '["-9", "--keep", "--quiet", "--test", "--small"]' +56: '["-9", "--force", "--keep", "--quiet", "--test", "--small"]' +57: '["-1", "--force", "--keep", "--quiet", "--test", "--small"]' +58: '["-1", "--force", "--keep", "--test", "--small"]' +59: '["-9", "--test", "--small"]' +60: '["-9", "--keep", "--test"]' +61: '["-9", "--keep", "--test", "--small"]' +62: '["-1", "--keep", "--test", "--small"]' +63: '["-1", "--keep", "--test"]' +64: '["-9", "--force", "--keep", "--test"]' +65: '["-9", "--force", "--test"]' +66: '["-9", "--force", "--test", "--small"]' +67: '["-1", "--force", "--test", "--small"]' +68: '["-9", "--force", "--keep", "--decompress", "--small"]' +69: '["-1", "--force", "--keep", "--decompress", "--small"]' +70: '["-9", "--keep", "--decompress", "--small"]' +71: '["-1", "--keep", "--decompress", "--small"]' +72: '["--compress", "-9", "--keep", "--small"]' +73: '["--compress", "-1", "--keep"]' +74: '["-9", "--test"]' +75: '["-9", "--quiet", "--test"]' +76: '["-9", "--quiet", "--decompress", "--small"]' +77: '["-1", "--quiet", "--test", "--small"]' +78: '["-9", "--keep", "--quiet", "--decompress", "--small"]' +79: '["-1", "--keep", "--quiet", "--decompress", "--small"]' +80: '["-1", "--keep", "--quiet", "--test", "--small"]' +81: '["-1", "--keep", "--quiet", "--decompress"]' +82: '["-9", "--keep", "--quiet", "--test"]' +83: '["-1", "--keep", "--quiet", "--test"]' +84: '["--compress", "-9", "--keep", "--quiet", "--small"]' +85: '["--compress", "-9", "--quiet", "--small"]' +86: '["--compress", "-1", "--quiet", "--small"]' +87: '["-1", "--test", "--small"]' +88: '["-9", "--force", "--quiet", "--test", "--small"]' +89: '["-1", "--force", "--quiet", "--test", "--small"]' +90: '["--compress", "-9", "--force", "--quiet"]' +91: '["-9", "--keep", "--decompress"]' +92: '["-1", "--keep", "--decompress"]' +93: '["--compress", "-9", "--force", "--quiet", "--small"]' +94: '["--compress", "-9", "--force", "--keep", "--small"]' +95: '["--compress", "-1", "--force", "--keep", "--small"]' +... diff --git a/my_case_studies/bzip2_0.case_study.minimal b/my_case_studies/bzip2_0.case_study.minimal new file mode 100644 index 000000000..02cab4fde --- /dev/null +++ b/my_case_studies/bzip2_0.case_study.minimal @@ -0,0 +1,22 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: bzip2 +stages: +- revisions: + - commit_hash: 1ea1ac188ad4b9cb662e3f8314673c63df95a589 + commit_id: 193 + config_ids: + - 0 + - 1 + - 2 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--decompress"]' +1: '["--test"]' +2: '["--compress"]' +... diff --git a/my_case_studies/bzip2_0.case_study.reduced b/my_case_studies/bzip2_0.case_study.reduced new file mode 100644 index 000000000..5d1005591 --- /dev/null +++ b/my_case_studies/bzip2_0.case_study.reduced @@ -0,0 +1,208 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: bzip2 +stages: +- revisions: + - commit_hash: 1ea1ac188ad4b9cb662e3f8314673c63df95a589 + commit_id: 193 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--compress", "-9"]' +1: '["-9", "--decompress"]' +2: '["-9", "--decompress", "--small"]' +3: '["-9", "--force", "--decompress", "--small"]' +4: '["-1", "--force", "--decompress"]' +5: '["-1", "--decompress", "--small"]' +6: '["-1", "--force", "--decompress", "--small"]' +7: '["--compress", "-1", "--force", "--small"]' +8: '["--compress", "-9", "--small"]' +9: '["--compress", "-9", "--force"]' +10: '["--compress", "-9", "--force", "--small"]' +11: '["--compress", "-1", "--small"]' +12: '["--compress", "-1"]' +13: '["--compress", "-9", "--keep"]' +14: '["--compress", "-9", "--force", "--keep"]' +15: '["--compress", "-1", "--force", "--keep"]' +16: '["--compress", "-1", "--force"]' +17: '["-1", "--decompress"]' +18: '["-9", "--force", "--decompress"]' +19: '["-9", "--force", "--keep", "--decompress"]' +20: '["-1", "--force", "--keep", "--decompress"]' +21: '["-9", "--keep", "--quiet", "--decompress"]' +22: '["-9", "--force", "--quiet", "--decompress"]' +23: '["-9", "--force", "--keep", "--quiet", "--decompress"]' +24: '["-1", "--force", "--keep", "--quiet", "--decompress"]' +25: '["-9", "--force", "--keep", "--quiet", "--test"]' +26: '["-1", "--test"]' +27: '["-1", "--quiet", "--test"]' +28: '["-1", "--force", "--keep", "--test"]' +29: '["-1", "--force", "--keep", "--quiet", "--test"]' +30: '["-9", "--force", "--quiet", "--test"]' +31: '["-1", "--force", "--test"]' +32: '["-1", "--force", "--quiet", "--test"]' +33: '["-1", "--force", "--quiet", "--decompress"]' +34: '["-9", "--force", "--quiet", "--decompress", "--small"]' +35: '["-1", "--quiet", "--decompress", "--small"]' +36: '["-1", "--force", "--quiet", "--decompress", "--small"]' +37: '["-9", "--quiet", "--decompress"]' +38: '["-1", "--quiet", "--decompress"]' +39: '["--compress", "-9", "--quiet"]' +40: '["--compress", "-1", "--quiet"]' +41: '["--compress", "-9", "--keep", "--quiet"]' +42: '["--compress", "-1", "--keep", "--quiet"]' +43: '["--compress", "-9", "--force", "--keep", "--quiet"]' +44: '["--compress", "-1", "--force", "--quiet"]' +45: '["--compress", "-1", "--force", "--keep", "--quiet"]' +46: '["--compress", "-9", "--force", "--keep", "--quiet", "--small"]' +47: '["--compress", "-1", "--force", "--quiet", "--small"]' +48: '["--compress", "-1", "--keep", "--small"]' +49: '["--compress", "-1", "--keep", "--quiet", "--small"]' +50: '["--compress", "-1", "--force", "--keep", "--quiet", "--small"]' +51: '["-9", "--force", "--keep", "--quiet", "--decompress", "--small"]' +52: '["-1", "--force", "--keep", "--quiet", "--decompress", "--small"]' +53: '["-9", "--force", "--keep", "--test", "--small"]' +54: '["-9", "--quiet", "--test", "--small"]' +55: '["-9", "--keep", "--quiet", "--test", "--small"]' +56: '["-9", "--force", "--keep", "--quiet", "--test", "--small"]' +57: '["-1", "--force", "--keep", "--quiet", "--test", "--small"]' +58: '["-1", "--force", "--keep", "--test", "--small"]' +59: '["-9", "--test", "--small"]' +60: '["-9", "--keep", "--test"]' +61: '["-9", "--keep", "--test", "--small"]' +62: '["-1", "--keep", "--test", "--small"]' +63: '["-1", "--keep", "--test"]' +64: '["-9", "--force", "--keep", "--test"]' +65: '["-9", "--force", "--test"]' +66: '["-9", "--force", "--test", "--small"]' +67: '["-1", "--force", "--test", "--small"]' +68: '["-9", "--force", "--keep", "--decompress", "--small"]' +69: '["-1", "--force", "--keep", "--decompress", "--small"]' +70: '["-9", "--keep", "--decompress", "--small"]' +71: '["-1", "--keep", "--decompress", "--small"]' +72: '["--compress", "-9", "--keep", "--small"]' +73: '["--compress", "-1", "--keep"]' +74: '["-9", "--test"]' +75: '["-9", "--quiet", "--test"]' +76: '["-9", "--quiet", "--decompress", "--small"]' +77: '["-1", "--quiet", "--test", "--small"]' +78: '["-9", "--keep", "--quiet", "--decompress", "--small"]' +79: '["-1", "--keep", "--quiet", "--decompress", "--small"]' +80: '["-1", "--keep", "--quiet", "--test", "--small"]' +81: '["-1", "--keep", "--quiet", "--decompress"]' +82: '["-9", "--keep", "--quiet", "--test"]' +83: '["-1", "--keep", "--quiet", "--test"]' +84: '["--compress", "-9", "--keep", "--quiet", "--small"]' +85: '["--compress", "-9", "--quiet", "--small"]' +86: '["--compress", "-1", "--quiet", "--small"]' +87: '["-1", "--test", "--small"]' +88: '["-9", "--force", "--quiet", "--test", "--small"]' +89: '["-1", "--force", "--quiet", "--test", "--small"]' +90: '["--compress", "-9", "--force", "--quiet"]' +91: '["-9", "--keep", "--decompress"]' +92: '["-1", "--keep", "--decompress"]' +93: '["--compress", "-9", "--force", "--quiet", "--small"]' +94: '["--compress", "-9", "--force", "--keep", "--small"]' +95: '["--compress", "-1", "--force", "--keep", "--small"]' +... diff --git a/my_case_studies/ect_0.case_study b/my_case_studies/ect_0.case_study new file mode 100644 index 000000000..761246b92 --- /dev/null +++ b/my_case_studies/ect_0.case_study @@ -0,0 +1,40 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: ect +stages: +- revisions: + - commit_hash: e98502a01ba807778df751b279e040432cafb844 + commit_id: 670 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-3"]' +1: '["-zip", "-3"]' +2: '["-3", "-gzip"]' +3: '["-3", "--disable-jpg"]' +4: '["-3", "--disable-png"]' +5: '["-3", "--disable-png", "--disable-jpg"]' +6: '["-3", "--disable-png", "-gzip"]' +7: '["-3", "--disable-png", "-gzip"]' +8: '["-3", "--disable-png", "--disable-jpg", "-gzip"]' +9: '["-zip", "-3", "--disable-png"]' +10: '["-zip", "-3", "--disable-jpg"]' +11: '["-zip", "-3", "--disable-png", "--disable-jpg"]' +... diff --git a/my_case_studies/ect_0.case_study.minimal b/my_case_studies/ect_0.case_study.minimal new file mode 100644 index 000000000..761246b92 --- /dev/null +++ b/my_case_studies/ect_0.case_study.minimal @@ -0,0 +1,40 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: ect +stages: +- revisions: + - commit_hash: e98502a01ba807778df751b279e040432cafb844 + commit_id: 670 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-3"]' +1: '["-zip", "-3"]' +2: '["-3", "-gzip"]' +3: '["-3", "--disable-jpg"]' +4: '["-3", "--disable-png"]' +5: '["-3", "--disable-png", "--disable-jpg"]' +6: '["-3", "--disable-png", "-gzip"]' +7: '["-3", "--disable-png", "-gzip"]' +8: '["-3", "--disable-png", "--disable-jpg", "-gzip"]' +9: '["-zip", "-3", "--disable-png"]' +10: '["-zip", "-3", "--disable-jpg"]' +11: '["-zip", "-3", "--disable-png", "--disable-jpg"]' +... diff --git a/my_case_studies/gzip_0.case_study b/my_case_studies/gzip_0.case_study new file mode 100644 index 000000000..725ff5129 --- /dev/null +++ b/my_case_studies/gzip_0.case_study @@ -0,0 +1,912 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: gzip +stages: +- revisions: + - commit_hash: 23a870d14a49803c6d2579071886c1acf497c9d1 + commit_id: 604 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 105 + - 106 + - 107 + - 108 + - 109 + - 110 + - 111 + - 112 + - 113 + - 114 + - 115 + - 116 + - 117 + - 118 + - 119 + - 120 + - 121 + - 122 + - 123 + - 124 + - 125 + - 126 + - 127 + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 136 + - 137 + - 138 + - 139 + - 140 + - 141 + - 142 + - 143 + - 144 + - 145 + - 146 + - 147 + - 148 + - 149 + - 150 + - 151 + - 152 + - 153 + - 154 + - 155 + - 156 + - 157 + - 158 + - 159 + - 160 + - 161 + - 162 + - 163 + - 164 + - 165 + - 166 + - 167 + - 168 + - 169 + - 170 + - 171 + - 172 + - 173 + - 174 + - 175 + - 176 + - 177 + - 178 + - 179 + - 180 + - 181 + - 182 + - 183 + - 184 + - 185 + - 186 + - 187 + - 188 + - 189 + - 190 + - 191 + - 192 + - 193 + - 194 + - 195 + - 196 + - 197 + - 198 + - 199 + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 209 + - 210 + - 211 + - 212 + - 213 + - 214 + - 215 + - 216 + - 217 + - 218 + - 219 + - 220 + - 221 + - 222 + - 223 + - 224 + - 225 + - 226 + - 227 + - 228 + - 229 + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + - 236 + - 237 + - 238 + - 239 + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 255 + - 256 + - 257 + - 258 + - 259 + - 260 + - 261 + - 262 + - 263 + - 264 + - 265 + - 266 + - 267 + - 268 + - 269 + - 270 + - 271 + - 272 + - 273 + - 274 + - 275 + - 276 + - 277 + - 278 + - 279 + - 280 + - 281 + - 282 + - 283 + - 284 + - 285 + - 286 + - 287 + - 288 + - 289 + - 290 + - 291 + - 292 + - 293 + - 294 + - 295 + - 296 + - 297 + - 298 + - 299 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + - 309 + - 310 + - 311 + - 312 + - 313 + - 314 + - 315 + - 316 + - 317 + - 318 + - 319 + - 320 + - 321 + - 322 + - 323 + - 324 + - 325 + - 326 + - 327 + - 328 + - 329 + - 330 + - 331 + - 332 + - 333 + - 334 + - 335 + - 336 + - 337 + - 338 + - 339 + - 340 + - 341 + - 342 + - 343 + - 344 + - 345 + - 346 + - 347 + - 348 + - 349 + - 350 + - 351 + - 352 + - 353 + - 354 + - 355 + - 356 + - 357 + - 358 + - 359 + - 360 + - 361 + - 362 + - 363 + - 364 + - 365 + - 366 + - 367 + - 368 + - 369 + - 370 + - 371 + - 372 + - 373 + - 374 + - 375 + - 376 + - 377 + - 378 + - 379 + - 380 + - 381 + - 382 + - 383 + - 384 + - 385 + - 386 + - 387 + - 388 + - 389 + - 390 + - 391 + - 392 + - 393 + - 394 + - 395 + - 396 + - 397 + - 398 + - 399 + - 400 + - 401 + - 402 + - 403 + - 404 + - 405 + - 406 + - 407 + - 408 + - 409 + - 410 + - 411 + - 412 + - 413 + - 414 + - 415 + - 416 + - 417 + - 418 + - 419 + - 420 + - 421 + - 422 + - 423 + - 424 + - 425 + - 426 + - 427 + - 428 + - 429 + - 430 + - 431 + - 432 + - 433 + - 434 + - 435 + - 436 + - 437 + - 438 + - 439 + - 440 + - 441 + - 442 + - 443 + - 444 + - 445 + - 446 + - 447 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-9"]' +1: '["--decompress", "-9"]' +2: '["--stdout", "-9"]' +3: '["-9", "--no-name"]' +4: '["--verbose", "-9"]' +5: '["-6"]' +6: '["--decompress", "-6"]' +7: '["--keep", "--decompress", "-6"]' +8: '["--force", "--decompress", "-6"]' +9: '["--force", "--decompress", "-9"]' +10: '["--quiet", "--force", "--decompress", "-6"]' +11: '["--quiet", "-9"]' +12: '["--quiet", "--force", "-9"]' +13: '["--quiet", "--force", "--decompress", "-9"]' +14: '["--quiet", "--force", "--decompress", "-6", "--no-name"]' +15: '["--decompress", "-9", "--no-name"]' +16: '["--quiet", "--decompress", "-9", "--no-name"]' +17: '["--quiet", "--force", "-9", "--no-name"]' +18: '["--quiet", "--force", "--decompress", "-9", "--no-name"]' +19: '["--force", "--decompress", "-6", "--no-name"]' +20: '["--quiet", "-6", "--no-name"]' +21: '["--quiet", "--force", "-6"]' +22: '["--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +23: '["--stdout", "--force", "--decompress", "-6"]' +24: '["--stdout", "--force", "-6", "--no-name"]' +25: '["--stdout", "--quiet", "--force", "-6", "--no-name"]' +26: '["--stdout", "--force", "--decompress", "-6", "--no-name"]' +27: '["--stdout", "--quiet", "--force", "--decompress", "-6"]' +28: '["--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +29: '["--stdout", "--quiet", "--force", "-9", "--no-name"]' +30: '["--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +31: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +32: '["--test", "--stdout", "--decompress", "-9"]' +33: '["--test", "--stdout", "--force", "--decompress", "-9", "--no-name"]' +34: '["--test", "--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +35: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +36: '["--force", "--decompress", "-9", "--no-name"]' +37: '["--force", "-6"]' +38: '["--force", "-9"]' +39: '["--keep", "--quiet", "-6"]' +40: '["--keep", "--quiet", "--force", "-6"]' +41: '["--keep", "--force", "-6"]' +42: '["--keep", "--quiet", "--force", "-9"]' +43: '["--keep", "--quiet", "--force", "--verbose", "-6"]' +44: '["--force", "--verbose", "-9"]' +45: '["--keep", "--verbose", "-9"]' +46: '["--keep", "--quiet", "--verbose", "-9"]' +47: '["--quiet", "--force", "--verbose", "-9"]' +48: '["--keep", "--quiet", "--force", "--verbose", "-9"]' +49: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-6"]' +50: '["--stdout", "--verbose", "-6"]' +51: '["--keep", "--stdout", "--quiet", "--force", "-6"]' +52: '["--stdout", "--quiet", "--force", "--verbose", "-6"]' +53: '["--keep", "--stdout", "--quiet", "--verbose", "-6"]' +54: '["--keep", "--stdout", "--force", "--verbose", "-6"]' +55: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-9"]' +56: '["--quiet", "--force", "--verbose", "-6"]' +57: '["--force", "--verbose", "-6", "--no-name"]' +58: '["--quiet", "--force", "--verbose", "-6", "--no-name"]' +59: '["--quiet", "--verbose", "-9", "--no-name"]' +60: '["--quiet", "--force", "--verbose", "-9", "--no-name"]' +61: '["--quiet", "--verbose", "-6", "--no-name"]' +62: '["--decompress", "--verbose", "-6", "--no-name"]' +63: '["--quiet", "--decompress", "--verbose", "-6"]' +64: '["--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +65: '["--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +66: '["--quiet", "--decompress", "-6", "--no-name"]' +67: '["--quiet", "--decompress", "-6"]' +68: '["--decompress", "-6", "--no-name"]' +69: '["-6", "--no-name"]' +70: '["--keep", "-6", "--no-name"]' +71: '["--keep", "-9"]' +72: '["--keep", "-9", "--no-name"]' +73: '["--keep", "--verbose", "-6", "--no-name"]' +74: '["--keep", "--verbose", "-9", "--no-name"]' +75: '["--keep", "--quiet", "--verbose", "-6", "--no-name"]' +76: '["--keep", "--quiet", "--verbose", "-9", "--no-name"]' +77: '["--verbose", "-6", "--no-name"]' +78: '["--stdout", "--quiet", "--verbose", "-6"]' +79: '["--stdout", "--quiet", "--verbose", "-6", "--no-name"]' +80: '["--stdout", "-9", "--no-name"]' +81: '["--stdout", "--verbose", "-9", "--no-name"]' +82: '["--stdout", "--quiet", "--verbose", "-9", "--no-name"]' +83: '["--stdout", "--quiet", "-9"]' +84: '["--stdout", "--quiet", "--verbose", "-9"]' +85: '["--quiet", "--verbose", "-9"]' +86: '["--stdout", "--quiet", "--decompress", "-6"]' +87: '["--stdout", "--decompress", "-6"]' +88: '["--decompress", "--verbose", "-6"]' +89: '["--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +90: '["--stdout", "--decompress", "--verbose", "-6"]' +91: '["--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +92: '["--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +93: '["--decompress", "--verbose", "-9", "--no-name"]' +94: '["--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +95: '["--stdout", "--decompress", "-9", "--no-name"]' +96: '["--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +97: '["--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +98: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +99: '["--test", "--stdout", "--decompress", "--verbose", "-9"]' +100: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +101: '["--test", "--stdout", "--quiet", "--decompress", "-9"]' +102: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6"]' +103: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6"]' +104: '["--keep", "--stdout", "--quiet", "--decompress", "-6"]' +105: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +106: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +107: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +108: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +109: '["--stdout", "--force", "--decompress", "--verbose", "-6"]' +110: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +111: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +112: '["--quiet", "--force", "--decompress", "--verbose", "-6"]' +113: '["--force", "--decompress", "--verbose", "-9"]' +114: '["--quiet", "--force", "--decompress", "--verbose", "-9"]' +115: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +116: '["--keep", "--force", "--decompress", "-9"]' +117: '["--keep", "--decompress", "-9"]' +118: '["--keep", "--quiet", "--decompress", "--verbose", "-9"]' +119: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +120: '["--keep", "--quiet", "--force", "--decompress", "-6"]' +121: '["--keep", "--force", "--decompress", "--verbose", "-6"]' +122: '["--keep", "--force", "--decompress", "--verbose", "-9"]' +123: '["--keep", "--force", "--verbose", "-6"]' +124: '["--keep", "--force", "--verbose", "-9"]' +125: '["--keep", "--stdout", "--force", "-6"]' +126: '["--keep", "--stdout", "--verbose", "-9"]' +127: '["--stdout", "--force", "--verbose", "-9"]' +128: '["--keep", "--stdout", "--force", "--verbose", "-9"]' +129: '["--keep", "--stdout", "--force", "--verbose", "-6", "--no-name"]' +130: '["--stdout", "--force", "--verbose", "-9", "--no-name"]' +131: '["--keep", "--stdout", "--force", "--verbose", "-9", "--no-name"]' +132: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +133: '["--keep", "--stdout", "--decompress", "--verbose", "-6"]' +134: '["--keep", "--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +135: '["--keep", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +136: '["--keep", "--stdout", "--force", "--decompress", "-6", "--no-name"]' +137: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6"]' +138: '["--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +139: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +140: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +141: '["--test", "--keep", "--stdout", "--decompress", "-9"]' +142: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9", "--no-name"]' +143: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +144: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +145: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +146: '["--keep", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +147: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +148: '["--keep", "--quiet", "--force", "-9", "--no-name"]' +149: '["--keep", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +150: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +151: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +152: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-9", "--no-name"]' +153: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +154: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +155: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +156: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +157: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +158: '["--keep", "--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +159: '["--stdout", "--decompress", "-6", "--no-name"]' +160: '["--keep", "--decompress", "-6", "--no-name"]' +161: '["--keep", "--stdout", "--verbose", "-6", "--no-name"]' +162: '["--keep", "--decompress", "--verbose", "-9"]' +163: '["--keep", "--stdout", "--decompress", "-9", "--no-name"]' +164: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +165: '["--keep", "--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +166: '["--keep", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +167: '["--keep", "--stdout", "--quiet", "--verbose", "-9", "--no-name"]' +168: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9"]' +169: '["--keep", "--stdout", "-9"]' +170: '["--keep", "--stdout", "--decompress", "--verbose", "-9"]' +171: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9"]' +172: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6", "--list"]' +173: '["--stdout", "--decompress", "-9", "--list"]' +174: '["--test", "--stdout", "--decompress", "-9", "--list"]' +175: '["--keep", "--stdout", "--decompress", "-9", "--list"]' +176: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9", "--list"]' +177: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6", "--list"]' +178: '["--keep", "--stdout", "--quiet", "--decompress", "-6", "--list"]' +179: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +180: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +181: '["--test", "--stdout", "--quiet", "--decompress", "-9", "--list"]' +182: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9", "--list"]' +183: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +184: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +185: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +186: '["--test", "--keep", "--stdout", "--decompress", "-9", "--list"]' +187: '["--stdout", "--quiet", "--decompress", "-9", "--list"]' +188: '["--keep", "--stdout", "--quiet", "--decompress", "-9", "--list"]' +189: '["--keep", "--stdout", "--quiet", "--decompress", "-9"]' +190: '["--keep", "--quiet", "-9"]' +191: '["--keep", "--stdout", "--quiet", "--verbose", "-9"]' +192: '["--keep", "--verbose", "-6"]' +193: '["--keep", "--stdout", "-6"]' +194: '["--keep", "--stdout", "--verbose", "-6"]' +195: '["--keep", "--decompress", "--verbose", "-6"]' +196: '["--stdout", "--force", "--decompress", "-9", "--no-name"]' +197: '["--keep", "--stdout", "--force", "--decompress", "-9", "--no-name"]' +198: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6", "--no-name"]' +199: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6"]' +200: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9"]' +201: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6"]' +202: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6"]' +203: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9"]' +204: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6"]' +205: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9"]' +206: '["--test", "--stdout", "--force", "--decompress", "-6", "--no-name"]' +207: '["--test", "--stdout", "--decompress", "-9", "--no-name"]' +208: '["--test", "--stdout", "--force", "--decompress", "-6", "--list"]' +209: '["--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +210: '["--stdout", "--decompress", "-6", "--list", "--no-name"]' +211: '["--test", "--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +212: '["--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +213: '["--test", "--stdout", "--decompress", "-9", "--list", "--no-name"]' +214: '["--test", "--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +215: '["--test", "--stdout", "--force", "--decompress", "-9", "--list"]' +216: '["--test", "--stdout", "--force", "--decompress", "-6"]' +217: '["--test", "--stdout", "--force", "--decompress", "-9"]' +218: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +219: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9"]' +220: '["--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +221: '["--test", "--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +222: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +223: '["--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +224: '["--test", "--stdout", "--decompress", "--verbose", "-9", "--list"]' +225: '["--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +226: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +227: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +228: '["--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +229: '["--test", "--stdout", "--decompress", "-6", "--list", "--no-name"]' +230: '["--test", "--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +231: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6"]' +232: '["--stdout", "--force", "--decompress", "--verbose", "-9"]' +233: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +234: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +235: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +236: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +237: '["--stdout", "--decompress", "--verbose", "-9"]' +238: '["--force", "--decompress", "--verbose", "-6"]' +239: '["--force", "-6", "--no-name"]' +240: '["--force", "-9", "--no-name"]' +241: '["--quiet", "--force", "-6", "--no-name"]' +242: '["--quiet", "-9", "--no-name"]' +243: '["--keep", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +244: '["--keep", "--quiet", "--decompress", "-6", "--no-name"]' +245: '["--keep", "--quiet", "--decompress", "-9"]' +246: '["--keep", "--quiet", "-9", "--no-name"]' +247: '["--keep", "--quiet", "--decompress", "-9", "--no-name"]' +248: '["--keep", "--force", "-6", "--no-name"]' +249: '["--keep", "--force", "-9", "--no-name"]' +250: '["--keep", "--force", "-9"]' +251: '["--keep", "--stdout", "--force", "-6", "--no-name"]' +252: '["--keep", "--stdout", "-9", "--no-name"]' +253: '["--keep", "--stdout", "--force", "-9", "--no-name"]' +254: '["--stdout", "--quiet", "-6", "--no-name"]' +255: '["--keep", "--quiet", "--force", "-6", "--no-name"]' +256: '["--stdout", "--quiet", "--force", "-6"]' +257: '["--keep", "--stdout", "--quiet", "-6", "--no-name"]' +258: '["--keep", "--stdout", "--quiet", "--force", "-6", "--no-name"]' +259: '["--keep", "--stdout", "--quiet", "--force", "-9", "--no-name"]' +260: '["--stdout", "--force", "-9", "--no-name"]' +261: '["--keep", "--stdout", "--quiet", "--force", "-9"]' +262: '["--keep", "--stdout", "--quiet", "-9", "--no-name"]' +263: '["--keep", "--quiet", "-6", "--no-name"]' +264: '["--keep", "--decompress", "-9", "--no-name"]' +265: '["--keep", "--stdout", "--decompress", "-6", "--no-name"]' +266: '["--keep", "--stdout", "--decompress", "-6", "--list", "--no-name"]' +267: '["--keep", "--stdout", "--decompress", "-9", "--list", "--no-name"]' +268: '["--test", "--keep", "--stdout", "--decompress", "-6", "--no-name"]' +269: '["--test", "--keep", "--stdout", "--decompress", "-9", "--no-name"]' +270: '["--test", "--keep", "--stdout", "--decompress", "-6", "--list", "--no-name"]' +271: '["--test", "--keep", "--stdout", "--decompress", "-9", "--list", "--no-name"]' +272: '["--keep", "--stdout", "--decompress", "-9"]' +273: '["--keep", "--stdout", "--decompress", "-6"]' +274: '["--keep", "--stdout", "--decompress", "-6", "--list"]' +275: '["--test", "--keep", "--stdout", "--decompress", "-6"]' +276: '["--test", "--keep", "--stdout", "--decompress", "-6", "--list"]' +277: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9"]' +278: '["--keep", "--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +279: '["--keep", "--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +280: '["--keep", "--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +281: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +282: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +283: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +284: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +285: '["--keep", "--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +286: '["--keep", "--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +287: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +288: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +289: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +290: '["--keep", "--stdout", "--decompress", "--verbose", "-9", "--list"]' +291: '["--keep", "--stdout", "--decompress", "--verbose", "-6", "--list"]' +292: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +293: '["--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +294: '["--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +295: '["--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +296: '["--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +297: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +298: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +299: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +300: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +301: '["--stdout", "--quiet", "--decompress", "-9"]' +302: '["--stdout", "--quiet", "--decompress", "-6", "--list"]' +303: '["--test", "--stdout", "--quiet", "--decompress", "-6"]' +304: '["--test", "--stdout", "--quiet", "--decompress", "-6", "--list"]' +305: '["--quiet", "--decompress", "-9"]' +306: '["--quiet", "--decompress", "--verbose", "-9"]' +307: '["--keep", "--quiet", "--decompress", "--verbose", "-6"]' +308: '["--keep", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +309: '["--keep", "--quiet", "--decompress", "-6"]' +310: '["--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +311: '["--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +312: '["--test", "--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +313: '["--test", "--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +314: '["--test", "--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +315: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +316: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +317: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +318: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +319: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +320: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +321: '["--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +322: '["--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +323: '["--test", "--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +324: '["--test", "--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +325: '["--stdout", "--decompress", "-9", "--list", "--no-name"]' +326: '["--stdout", "--decompress", "--verbose", "-6", "--list"]' +327: '["--stdout", "--decompress", "--verbose", "-9", "--list"]' +328: '["--test", "--stdout", "--decompress", "--verbose", "-6"]' +329: '["--test", "--stdout", "--decompress", "--verbose", "-6", "--list"]' +330: '["--stdout", "--verbose", "-9"]' +331: '["--keep", "--stdout", "--quiet", "-6"]' +332: '["--keep", "--stdout", "--quiet", "-9"]' +333: '["--stdout", "--quiet", "-6"]' +334: '["--stdout", "--quiet", "-9", "--no-name"]' +335: '["--stdout", "--quiet", "--force", "-9"]' +336: '["--quiet", "-6"]' +337: '["--stdout", "-6"]' +338: '["--verbose", "-6"]' +339: '["--force", "--verbose", "-6"]' +340: '["--keep", "--quiet", "--verbose", "-6"]' +341: '["--keep", "-6"]' +342: '["--stdout", "--decompress", "-9"]' +343: '["--stdout", "--decompress", "-6", "--list"]' +344: '["--test", "--stdout", "--decompress", "-6"]' +345: '["--test", "--stdout", "--decompress", "-6", "--list"]' +346: '["--stdout", "--force", "--verbose", "-6"]' +347: '["--stdout", "--force", "--verbose", "-6", "--no-name"]' +348: '["--stdout", "-6", "--no-name"]' +349: '["--test", "--stdout", "--decompress", "-6", "--no-name"]' +350: '["--keep", "--stdout", "-6", "--no-name"]' +351: '["--keep", "--stdout", "--quiet", "--verbose", "-6", "--no-name"]' +352: '["--keep", "--stdout", "--verbose", "-9", "--no-name"]' +353: '["--verbose", "-9", "--no-name"]' +354: '["--keep", "--decompress", "--verbose", "-6", "--no-name"]' +355: '["--keep", "--decompress", "--verbose", "-9", "--no-name"]' +356: '["--force", "--decompress", "--verbose", "-6", "--no-name"]' +357: '["--force", "--decompress", "--verbose", "-9", "--no-name"]' +358: '["--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +359: '["--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +360: '["--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +361: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +362: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +363: '["--stdout", "--quiet", "--force", "--decompress", "-9"]' +364: '["--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +365: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +366: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +367: '["--stdout", "--quiet", "--force", "--verbose", "-9"]' +368: '["--quiet", "--verbose", "-6"]' +369: '["--stdout", "--force", "-6"]' +370: '["--stdout", "--force", "-9"]' +371: '["--decompress", "--verbose", "-9"]' +372: '["--stdout", "--verbose", "-6", "--no-name"]' +373: '["--stdout", "--force", "--decompress", "-9"]' +374: '["--stdout", "--force", "--decompress", "-9", "--list"]' +375: '["--stdout", "--force", "--decompress", "-6", "--list"]' +376: '["--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +377: '["--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +378: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +379: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +380: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +381: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +382: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +383: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +384: '["--force", "--verbose", "-9", "--no-name"]' +385: '["--stdout", "--quiet", "--force", "--verbose", "-9", "--no-name"]' +386: '["--stdout", "--quiet", "--force", "--verbose", "-6", "--no-name"]' +387: '["--keep", "--stdout", "--force", "-9"]' +388: '["--keep", "--force", "--decompress", "-6"]' +389: '["--keep", "--stdout", "--force", "--decompress", "-9"]' +390: '["--keep", "--stdout", "--force", "--decompress", "-6"]' +391: '["--keep", "--stdout", "--force", "--decompress", "-9", "--list"]' +392: '["--keep", "--stdout", "--force", "--decompress", "-6", "--list"]' +393: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9", "--list"]' +394: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6", "--list"]' +395: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9"]' +396: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6"]' +397: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +398: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +399: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +400: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +401: '["--keep", "--quiet", "--force", "--decompress", "-9"]' +402: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9"]' +403: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +404: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +405: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +406: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +407: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +408: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +409: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +410: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +411: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +412: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +413: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +414: '["--keep", "--force", "--decompress", "-6", "--no-name"]' +415: '["--keep", "--force", "--decompress", "-9", "--no-name"]' +416: '["--keep", "--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +417: '["--keep", "--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +418: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +419: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +420: '["--keep", "--force", "--verbose", "-6", "--no-name"]' +421: '["--keep", "--force", "--verbose", "-9", "--no-name"]' +422: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +423: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +424: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +425: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +426: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +427: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +428: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +429: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +430: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +431: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +432: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +433: '["--keep", "--quiet", "--force", "--verbose", "-6", "--no-name"]' +434: '["--keep", "--quiet", "--force", "--verbose", "-9", "--no-name"]' +435: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-6", "--no-name"]' +436: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +437: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +438: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +439: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +440: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +441: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +442: '["--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +443: '["--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +444: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +445: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +446: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +447: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +... diff --git a/my_case_studies/gzip_0.case_study.minimal b/my_case_studies/gzip_0.case_study.minimal new file mode 100644 index 000000000..052e92ee7 --- /dev/null +++ b/my_case_studies/gzip_0.case_study.minimal @@ -0,0 +1,26 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: gzip +stages: +- revisions: + - commit_hash: 23a870d14a49803c6d2579071886c1acf497c9d1 + commit_id: 604 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-6"]' +1: '["--decompress", "-6"]' +2: '["--decompress", "-6", "--list"]' +3: '["--test", "--decompress", "-6"]' +4: '["--test", "--decompress", "-6", "--list"]' +... diff --git a/my_case_studies/gzip_0.case_study.reduced b/my_case_studies/gzip_0.case_study.reduced new file mode 100644 index 000000000..725ff5129 --- /dev/null +++ b/my_case_studies/gzip_0.case_study.reduced @@ -0,0 +1,912 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: gzip +stages: +- revisions: + - commit_hash: 23a870d14a49803c6d2579071886c1acf497c9d1 + commit_id: 604 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 105 + - 106 + - 107 + - 108 + - 109 + - 110 + - 111 + - 112 + - 113 + - 114 + - 115 + - 116 + - 117 + - 118 + - 119 + - 120 + - 121 + - 122 + - 123 + - 124 + - 125 + - 126 + - 127 + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 136 + - 137 + - 138 + - 139 + - 140 + - 141 + - 142 + - 143 + - 144 + - 145 + - 146 + - 147 + - 148 + - 149 + - 150 + - 151 + - 152 + - 153 + - 154 + - 155 + - 156 + - 157 + - 158 + - 159 + - 160 + - 161 + - 162 + - 163 + - 164 + - 165 + - 166 + - 167 + - 168 + - 169 + - 170 + - 171 + - 172 + - 173 + - 174 + - 175 + - 176 + - 177 + - 178 + - 179 + - 180 + - 181 + - 182 + - 183 + - 184 + - 185 + - 186 + - 187 + - 188 + - 189 + - 190 + - 191 + - 192 + - 193 + - 194 + - 195 + - 196 + - 197 + - 198 + - 199 + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 209 + - 210 + - 211 + - 212 + - 213 + - 214 + - 215 + - 216 + - 217 + - 218 + - 219 + - 220 + - 221 + - 222 + - 223 + - 224 + - 225 + - 226 + - 227 + - 228 + - 229 + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + - 236 + - 237 + - 238 + - 239 + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 255 + - 256 + - 257 + - 258 + - 259 + - 260 + - 261 + - 262 + - 263 + - 264 + - 265 + - 266 + - 267 + - 268 + - 269 + - 270 + - 271 + - 272 + - 273 + - 274 + - 275 + - 276 + - 277 + - 278 + - 279 + - 280 + - 281 + - 282 + - 283 + - 284 + - 285 + - 286 + - 287 + - 288 + - 289 + - 290 + - 291 + - 292 + - 293 + - 294 + - 295 + - 296 + - 297 + - 298 + - 299 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + - 309 + - 310 + - 311 + - 312 + - 313 + - 314 + - 315 + - 316 + - 317 + - 318 + - 319 + - 320 + - 321 + - 322 + - 323 + - 324 + - 325 + - 326 + - 327 + - 328 + - 329 + - 330 + - 331 + - 332 + - 333 + - 334 + - 335 + - 336 + - 337 + - 338 + - 339 + - 340 + - 341 + - 342 + - 343 + - 344 + - 345 + - 346 + - 347 + - 348 + - 349 + - 350 + - 351 + - 352 + - 353 + - 354 + - 355 + - 356 + - 357 + - 358 + - 359 + - 360 + - 361 + - 362 + - 363 + - 364 + - 365 + - 366 + - 367 + - 368 + - 369 + - 370 + - 371 + - 372 + - 373 + - 374 + - 375 + - 376 + - 377 + - 378 + - 379 + - 380 + - 381 + - 382 + - 383 + - 384 + - 385 + - 386 + - 387 + - 388 + - 389 + - 390 + - 391 + - 392 + - 393 + - 394 + - 395 + - 396 + - 397 + - 398 + - 399 + - 400 + - 401 + - 402 + - 403 + - 404 + - 405 + - 406 + - 407 + - 408 + - 409 + - 410 + - 411 + - 412 + - 413 + - 414 + - 415 + - 416 + - 417 + - 418 + - 419 + - 420 + - 421 + - 422 + - 423 + - 424 + - 425 + - 426 + - 427 + - 428 + - 429 + - 430 + - 431 + - 432 + - 433 + - 434 + - 435 + - 436 + - 437 + - 438 + - 439 + - 440 + - 441 + - 442 + - 443 + - 444 + - 445 + - 446 + - 447 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-9"]' +1: '["--decompress", "-9"]' +2: '["--stdout", "-9"]' +3: '["-9", "--no-name"]' +4: '["--verbose", "-9"]' +5: '["-6"]' +6: '["--decompress", "-6"]' +7: '["--keep", "--decompress", "-6"]' +8: '["--force", "--decompress", "-6"]' +9: '["--force", "--decompress", "-9"]' +10: '["--quiet", "--force", "--decompress", "-6"]' +11: '["--quiet", "-9"]' +12: '["--quiet", "--force", "-9"]' +13: '["--quiet", "--force", "--decompress", "-9"]' +14: '["--quiet", "--force", "--decompress", "-6", "--no-name"]' +15: '["--decompress", "-9", "--no-name"]' +16: '["--quiet", "--decompress", "-9", "--no-name"]' +17: '["--quiet", "--force", "-9", "--no-name"]' +18: '["--quiet", "--force", "--decompress", "-9", "--no-name"]' +19: '["--force", "--decompress", "-6", "--no-name"]' +20: '["--quiet", "-6", "--no-name"]' +21: '["--quiet", "--force", "-6"]' +22: '["--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +23: '["--stdout", "--force", "--decompress", "-6"]' +24: '["--stdout", "--force", "-6", "--no-name"]' +25: '["--stdout", "--quiet", "--force", "-6", "--no-name"]' +26: '["--stdout", "--force", "--decompress", "-6", "--no-name"]' +27: '["--stdout", "--quiet", "--force", "--decompress", "-6"]' +28: '["--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +29: '["--stdout", "--quiet", "--force", "-9", "--no-name"]' +30: '["--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +31: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +32: '["--test", "--stdout", "--decompress", "-9"]' +33: '["--test", "--stdout", "--force", "--decompress", "-9", "--no-name"]' +34: '["--test", "--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +35: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +36: '["--force", "--decompress", "-9", "--no-name"]' +37: '["--force", "-6"]' +38: '["--force", "-9"]' +39: '["--keep", "--quiet", "-6"]' +40: '["--keep", "--quiet", "--force", "-6"]' +41: '["--keep", "--force", "-6"]' +42: '["--keep", "--quiet", "--force", "-9"]' +43: '["--keep", "--quiet", "--force", "--verbose", "-6"]' +44: '["--force", "--verbose", "-9"]' +45: '["--keep", "--verbose", "-9"]' +46: '["--keep", "--quiet", "--verbose", "-9"]' +47: '["--quiet", "--force", "--verbose", "-9"]' +48: '["--keep", "--quiet", "--force", "--verbose", "-9"]' +49: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-6"]' +50: '["--stdout", "--verbose", "-6"]' +51: '["--keep", "--stdout", "--quiet", "--force", "-6"]' +52: '["--stdout", "--quiet", "--force", "--verbose", "-6"]' +53: '["--keep", "--stdout", "--quiet", "--verbose", "-6"]' +54: '["--keep", "--stdout", "--force", "--verbose", "-6"]' +55: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-9"]' +56: '["--quiet", "--force", "--verbose", "-6"]' +57: '["--force", "--verbose", "-6", "--no-name"]' +58: '["--quiet", "--force", "--verbose", "-6", "--no-name"]' +59: '["--quiet", "--verbose", "-9", "--no-name"]' +60: '["--quiet", "--force", "--verbose", "-9", "--no-name"]' +61: '["--quiet", "--verbose", "-6", "--no-name"]' +62: '["--decompress", "--verbose", "-6", "--no-name"]' +63: '["--quiet", "--decompress", "--verbose", "-6"]' +64: '["--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +65: '["--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +66: '["--quiet", "--decompress", "-6", "--no-name"]' +67: '["--quiet", "--decompress", "-6"]' +68: '["--decompress", "-6", "--no-name"]' +69: '["-6", "--no-name"]' +70: '["--keep", "-6", "--no-name"]' +71: '["--keep", "-9"]' +72: '["--keep", "-9", "--no-name"]' +73: '["--keep", "--verbose", "-6", "--no-name"]' +74: '["--keep", "--verbose", "-9", "--no-name"]' +75: '["--keep", "--quiet", "--verbose", "-6", "--no-name"]' +76: '["--keep", "--quiet", "--verbose", "-9", "--no-name"]' +77: '["--verbose", "-6", "--no-name"]' +78: '["--stdout", "--quiet", "--verbose", "-6"]' +79: '["--stdout", "--quiet", "--verbose", "-6", "--no-name"]' +80: '["--stdout", "-9", "--no-name"]' +81: '["--stdout", "--verbose", "-9", "--no-name"]' +82: '["--stdout", "--quiet", "--verbose", "-9", "--no-name"]' +83: '["--stdout", "--quiet", "-9"]' +84: '["--stdout", "--quiet", "--verbose", "-9"]' +85: '["--quiet", "--verbose", "-9"]' +86: '["--stdout", "--quiet", "--decompress", "-6"]' +87: '["--stdout", "--decompress", "-6"]' +88: '["--decompress", "--verbose", "-6"]' +89: '["--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +90: '["--stdout", "--decompress", "--verbose", "-6"]' +91: '["--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +92: '["--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +93: '["--decompress", "--verbose", "-9", "--no-name"]' +94: '["--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +95: '["--stdout", "--decompress", "-9", "--no-name"]' +96: '["--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +97: '["--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +98: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +99: '["--test", "--stdout", "--decompress", "--verbose", "-9"]' +100: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +101: '["--test", "--stdout", "--quiet", "--decompress", "-9"]' +102: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6"]' +103: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6"]' +104: '["--keep", "--stdout", "--quiet", "--decompress", "-6"]' +105: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +106: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6"]' +107: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +108: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9"]' +109: '["--stdout", "--force", "--decompress", "--verbose", "-6"]' +110: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +111: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +112: '["--quiet", "--force", "--decompress", "--verbose", "-6"]' +113: '["--force", "--decompress", "--verbose", "-9"]' +114: '["--quiet", "--force", "--decompress", "--verbose", "-9"]' +115: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +116: '["--keep", "--force", "--decompress", "-9"]' +117: '["--keep", "--decompress", "-9"]' +118: '["--keep", "--quiet", "--decompress", "--verbose", "-9"]' +119: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +120: '["--keep", "--quiet", "--force", "--decompress", "-6"]' +121: '["--keep", "--force", "--decompress", "--verbose", "-6"]' +122: '["--keep", "--force", "--decompress", "--verbose", "-9"]' +123: '["--keep", "--force", "--verbose", "-6"]' +124: '["--keep", "--force", "--verbose", "-9"]' +125: '["--keep", "--stdout", "--force", "-6"]' +126: '["--keep", "--stdout", "--verbose", "-9"]' +127: '["--stdout", "--force", "--verbose", "-9"]' +128: '["--keep", "--stdout", "--force", "--verbose", "-9"]' +129: '["--keep", "--stdout", "--force", "--verbose", "-6", "--no-name"]' +130: '["--stdout", "--force", "--verbose", "-9", "--no-name"]' +131: '["--keep", "--stdout", "--force", "--verbose", "-9", "--no-name"]' +132: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +133: '["--keep", "--stdout", "--decompress", "--verbose", "-6"]' +134: '["--keep", "--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +135: '["--keep", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +136: '["--keep", "--stdout", "--force", "--decompress", "-6", "--no-name"]' +137: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6"]' +138: '["--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +139: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +140: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +141: '["--test", "--keep", "--stdout", "--decompress", "-9"]' +142: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9", "--no-name"]' +143: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +144: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +145: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +146: '["--keep", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +147: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +148: '["--keep", "--quiet", "--force", "-9", "--no-name"]' +149: '["--keep", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +150: '["--keep", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +151: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +152: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-9", "--no-name"]' +153: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +154: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +155: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +156: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +157: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +158: '["--keep", "--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +159: '["--stdout", "--decompress", "-6", "--no-name"]' +160: '["--keep", "--decompress", "-6", "--no-name"]' +161: '["--keep", "--stdout", "--verbose", "-6", "--no-name"]' +162: '["--keep", "--decompress", "--verbose", "-9"]' +163: '["--keep", "--stdout", "--decompress", "-9", "--no-name"]' +164: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +165: '["--keep", "--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +166: '["--keep", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +167: '["--keep", "--stdout", "--quiet", "--verbose", "-9", "--no-name"]' +168: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9"]' +169: '["--keep", "--stdout", "-9"]' +170: '["--keep", "--stdout", "--decompress", "--verbose", "-9"]' +171: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9"]' +172: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6", "--list"]' +173: '["--stdout", "--decompress", "-9", "--list"]' +174: '["--test", "--stdout", "--decompress", "-9", "--list"]' +175: '["--keep", "--stdout", "--decompress", "-9", "--list"]' +176: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9", "--list"]' +177: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6", "--list"]' +178: '["--keep", "--stdout", "--quiet", "--decompress", "-6", "--list"]' +179: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +180: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +181: '["--test", "--stdout", "--quiet", "--decompress", "-9", "--list"]' +182: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9", "--list"]' +183: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +184: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +185: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +186: '["--test", "--keep", "--stdout", "--decompress", "-9", "--list"]' +187: '["--stdout", "--quiet", "--decompress", "-9", "--list"]' +188: '["--keep", "--stdout", "--quiet", "--decompress", "-9", "--list"]' +189: '["--keep", "--stdout", "--quiet", "--decompress", "-9"]' +190: '["--keep", "--quiet", "-9"]' +191: '["--keep", "--stdout", "--quiet", "--verbose", "-9"]' +192: '["--keep", "--verbose", "-6"]' +193: '["--keep", "--stdout", "-6"]' +194: '["--keep", "--stdout", "--verbose", "-6"]' +195: '["--keep", "--decompress", "--verbose", "-6"]' +196: '["--stdout", "--force", "--decompress", "-9", "--no-name"]' +197: '["--keep", "--stdout", "--force", "--decompress", "-9", "--no-name"]' +198: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6", "--no-name"]' +199: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6"]' +200: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9"]' +201: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6"]' +202: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6"]' +203: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9"]' +204: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6"]' +205: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9"]' +206: '["--test", "--stdout", "--force", "--decompress", "-6", "--no-name"]' +207: '["--test", "--stdout", "--decompress", "-9", "--no-name"]' +208: '["--test", "--stdout", "--force", "--decompress", "-6", "--list"]' +209: '["--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +210: '["--stdout", "--decompress", "-6", "--list", "--no-name"]' +211: '["--test", "--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +212: '["--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +213: '["--test", "--stdout", "--decompress", "-9", "--list", "--no-name"]' +214: '["--test", "--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +215: '["--test", "--stdout", "--force", "--decompress", "-9", "--list"]' +216: '["--test", "--stdout", "--force", "--decompress", "-6"]' +217: '["--test", "--stdout", "--force", "--decompress", "-9"]' +218: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +219: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9"]' +220: '["--stdout", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +221: '["--test", "--stdout", "--decompress", "--verbose", "-9", "--no-name"]' +222: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +223: '["--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +224: '["--test", "--stdout", "--decompress", "--verbose", "-9", "--list"]' +225: '["--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +226: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +227: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +228: '["--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +229: '["--test", "--stdout", "--decompress", "-6", "--list", "--no-name"]' +230: '["--test", "--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +231: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-6"]' +232: '["--stdout", "--force", "--decompress", "--verbose", "-9"]' +233: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +234: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +235: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +236: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +237: '["--stdout", "--decompress", "--verbose", "-9"]' +238: '["--force", "--decompress", "--verbose", "-6"]' +239: '["--force", "-6", "--no-name"]' +240: '["--force", "-9", "--no-name"]' +241: '["--quiet", "--force", "-6", "--no-name"]' +242: '["--quiet", "-9", "--no-name"]' +243: '["--keep", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +244: '["--keep", "--quiet", "--decompress", "-6", "--no-name"]' +245: '["--keep", "--quiet", "--decompress", "-9"]' +246: '["--keep", "--quiet", "-9", "--no-name"]' +247: '["--keep", "--quiet", "--decompress", "-9", "--no-name"]' +248: '["--keep", "--force", "-6", "--no-name"]' +249: '["--keep", "--force", "-9", "--no-name"]' +250: '["--keep", "--force", "-9"]' +251: '["--keep", "--stdout", "--force", "-6", "--no-name"]' +252: '["--keep", "--stdout", "-9", "--no-name"]' +253: '["--keep", "--stdout", "--force", "-9", "--no-name"]' +254: '["--stdout", "--quiet", "-6", "--no-name"]' +255: '["--keep", "--quiet", "--force", "-6", "--no-name"]' +256: '["--stdout", "--quiet", "--force", "-6"]' +257: '["--keep", "--stdout", "--quiet", "-6", "--no-name"]' +258: '["--keep", "--stdout", "--quiet", "--force", "-6", "--no-name"]' +259: '["--keep", "--stdout", "--quiet", "--force", "-9", "--no-name"]' +260: '["--stdout", "--force", "-9", "--no-name"]' +261: '["--keep", "--stdout", "--quiet", "--force", "-9"]' +262: '["--keep", "--stdout", "--quiet", "-9", "--no-name"]' +263: '["--keep", "--quiet", "-6", "--no-name"]' +264: '["--keep", "--decompress", "-9", "--no-name"]' +265: '["--keep", "--stdout", "--decompress", "-6", "--no-name"]' +266: '["--keep", "--stdout", "--decompress", "-6", "--list", "--no-name"]' +267: '["--keep", "--stdout", "--decompress", "-9", "--list", "--no-name"]' +268: '["--test", "--keep", "--stdout", "--decompress", "-6", "--no-name"]' +269: '["--test", "--keep", "--stdout", "--decompress", "-9", "--no-name"]' +270: '["--test", "--keep", "--stdout", "--decompress", "-6", "--list", "--no-name"]' +271: '["--test", "--keep", "--stdout", "--decompress", "-9", "--list", "--no-name"]' +272: '["--keep", "--stdout", "--decompress", "-9"]' +273: '["--keep", "--stdout", "--decompress", "-6"]' +274: '["--keep", "--stdout", "--decompress", "-6", "--list"]' +275: '["--test", "--keep", "--stdout", "--decompress", "-6"]' +276: '["--test", "--keep", "--stdout", "--decompress", "-6", "--list"]' +277: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9"]' +278: '["--keep", "--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +279: '["--keep", "--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +280: '["--keep", "--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +281: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9", "--no-name"]' +282: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +283: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +284: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +285: '["--keep", "--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +286: '["--keep", "--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +287: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +288: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +289: '["--test", "--keep", "--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +290: '["--keep", "--stdout", "--decompress", "--verbose", "-9", "--list"]' +291: '["--keep", "--stdout", "--decompress", "--verbose", "-6", "--list"]' +292: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +293: '["--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list"]' +294: '["--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list"]' +295: '["--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +296: '["--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +297: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +298: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +299: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +300: '["--test", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +301: '["--stdout", "--quiet", "--decompress", "-9"]' +302: '["--stdout", "--quiet", "--decompress", "-6", "--list"]' +303: '["--test", "--stdout", "--quiet", "--decompress", "-6"]' +304: '["--test", "--stdout", "--quiet", "--decompress", "-6", "--list"]' +305: '["--quiet", "--decompress", "-9"]' +306: '["--quiet", "--decompress", "--verbose", "-9"]' +307: '["--keep", "--quiet", "--decompress", "--verbose", "-6"]' +308: '["--keep", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +309: '["--keep", "--quiet", "--decompress", "-6"]' +310: '["--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +311: '["--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +312: '["--test", "--stdout", "--quiet", "--decompress", "-6", "--list", "--no-name"]' +313: '["--test", "--stdout", "--quiet", "--decompress", "-9", "--list", "--no-name"]' +314: '["--test", "--stdout", "--quiet", "--decompress", "-6", "--no-name"]' +315: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +316: '["--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +317: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--no-name"]' +318: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--no-name"]' +319: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +320: '["--test", "--keep", "--stdout", "--quiet", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +321: '["--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +322: '["--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +323: '["--test", "--stdout", "--decompress", "--verbose", "-6", "--no-name"]' +324: '["--test", "--stdout", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +325: '["--stdout", "--decompress", "-9", "--list", "--no-name"]' +326: '["--stdout", "--decompress", "--verbose", "-6", "--list"]' +327: '["--stdout", "--decompress", "--verbose", "-9", "--list"]' +328: '["--test", "--stdout", "--decompress", "--verbose", "-6"]' +329: '["--test", "--stdout", "--decompress", "--verbose", "-6", "--list"]' +330: '["--stdout", "--verbose", "-9"]' +331: '["--keep", "--stdout", "--quiet", "-6"]' +332: '["--keep", "--stdout", "--quiet", "-9"]' +333: '["--stdout", "--quiet", "-6"]' +334: '["--stdout", "--quiet", "-9", "--no-name"]' +335: '["--stdout", "--quiet", "--force", "-9"]' +336: '["--quiet", "-6"]' +337: '["--stdout", "-6"]' +338: '["--verbose", "-6"]' +339: '["--force", "--verbose", "-6"]' +340: '["--keep", "--quiet", "--verbose", "-6"]' +341: '["--keep", "-6"]' +342: '["--stdout", "--decompress", "-9"]' +343: '["--stdout", "--decompress", "-6", "--list"]' +344: '["--test", "--stdout", "--decompress", "-6"]' +345: '["--test", "--stdout", "--decompress", "-6", "--list"]' +346: '["--stdout", "--force", "--verbose", "-6"]' +347: '["--stdout", "--force", "--verbose", "-6", "--no-name"]' +348: '["--stdout", "-6", "--no-name"]' +349: '["--test", "--stdout", "--decompress", "-6", "--no-name"]' +350: '["--keep", "--stdout", "-6", "--no-name"]' +351: '["--keep", "--stdout", "--quiet", "--verbose", "-6", "--no-name"]' +352: '["--keep", "--stdout", "--verbose", "-9", "--no-name"]' +353: '["--verbose", "-9", "--no-name"]' +354: '["--keep", "--decompress", "--verbose", "-6", "--no-name"]' +355: '["--keep", "--decompress", "--verbose", "-9", "--no-name"]' +356: '["--force", "--decompress", "--verbose", "-6", "--no-name"]' +357: '["--force", "--decompress", "--verbose", "-9", "--no-name"]' +358: '["--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +359: '["--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +360: '["--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +361: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +362: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +363: '["--stdout", "--quiet", "--force", "--decompress", "-9"]' +364: '["--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +365: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +366: '["--test", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +367: '["--stdout", "--quiet", "--force", "--verbose", "-9"]' +368: '["--quiet", "--verbose", "-6"]' +369: '["--stdout", "--force", "-6"]' +370: '["--stdout", "--force", "-9"]' +371: '["--decompress", "--verbose", "-9"]' +372: '["--stdout", "--verbose", "-6", "--no-name"]' +373: '["--stdout", "--force", "--decompress", "-9"]' +374: '["--stdout", "--force", "--decompress", "-9", "--list"]' +375: '["--stdout", "--force", "--decompress", "-6", "--list"]' +376: '["--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +377: '["--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +378: '["--test", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +379: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +380: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +381: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +382: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +383: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +384: '["--force", "--verbose", "-9", "--no-name"]' +385: '["--stdout", "--quiet", "--force", "--verbose", "-9", "--no-name"]' +386: '["--stdout", "--quiet", "--force", "--verbose", "-6", "--no-name"]' +387: '["--keep", "--stdout", "--force", "-9"]' +388: '["--keep", "--force", "--decompress", "-6"]' +389: '["--keep", "--stdout", "--force", "--decompress", "-9"]' +390: '["--keep", "--stdout", "--force", "--decompress", "-6"]' +391: '["--keep", "--stdout", "--force", "--decompress", "-9", "--list"]' +392: '["--keep", "--stdout", "--force", "--decompress", "-6", "--list"]' +393: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9", "--list"]' +394: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6", "--list"]' +395: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9"]' +396: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6"]' +397: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +398: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +399: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list"]' +400: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list"]' +401: '["--keep", "--quiet", "--force", "--decompress", "-9"]' +402: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9"]' +403: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +404: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +405: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list"]' +406: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list"]' +407: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +408: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6"]' +409: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9"]' +410: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +411: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +412: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list"]' +413: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list"]' +414: '["--keep", "--force", "--decompress", "-6", "--no-name"]' +415: '["--keep", "--force", "--decompress", "-9", "--no-name"]' +416: '["--keep", "--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +417: '["--keep", "--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +418: '["--test", "--keep", "--stdout", "--force", "--decompress", "-6", "--list", "--no-name"]' +419: '["--test", "--keep", "--stdout", "--force", "--decompress", "-9", "--list", "--no-name"]' +420: '["--keep", "--force", "--verbose", "-6", "--no-name"]' +421: '["--keep", "--force", "--verbose", "-9", "--no-name"]' +422: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +423: '["--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +424: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +425: '["--test", "--keep", "--stdout", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +426: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +427: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +428: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +429: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--no-name"]' +430: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--no-name"]' +431: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-6", "--list", "--no-name"]' +432: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "-9", "--list", "--no-name"]' +433: '["--keep", "--quiet", "--force", "--verbose", "-6", "--no-name"]' +434: '["--keep", "--quiet", "--force", "--verbose", "-9", "--no-name"]' +435: '["--keep", "--stdout", "--quiet", "--force", "--verbose", "-6", "--no-name"]' +436: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +437: '["--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +438: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +439: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +440: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +441: '["--test", "--keep", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +442: '["--quiet", "--force", "--decompress", "--verbose", "-6", "--no-name"]' +443: '["--quiet", "--force", "--decompress", "--verbose", "-9", "--no-name"]' +444: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +445: '["--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +446: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-6", "--list", "--no-name"]' +447: '["--test", "--stdout", "--quiet", "--force", "--decompress", "--verbose", "-9", "--list", "--no-name"]' +... diff --git a/my_case_studies/picosat_0.case_study b/my_case_studies/picosat_0.case_study new file mode 100644 index 000000000..431dcfbfa --- /dev/null +++ b/my_case_studies/picosat_0.case_study @@ -0,0 +1,2064 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: picosat +stages: +- revisions: + - commit_hash: 33c685e82213228726364980814f0183e435de78 + commit_id: 12 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 105 + - 106 + - 107 + - 108 + - 109 + - 110 + - 111 + - 112 + - 113 + - 114 + - 115 + - 116 + - 117 + - 118 + - 119 + - 120 + - 121 + - 122 + - 123 + - 124 + - 125 + - 126 + - 127 + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 136 + - 137 + - 138 + - 139 + - 140 + - 141 + - 142 + - 143 + - 144 + - 145 + - 146 + - 147 + - 148 + - 149 + - 150 + - 151 + - 152 + - 153 + - 154 + - 155 + - 156 + - 157 + - 158 + - 159 + - 160 + - 161 + - 162 + - 163 + - 164 + - 165 + - 166 + - 167 + - 168 + - 169 + - 170 + - 171 + - 172 + - 173 + - 174 + - 175 + - 176 + - 177 + - 178 + - 179 + - 180 + - 181 + - 182 + - 183 + - 184 + - 185 + - 186 + - 187 + - 188 + - 189 + - 190 + - 191 + - 192 + - 193 + - 194 + - 195 + - 196 + - 197 + - 198 + - 199 + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 209 + - 210 + - 211 + - 212 + - 213 + - 214 + - 215 + - 216 + - 217 + - 218 + - 219 + - 220 + - 221 + - 222 + - 223 + - 224 + - 225 + - 226 + - 227 + - 228 + - 229 + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + - 236 + - 237 + - 238 + - 239 + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 255 + - 256 + - 257 + - 258 + - 259 + - 260 + - 261 + - 262 + - 263 + - 264 + - 265 + - 266 + - 267 + - 268 + - 269 + - 270 + - 271 + - 272 + - 273 + - 274 + - 275 + - 276 + - 277 + - 278 + - 279 + - 280 + - 281 + - 282 + - 283 + - 284 + - 285 + - 286 + - 287 + - 288 + - 289 + - 290 + - 291 + - 292 + - 293 + - 294 + - 295 + - 296 + - 297 + - 298 + - 299 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + - 309 + - 310 + - 311 + - 312 + - 313 + - 314 + - 315 + - 316 + - 317 + - 318 + - 319 + - 320 + - 321 + - 322 + - 323 + - 324 + - 325 + - 326 + - 327 + - 328 + - 329 + - 330 + - 331 + - 332 + - 333 + - 334 + - 335 + - 336 + - 337 + - 338 + - 339 + - 340 + - 341 + - 342 + - 343 + - 344 + - 345 + - 346 + - 347 + - 348 + - 349 + - 350 + - 351 + - 352 + - 353 + - 354 + - 355 + - 356 + - 357 + - 358 + - 359 + - 360 + - 361 + - 362 + - 363 + - 364 + - 365 + - 366 + - 367 + - 368 + - 369 + - 370 + - 371 + - 372 + - 373 + - 374 + - 375 + - 376 + - 377 + - 378 + - 379 + - 380 + - 381 + - 382 + - 383 + - 384 + - 385 + - 386 + - 387 + - 388 + - 389 + - 390 + - 391 + - 392 + - 393 + - 394 + - 395 + - 396 + - 397 + - 398 + - 399 + - 400 + - 401 + - 402 + - 403 + - 404 + - 405 + - 406 + - 407 + - 408 + - 409 + - 410 + - 411 + - 412 + - 413 + - 414 + - 415 + - 416 + - 417 + - 418 + - 419 + - 420 + - 421 + - 422 + - 423 + - 424 + - 425 + - 426 + - 427 + - 428 + - 429 + - 430 + - 431 + - 432 + - 433 + - 434 + - 435 + - 436 + - 437 + - 438 + - 439 + - 440 + - 441 + - 442 + - 443 + - 444 + - 445 + - 446 + - 447 + - 448 + - 449 + - 450 + - 451 + - 452 + - 453 + - 454 + - 455 + - 456 + - 457 + - 458 + - 459 + - 460 + - 461 + - 462 + - 463 + - 464 + - 465 + - 466 + - 467 + - 468 + - 469 + - 470 + - 471 + - 472 + - 473 + - 474 + - 475 + - 476 + - 477 + - 478 + - 479 + - 480 + - 481 + - 482 + - 483 + - 484 + - 485 + - 486 + - 487 + - 488 + - 489 + - 490 + - 491 + - 492 + - 493 + - 494 + - 495 + - 496 + - 497 + - 498 + - 499 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + - 506 + - 507 + - 508 + - 509 + - 510 + - 511 + - 512 + - 513 + - 514 + - 515 + - 516 + - 517 + - 518 + - 519 + - 520 + - 521 + - 522 + - 523 + - 524 + - 525 + - 526 + - 527 + - 528 + - 529 + - 530 + - 531 + - 532 + - 533 + - 534 + - 535 + - 536 + - 537 + - 538 + - 539 + - 540 + - 541 + - 542 + - 543 + - 544 + - 545 + - 546 + - 547 + - 548 + - 549 + - 550 + - 551 + - 552 + - 553 + - 554 + - 555 + - 556 + - 557 + - 558 + - 559 + - 560 + - 561 + - 562 + - 563 + - 564 + - 565 + - 566 + - 567 + - 568 + - 569 + - 570 + - 571 + - 572 + - 573 + - 574 + - 575 + - 576 + - 577 + - 578 + - 579 + - 580 + - 581 + - 582 + - 583 + - 584 + - 585 + - 586 + - 587 + - 588 + - 589 + - 590 + - 591 + - 592 + - 593 + - 594 + - 595 + - 596 + - 597 + - 598 + - 599 + - 600 + - 601 + - 602 + - 603 + - 604 + - 605 + - 606 + - 607 + - 608 + - 609 + - 610 + - 611 + - 612 + - 613 + - 614 + - 615 + - 616 + - 617 + - 618 + - 619 + - 620 + - 621 + - 622 + - 623 + - 624 + - 625 + - 626 + - 627 + - 628 + - 629 + - 630 + - 631 + - 632 + - 633 + - 634 + - 635 + - 636 + - 637 + - 638 + - 639 + - 640 + - 641 + - 642 + - 643 + - 644 + - 645 + - 646 + - 647 + - 648 + - 649 + - 650 + - 651 + - 652 + - 653 + - 654 + - 655 + - 656 + - 657 + - 658 + - 659 + - 660 + - 661 + - 662 + - 663 + - 664 + - 665 + - 666 + - 667 + - 668 + - 669 + - 670 + - 671 + - 672 + - 673 + - 674 + - 675 + - 676 + - 677 + - 678 + - 679 + - 680 + - 681 + - 682 + - 683 + - 684 + - 685 + - 686 + - 687 + - 688 + - 689 + - 690 + - 691 + - 692 + - 693 + - 694 + - 695 + - 696 + - 697 + - 698 + - 699 + - 700 + - 701 + - 702 + - 703 + - 704 + - 705 + - 706 + - 707 + - 708 + - 709 + - 710 + - 711 + - 712 + - 713 + - 714 + - 715 + - 716 + - 717 + - 718 + - 719 + - 720 + - 721 + - 722 + - 723 + - 724 + - 725 + - 726 + - 727 + - 728 + - 729 + - 730 + - 731 + - 732 + - 733 + - 734 + - 735 + - 736 + - 737 + - 738 + - 739 + - 740 + - 741 + - 742 + - 743 + - 744 + - 745 + - 746 + - 747 + - 748 + - 749 + - 750 + - 751 + - 752 + - 753 + - 754 + - 755 + - 756 + - 757 + - 758 + - 759 + - 760 + - 761 + - 762 + - 763 + - 764 + - 765 + - 766 + - 767 + - 768 + - 769 + - 770 + - 771 + - 772 + - 773 + - 774 + - 775 + - 776 + - 777 + - 778 + - 779 + - 780 + - 781 + - 782 + - 783 + - 784 + - 785 + - 786 + - 787 + - 788 + - 789 + - 790 + - 791 + - 792 + - 793 + - 794 + - 795 + - 796 + - 797 + - 798 + - 799 + - 800 + - 801 + - 802 + - 803 + - 804 + - 805 + - 806 + - 807 + - 808 + - 809 + - 810 + - 811 + - 812 + - 813 + - 814 + - 815 + - 816 + - 817 + - 818 + - 819 + - 820 + - 821 + - 822 + - 823 + - 824 + - 825 + - 826 + - 827 + - 828 + - 829 + - 830 + - 831 + - 832 + - 833 + - 834 + - 835 + - 836 + - 837 + - 838 + - 839 + - 840 + - 841 + - 842 + - 843 + - 844 + - 845 + - 846 + - 847 + - 848 + - 849 + - 850 + - 851 + - 852 + - 853 + - 854 + - 855 + - 856 + - 857 + - 858 + - 859 + - 860 + - 861 + - 862 + - 863 + - 864 + - 865 + - 866 + - 867 + - 868 + - 869 + - 870 + - 871 + - 872 + - 873 + - 874 + - 875 + - 876 + - 877 + - 878 + - 879 + - 880 + - 881 + - 882 + - 883 + - 884 + - 885 + - 886 + - 887 + - 888 + - 889 + - 890 + - 891 + - 892 + - 893 + - 894 + - 895 + - 896 + - 897 + - 898 + - 899 + - 900 + - 901 + - 902 + - 903 + - 904 + - 905 + - 906 + - 907 + - 908 + - 909 + - 910 + - 911 + - 912 + - 913 + - 914 + - 915 + - 916 + - 917 + - 918 + - 919 + - 920 + - 921 + - 922 + - 923 + - 924 + - 925 + - 926 + - 927 + - 928 + - 929 + - 930 + - 931 + - 932 + - 933 + - 934 + - 935 + - 936 + - 937 + - 938 + - 939 + - 940 + - 941 + - 942 + - 943 + - 944 + - 945 + - 946 + - 947 + - 948 + - 949 + - 950 + - 951 + - 952 + - 953 + - 954 + - 955 + - 956 + - 957 + - 958 + - 959 + - 960 + - 961 + - 962 + - 963 + - 964 + - 965 + - 966 + - 967 + - 968 + - 969 + - 970 + - 971 + - 972 + - 973 + - 974 + - 975 + - 976 + - 977 + - 978 + - 979 + - 980 + - 981 + - 982 + - 983 + - 984 + - 985 + - 986 + - 987 + - 988 + - 989 + - 990 + - 991 + - 992 + - 993 + - 994 + - 995 + - 996 + - 997 + - 998 + - 999 + - 1000 + - 1001 + - 1002 + - 1003 + - 1004 + - 1005 + - 1006 + - 1007 + - 1008 + - 1009 + - 1010 + - 1011 + - 1012 + - 1013 + - 1014 + - 1015 + - 1016 + - 1017 + - 1018 + - 1019 + - 1020 + - 1021 + - 1022 + - 1023 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--partial", "-i 2"]' +1: '["-i 2", "--all"]' +2: '["-n", "-i 2", "--all"]' +3: '["-n", "-t compactTraceFileName", "-i 2", "--all"]' +4: '["-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +5: '["-n", "-r rupFileName", "-i 2", "--all"]' +6: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +7: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +8: '["-T extendedTraceFileName", "-c coreFileName", "-i 2", "--all"]' +9: '["-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +10: '["-n", "-c coreFileName", "-i 2", "--all"]' +11: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +12: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +13: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +14: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +15: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +16: '["-T extendedTraceFileName", "-n", "--partial", "-i 2"]' +17: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 2"]' +18: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 2"]' +19: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +20: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +21: '["--partial", "-c coreFileName", "-i 0"]' +22: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 0"]' +23: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +24: '["-n", "--partial", "-c coreFileName", "-i 0"]' +25: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +26: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +27: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +28: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +29: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +30: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +31: '["-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +32: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +33: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +34: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +35: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +36: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +37: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +38: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 2"]' +39: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 2"]' +40: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +41: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +42: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +43: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 0"]' +44: '["-T extendedTraceFileName", "-n", "--partial", "-i 0"]' +45: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 0"]' +46: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +47: '["--partial", "-i 2", "-V varFileName"]' +48: '["-n", "--partial", "-i 2", "-V varFileName"]' +49: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +50: '["-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +51: '["-n", "--partial", "-v", "-i 0"]' +52: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 0", "-V varFileName"]' +53: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +54: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 2"]' +55: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +56: '["-n", "-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +57: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 2"]' +58: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +59: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +60: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +61: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +62: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +63: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +64: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +65: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +66: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +67: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +68: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +69: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +70: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +71: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +72: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +73: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +74: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +75: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +76: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +77: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +78: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +79: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +80: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +81: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +82: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +83: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +84: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +85: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +86: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +87: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +88: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +89: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +90: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +91: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +92: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +93: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +94: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +95: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +96: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +97: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +98: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +99: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +100: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +101: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 0"]' +102: '["-T extendedTraceFileName", "--partial", "-i 0", "-V varFileName"]' +103: '["--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +104: '["-n", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +105: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +106: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 2"]' +107: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +108: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +109: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +110: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +111: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +112: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +113: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +114: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +115: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +116: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +117: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +118: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +119: '["-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +120: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +121: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +122: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +123: '["--partial", "-o outputFileName", "-v", "-i 2"]' +124: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +125: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +126: '["-T extendedTraceFileName", "--partial", "-v", "-i 0"]' +127: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 0"]' +128: '["-r rupFileName", "--partial", "-v", "-i 0"]' +129: '["-r rupFileName", "--partial", "-i 2"]' +130: '["-r rupFileName", "--partial", "-v", "-i 2"]' +131: '["--partial", "-v", "-i 0"]' +132: '["--partial", "-v", "-i 2"]' +133: '["--partial", "-v", "-t compactTraceFileName", "-i 0"]' +134: '["--partial", "-v", "-t compactTraceFileName", "-i 2"]' +135: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +136: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +137: '["-n", "--partial", "-t compactTraceFileName", "-i 0"]' +138: '["--partial", "-t compactTraceFileName", "-i 2"]' +139: '["-n", "--partial", "-t compactTraceFileName", "-i 2"]' +140: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +141: '["-n", "--partial", "-c coreFileName", "-i 2"]' +142: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +143: '["--partial", "-o outputFileName", "-i 0"]' +144: '["--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +145: '["--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +146: '["--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +147: '["--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +148: '["--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +149: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +150: '["--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +151: '["--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +152: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +153: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +154: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +155: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +156: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +157: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +158: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +159: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +160: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +161: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +162: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +163: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +164: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +165: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +166: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +167: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +168: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +169: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +170: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +171: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +172: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +173: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +174: '["--partial", "-v", "-i 0", "-V varFileName"]' +175: '["--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +176: '["--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +177: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +178: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +179: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +180: '["--partial", "-o outputFileName", "-v", "-i 0"]' +181: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +182: '["--partial", "-c coreFileName", "-v", "-i 2"]' +183: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +184: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +185: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +186: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +187: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +188: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +189: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +190: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +191: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +192: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +193: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +194: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 0"]' +195: '["--partial", "-o outputFileName", "-i 2"]' +196: '["--partial", "-i 0"]' +197: '["--partial", "-c coreFileName", "-i 2"]' +198: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +199: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +200: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +201: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +202: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +203: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +204: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +205: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +206: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +207: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +208: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +209: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +210: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +211: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +212: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +213: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +214: '["-n", "--partial", "-o outputFileName", "-i 2"]' +215: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +216: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +217: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +218: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +219: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +220: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +221: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +222: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +223: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +224: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +225: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +226: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +227: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +228: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +229: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +230: '["-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +231: '["-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +232: '["-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +233: '["--partial", "-i 0", "-V varFileName"]' +234: '["--partial", "-v", "-i 2", "-V varFileName"]' +235: '["-n", "--partial", "-v", "-i 0", "-V varFileName"]' +236: '["-n", "--partial", "-v", "-i 2", "-V varFileName"]' +237: '["-n", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +238: '["-n", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +239: '["-n", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +240: '["-n", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +241: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +242: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +243: '["-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +244: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +245: '["-n", "-r rupFileName", "--partial", "-i 0"]' +246: '["-n", "-r rupFileName", "--partial", "-i 2"]' +247: '["-n", "-r rupFileName", "--partial", "-v", "-i 0"]' +248: '["-n", "-r rupFileName", "--partial", "-v", "-i 2"]' +249: '["-n", "--partial", "-v", "-i 2"]' +250: '["-n", "--partial", "-i 0"]' +251: '["-n", "--partial", "-i 2"]' +252: '["-n", "--partial", "-o outputFileName", "-i 0"]' +253: '["-n", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +254: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +255: '["-n", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +256: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +257: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +258: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +259: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +260: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +261: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +262: '["-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +263: '["-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +264: '["-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +265: '["--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +266: '["--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +267: '["-n", "--partial", "-i 0", "-V varFileName"]' +268: '["-n", "--partial", "-c coreFileName", "-v", "-i 0"]' +269: '["-n", "--partial", "-c coreFileName", "-v", "-i 2"]' +270: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +271: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +272: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 2"]' +273: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +274: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +275: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +276: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +277: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +278: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +279: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +280: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +281: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +282: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +283: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +284: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +285: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +286: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +287: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +288: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +289: '["-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +290: '["-r rupFileName", "--partial", "-i 0"]' +291: '["-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +292: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +293: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 0"]' +294: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 2"]' +295: '["-T extendedTraceFileName", "--partial", "-i 0"]' +296: '["-T extendedTraceFileName", "--partial", "-i 2"]' +297: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 2"]' +298: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +299: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +300: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +301: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +302: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +303: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +304: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +305: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +306: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +307: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +308: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +309: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +310: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +311: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +312: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +313: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +314: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +315: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +316: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +317: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +318: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +319: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +320: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +321: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +322: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +323: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +324: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +325: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +326: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +327: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +328: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +329: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +330: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +331: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +332: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +333: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +334: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +335: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +336: '["-T extendedTraceFileName", "--partial", "-v", "-i 2"]' +337: '["-T extendedTraceFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +338: '["-T extendedTraceFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +339: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 2", "-V varFileName"]' +340: '["-T extendedTraceFileName", "-n", "-i 0", "--all", "-V varFileName"]' +341: '["-v", "-i 0", "--all"]' +342: '["-T extendedTraceFileName", "-n", "-v", "-i 0", "--all", "-V varFileName"]' +343: '["-T extendedTraceFileName", "-n", "-v", "-i 2", "--all"]' +344: '["-T extendedTraceFileName", "-n", "-v", "-i 2", "--all", "-V varFileName"]' +345: '["-T extendedTraceFileName", "-v", "-i 0", "--all"]' +346: '["-T extendedTraceFileName", "-n", "-i 0", "--all"]' +347: '["-T extendedTraceFileName", "-n", "-v", "-i 0", "--all"]' +348: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 0", "--all"]' +349: '["-r rupFileName", "-v", "-i 2", "--all"]' +350: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 2", "--all"]' +351: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 2", "--all"]' +352: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 0", "--all", "-V varFileName"]' +353: '["-n", "-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +354: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +355: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +356: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +357: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +358: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +359: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +360: '["-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +361: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +362: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +363: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +364: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +365: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +366: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +367: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +368: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +369: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +370: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +371: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +372: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +373: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +374: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +375: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +376: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +377: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +378: '["-v", "-t compactTraceFileName", "-i 2", "--all"]' +379: '["-n", "-r rupFileName", "-v", "-i 2", "--all"]' +380: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +381: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +382: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +383: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 0", "--all"]' +384: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 2", "--all"]' +385: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 2", "--all"]' +386: '["-T extendedTraceFileName", "-n", "-i 2", "--all"]' +387: '["-T extendedTraceFileName", "-i 0", "--all"]' +388: '["-T extendedTraceFileName", "-i 2", "--all"]' +389: '["-T extendedTraceFileName", "-v", "-i 2", "--all"]' +390: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +391: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +392: '["-c coreFileName", "-v", "-i 0", "--all"]' +393: '["-c coreFileName", "-v", "-i 2", "--all"]' +394: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +395: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +396: '["-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +397: '["-t compactTraceFileName", "-i 2", "--all"]' +398: '["-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +399: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +400: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +401: '["-T extendedTraceFileName", "-c coreFileName", "-i 0", "--all"]' +402: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 0", "--all"]' +403: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 2", "--all"]' +404: '["-T extendedTraceFileName", "-o outputFileName", "-i 0", "--all"]' +405: '["-T extendedTraceFileName", "-o outputFileName", "-i 2", "--all"]' +406: '["-o outputFileName", "-i 0", "--all"]' +407: '["-o outputFileName", "-i 2", "--all"]' +408: '["-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +409: '["-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +410: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +411: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +412: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +413: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +414: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +415: '["-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +416: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +417: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +418: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +419: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +420: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +421: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +422: '["-n", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +423: '["-n", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +424: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +425: '["-n", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +426: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +427: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +428: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +429: '["-n", "-o outputFileName", "-v", "-i 0", "--all"]' +430: '["-n", "-o outputFileName", "-v", "-i 2", "--all"]' +431: '["-n", "-o outputFileName", "-i 0", "--all"]' +432: '["-n", "-o outputFileName", "-i 2", "--all"]' +433: '["-n", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +434: '["-o outputFileName", "-i 2", "--all", "-V varFileName"]' +435: '["-n", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +436: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +437: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +438: '["-c coreFileName", "-i 2", "--all", "-V varFileName"]' +439: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +440: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +441: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +442: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +443: '["-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +444: '["-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +445: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +446: '["-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +447: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +448: '["-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +449: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +450: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +451: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +452: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +453: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +454: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +455: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +456: '["-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +457: '["-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +458: '["-v", "-i 0", "--all", "-V varFileName"]' +459: '["-v", "-i 2", "--all", "-V varFileName"]' +460: '["-i 0", "--all", "-V varFileName"]' +461: '["-i 2", "--all", "-V varFileName"]' +462: '["-r rupFileName", "-i 0", "--all", "-V varFileName"]' +463: '["-r rupFileName", "-i 2", "--all"]' +464: '["-r rupFileName", "-i 2", "--all", "-V varFileName"]' +465: '["-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +466: '["-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +467: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +468: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +469: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +470: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +471: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +472: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +473: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +474: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +475: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +476: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +477: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +478: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +479: '["-n", "-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +480: '["-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +481: '["-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +482: '["-r rupFileName", "-v", "-i 0", "--all"]' +483: '["-v", "-i 2", "--all"]' +484: '["-T extendedTraceFileName", "-v", "-i 0", "--all", "-V varFileName"]' +485: '["-T extendedTraceFileName", "-v", "-i 2", "--all", "-V varFileName"]' +486: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +487: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +488: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +489: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +490: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 0", "--all"]' +491: '["-t compactTraceFileName", "-i 0", "--all"]' +492: '["-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +493: '["-r rupFileName", "-i 0", "--all"]' +494: '["-n", "-r rupFileName", "-i 0", "--all"]' +495: '["-n", "-r rupFileName", "-v", "-i 0", "--all"]' +496: '["-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +497: '["-o outputFileName", "-v", "-i 2", "--all"]' +498: '["-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +499: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +500: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +501: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +502: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +503: '["-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +504: '["-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +505: '["-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +506: '["-c coreFileName", "-i 0", "--all", "-V varFileName"]' +507: '["-n", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +508: '["-n", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +509: '["-n", "-c coreFileName", "-i 0", "--all"]' +510: '["-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +511: '["-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +512: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +513: '["-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +514: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +515: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +516: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +517: '["-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +518: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +519: '["-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +520: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +521: '["-n", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +522: '["-n", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +523: '["--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +524: '["--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +525: '["--partial", "-c coreFileName", "-v", "-i 0"]' +526: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +527: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +528: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +529: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +530: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +531: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +532: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +533: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +534: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +535: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +536: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +537: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +538: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +539: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +540: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +541: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +542: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +543: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +544: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +545: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +546: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +547: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +548: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +549: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +550: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +551: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +552: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +553: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +554: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +555: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +556: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +557: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +558: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +559: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +560: '["-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +561: '["-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +562: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +563: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +564: '["-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +565: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +566: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +567: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +568: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +569: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +570: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +571: '["-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +572: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +573: '["-v", "-t compactTraceFileName", "-i 0", "--all"]' +574: '["-n", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +575: '["-n", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +576: '["-n", "-v", "-i 2", "--all"]' +577: '["-n", "-v", "-i 0", "--all"]' +578: '["-n", "-c coreFileName", "-v", "-i 2", "--all"]' +579: '["-n", "-c coreFileName", "-v", "-i 0", "--all"]' +580: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +581: '["-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +582: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +583: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +584: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +585: '["-T extendedTraceFileName", "-r rupFileName", "-i 0", "--all"]' +586: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +587: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +588: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +589: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +590: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +591: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +592: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +593: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +594: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +595: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 2", "--all"]' +596: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 0", "--all"]' +597: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +598: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +599: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +600: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +601: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +602: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +603: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +604: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +605: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +606: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +607: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +608: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +609: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +610: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +611: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +612: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +613: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +614: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +615: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +616: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +617: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +618: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +619: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +620: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +621: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +622: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +623: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +624: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +625: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +626: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +627: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +628: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +629: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +630: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +631: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +632: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +633: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +634: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +635: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +636: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +637: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +638: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +639: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +640: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +641: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +642: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +643: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +644: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +645: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +646: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +647: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +648: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +649: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +650: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +651: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +652: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +653: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +654: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +655: '["-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +656: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +657: '["-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +658: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +659: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +660: '["-T extendedTraceFileName", "-r rupFileName", "-i 0", "--all", "-V varFileName"]' +661: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +662: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +663: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +664: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +665: '["-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +666: '["-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +667: '["-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +668: '["-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +669: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +670: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +671: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +672: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +673: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +674: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +675: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +676: '["-n", "-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +677: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +678: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +679: '["--partial", "-t compactTraceFileName", "-i 0"]' +680: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +681: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +682: '["-n", "--partial", "-o outputFileName", "-v", "-i 0"]' +683: '["-n", "--partial", "-o outputFileName", "-v", "-i 2"]' +684: '["-n", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +685: '["-n", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +686: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +687: '["-n", "-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +688: '["-n", "-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +689: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +690: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +691: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +692: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +693: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +694: '["-o outputFileName", "-v", "-i 0", "--all"]' +695: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +696: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +697: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +698: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +699: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +700: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +701: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +702: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +703: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +704: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +705: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +706: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 0"]' +707: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 0"]' +708: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 2"]' +709: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +710: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +711: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +712: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +713: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +714: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +715: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +716: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +717: '["-c coreFileName", "-i 0", "--all"]' +718: '["-c coreFileName", "-i 2", "--all"]' +719: '["-T extendedTraceFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +720: '["-T extendedTraceFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +721: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +722: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +723: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 0", "--all"]' +724: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 2", "--all"]' +725: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +726: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +727: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +728: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +729: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +730: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +731: '["-n", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +732: '["-n", "-v", "-i 0", "--all", "-V varFileName"]' +733: '["-n", "-v", "-i 2", "--all", "-V varFileName"]' +734: '["-n", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +735: '["-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +736: '["-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +737: '["-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +738: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +739: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +740: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +741: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +742: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +743: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +744: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +745: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +746: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +747: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +748: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +749: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +750: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +751: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +752: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +753: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +754: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +755: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +756: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +757: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +758: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +759: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +760: '["-i 0", "--all"]' +761: '["-n", "-i 0", "--all"]' +762: '["-T extendedTraceFileName", "--partial", "-i 2", "-V varFileName"]' +763: '["-T extendedTraceFileName", "-n", "--partial", "-i 0", "-V varFileName"]' +764: '["-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +765: '["-n", "-i 0", "--all", "-V varFileName"]' +766: '["-n", "-i 2", "--all", "-V varFileName"]' +767: '["-n", "-r rupFileName", "-i 0", "--all", "-V varFileName"]' +768: '["-n", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +769: '["-T extendedTraceFileName", "-n", "--partial", "-i 2", "-V varFileName"]' +770: '["-T extendedTraceFileName", "-i 0", "--all", "-V varFileName"]' +771: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +772: '["-o outputFileName", "-i 0", "--all", "-V varFileName"]' +773: '["-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +774: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +775: '["-T extendedTraceFileName", "-i 2", "--all", "-V varFileName"]' +776: '["-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +777: '["-n", "-r rupFileName", "-i 2", "--all", "-V varFileName"]' +778: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +779: '["-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +780: '["--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +781: '["-T extendedTraceFileName", "-n", "-i 2", "--all", "-V varFileName"]' +782: '["-T extendedTraceFileName", "-r rupFileName", "-i 2", "--all"]' +783: '["--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +784: '["-T extendedTraceFileName", "-r rupFileName", "-i 2", "--all", "-V varFileName"]' +785: '["-T extendedTraceFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +786: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +787: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 0", "--all"]' +788: '["-T extendedTraceFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +789: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +790: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 0", "--all"]' +791: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +792: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +793: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +794: '["-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +795: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 0"]' +796: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +797: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +798: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 2", "--all"]' +799: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +800: '["-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +801: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +802: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +803: '["-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +804: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 2", "--all", "-V varFileName"]' +805: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +806: '["-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +807: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 0", "--all"]' +808: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +809: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +810: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +811: '["-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +812: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +813: '["-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +814: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +815: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +816: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +817: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +818: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 2", "--all"]' +819: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +820: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +821: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +822: '["-n", "-t compactTraceFileName", "-i 0", "--all"]' +823: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +824: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +825: '["-n", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +826: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +827: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +828: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +829: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +830: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +831: '["-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +832: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +833: '["-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +834: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +835: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +836: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +837: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +838: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +839: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +840: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +841: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +842: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +843: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +844: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +845: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +846: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +847: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +848: '["-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +849: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +850: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +851: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +852: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +853: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +854: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +855: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +856: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +857: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +858: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +859: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +860: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +861: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +862: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +863: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +864: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +865: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +866: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +867: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +868: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +869: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +870: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +871: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +872: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +873: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +874: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +875: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +876: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +877: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +878: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +879: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +880: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +881: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +882: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +883: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 0"]' +884: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 2"]' +885: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +886: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +887: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +888: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +889: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +890: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +891: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +892: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +893: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +894: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +895: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +896: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +897: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +898: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +899: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +900: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +901: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +902: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +903: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +904: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +905: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +906: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +907: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +908: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +909: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +910: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +911: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 0"]' +912: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +913: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +914: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +915: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +916: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +917: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +918: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +919: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +920: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +921: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +922: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +923: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +924: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +925: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +926: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +927: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +928: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +929: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +930: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +931: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +932: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +933: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +934: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +935: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +936: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +937: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +938: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +939: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +940: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +941: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +942: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +943: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +944: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +945: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +946: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +947: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +948: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +949: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +950: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +951: '["-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +952: '["-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +953: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +954: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +955: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +956: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +957: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +958: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +959: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +960: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +961: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +962: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +963: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +964: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +965: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +966: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +967: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +968: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +969: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +970: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +971: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +972: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +973: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +974: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +975: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +976: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +977: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +978: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +979: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +980: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +981: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +982: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +983: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +984: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +985: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +986: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +987: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +988: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +989: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +990: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +991: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +992: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +993: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +994: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +995: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +996: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +997: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +998: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +999: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1000: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1001: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +1002: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +1003: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +1004: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1005: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1006: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1007: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +1008: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +1009: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1010: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1011: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +1012: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +1013: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +1014: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1015: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1016: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1017: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +1018: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +1019: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +1020: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1021: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1022: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1023: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +... diff --git a/my_case_studies/picosat_0.case_study.reduced b/my_case_studies/picosat_0.case_study.reduced new file mode 100644 index 000000000..431dcfbfa --- /dev/null +++ b/my_case_studies/picosat_0.case_study.reduced @@ -0,0 +1,2064 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: picosat +stages: +- revisions: + - commit_hash: 33c685e82213228726364980814f0183e435de78 + commit_id: 12 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 105 + - 106 + - 107 + - 108 + - 109 + - 110 + - 111 + - 112 + - 113 + - 114 + - 115 + - 116 + - 117 + - 118 + - 119 + - 120 + - 121 + - 122 + - 123 + - 124 + - 125 + - 126 + - 127 + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 136 + - 137 + - 138 + - 139 + - 140 + - 141 + - 142 + - 143 + - 144 + - 145 + - 146 + - 147 + - 148 + - 149 + - 150 + - 151 + - 152 + - 153 + - 154 + - 155 + - 156 + - 157 + - 158 + - 159 + - 160 + - 161 + - 162 + - 163 + - 164 + - 165 + - 166 + - 167 + - 168 + - 169 + - 170 + - 171 + - 172 + - 173 + - 174 + - 175 + - 176 + - 177 + - 178 + - 179 + - 180 + - 181 + - 182 + - 183 + - 184 + - 185 + - 186 + - 187 + - 188 + - 189 + - 190 + - 191 + - 192 + - 193 + - 194 + - 195 + - 196 + - 197 + - 198 + - 199 + - 200 + - 201 + - 202 + - 203 + - 204 + - 205 + - 206 + - 207 + - 208 + - 209 + - 210 + - 211 + - 212 + - 213 + - 214 + - 215 + - 216 + - 217 + - 218 + - 219 + - 220 + - 221 + - 222 + - 223 + - 224 + - 225 + - 226 + - 227 + - 228 + - 229 + - 230 + - 231 + - 232 + - 233 + - 234 + - 235 + - 236 + - 237 + - 238 + - 239 + - 240 + - 241 + - 242 + - 243 + - 244 + - 245 + - 246 + - 247 + - 248 + - 249 + - 250 + - 251 + - 252 + - 253 + - 254 + - 255 + - 256 + - 257 + - 258 + - 259 + - 260 + - 261 + - 262 + - 263 + - 264 + - 265 + - 266 + - 267 + - 268 + - 269 + - 270 + - 271 + - 272 + - 273 + - 274 + - 275 + - 276 + - 277 + - 278 + - 279 + - 280 + - 281 + - 282 + - 283 + - 284 + - 285 + - 286 + - 287 + - 288 + - 289 + - 290 + - 291 + - 292 + - 293 + - 294 + - 295 + - 296 + - 297 + - 298 + - 299 + - 300 + - 301 + - 302 + - 303 + - 304 + - 305 + - 306 + - 307 + - 308 + - 309 + - 310 + - 311 + - 312 + - 313 + - 314 + - 315 + - 316 + - 317 + - 318 + - 319 + - 320 + - 321 + - 322 + - 323 + - 324 + - 325 + - 326 + - 327 + - 328 + - 329 + - 330 + - 331 + - 332 + - 333 + - 334 + - 335 + - 336 + - 337 + - 338 + - 339 + - 340 + - 341 + - 342 + - 343 + - 344 + - 345 + - 346 + - 347 + - 348 + - 349 + - 350 + - 351 + - 352 + - 353 + - 354 + - 355 + - 356 + - 357 + - 358 + - 359 + - 360 + - 361 + - 362 + - 363 + - 364 + - 365 + - 366 + - 367 + - 368 + - 369 + - 370 + - 371 + - 372 + - 373 + - 374 + - 375 + - 376 + - 377 + - 378 + - 379 + - 380 + - 381 + - 382 + - 383 + - 384 + - 385 + - 386 + - 387 + - 388 + - 389 + - 390 + - 391 + - 392 + - 393 + - 394 + - 395 + - 396 + - 397 + - 398 + - 399 + - 400 + - 401 + - 402 + - 403 + - 404 + - 405 + - 406 + - 407 + - 408 + - 409 + - 410 + - 411 + - 412 + - 413 + - 414 + - 415 + - 416 + - 417 + - 418 + - 419 + - 420 + - 421 + - 422 + - 423 + - 424 + - 425 + - 426 + - 427 + - 428 + - 429 + - 430 + - 431 + - 432 + - 433 + - 434 + - 435 + - 436 + - 437 + - 438 + - 439 + - 440 + - 441 + - 442 + - 443 + - 444 + - 445 + - 446 + - 447 + - 448 + - 449 + - 450 + - 451 + - 452 + - 453 + - 454 + - 455 + - 456 + - 457 + - 458 + - 459 + - 460 + - 461 + - 462 + - 463 + - 464 + - 465 + - 466 + - 467 + - 468 + - 469 + - 470 + - 471 + - 472 + - 473 + - 474 + - 475 + - 476 + - 477 + - 478 + - 479 + - 480 + - 481 + - 482 + - 483 + - 484 + - 485 + - 486 + - 487 + - 488 + - 489 + - 490 + - 491 + - 492 + - 493 + - 494 + - 495 + - 496 + - 497 + - 498 + - 499 + - 500 + - 501 + - 502 + - 503 + - 504 + - 505 + - 506 + - 507 + - 508 + - 509 + - 510 + - 511 + - 512 + - 513 + - 514 + - 515 + - 516 + - 517 + - 518 + - 519 + - 520 + - 521 + - 522 + - 523 + - 524 + - 525 + - 526 + - 527 + - 528 + - 529 + - 530 + - 531 + - 532 + - 533 + - 534 + - 535 + - 536 + - 537 + - 538 + - 539 + - 540 + - 541 + - 542 + - 543 + - 544 + - 545 + - 546 + - 547 + - 548 + - 549 + - 550 + - 551 + - 552 + - 553 + - 554 + - 555 + - 556 + - 557 + - 558 + - 559 + - 560 + - 561 + - 562 + - 563 + - 564 + - 565 + - 566 + - 567 + - 568 + - 569 + - 570 + - 571 + - 572 + - 573 + - 574 + - 575 + - 576 + - 577 + - 578 + - 579 + - 580 + - 581 + - 582 + - 583 + - 584 + - 585 + - 586 + - 587 + - 588 + - 589 + - 590 + - 591 + - 592 + - 593 + - 594 + - 595 + - 596 + - 597 + - 598 + - 599 + - 600 + - 601 + - 602 + - 603 + - 604 + - 605 + - 606 + - 607 + - 608 + - 609 + - 610 + - 611 + - 612 + - 613 + - 614 + - 615 + - 616 + - 617 + - 618 + - 619 + - 620 + - 621 + - 622 + - 623 + - 624 + - 625 + - 626 + - 627 + - 628 + - 629 + - 630 + - 631 + - 632 + - 633 + - 634 + - 635 + - 636 + - 637 + - 638 + - 639 + - 640 + - 641 + - 642 + - 643 + - 644 + - 645 + - 646 + - 647 + - 648 + - 649 + - 650 + - 651 + - 652 + - 653 + - 654 + - 655 + - 656 + - 657 + - 658 + - 659 + - 660 + - 661 + - 662 + - 663 + - 664 + - 665 + - 666 + - 667 + - 668 + - 669 + - 670 + - 671 + - 672 + - 673 + - 674 + - 675 + - 676 + - 677 + - 678 + - 679 + - 680 + - 681 + - 682 + - 683 + - 684 + - 685 + - 686 + - 687 + - 688 + - 689 + - 690 + - 691 + - 692 + - 693 + - 694 + - 695 + - 696 + - 697 + - 698 + - 699 + - 700 + - 701 + - 702 + - 703 + - 704 + - 705 + - 706 + - 707 + - 708 + - 709 + - 710 + - 711 + - 712 + - 713 + - 714 + - 715 + - 716 + - 717 + - 718 + - 719 + - 720 + - 721 + - 722 + - 723 + - 724 + - 725 + - 726 + - 727 + - 728 + - 729 + - 730 + - 731 + - 732 + - 733 + - 734 + - 735 + - 736 + - 737 + - 738 + - 739 + - 740 + - 741 + - 742 + - 743 + - 744 + - 745 + - 746 + - 747 + - 748 + - 749 + - 750 + - 751 + - 752 + - 753 + - 754 + - 755 + - 756 + - 757 + - 758 + - 759 + - 760 + - 761 + - 762 + - 763 + - 764 + - 765 + - 766 + - 767 + - 768 + - 769 + - 770 + - 771 + - 772 + - 773 + - 774 + - 775 + - 776 + - 777 + - 778 + - 779 + - 780 + - 781 + - 782 + - 783 + - 784 + - 785 + - 786 + - 787 + - 788 + - 789 + - 790 + - 791 + - 792 + - 793 + - 794 + - 795 + - 796 + - 797 + - 798 + - 799 + - 800 + - 801 + - 802 + - 803 + - 804 + - 805 + - 806 + - 807 + - 808 + - 809 + - 810 + - 811 + - 812 + - 813 + - 814 + - 815 + - 816 + - 817 + - 818 + - 819 + - 820 + - 821 + - 822 + - 823 + - 824 + - 825 + - 826 + - 827 + - 828 + - 829 + - 830 + - 831 + - 832 + - 833 + - 834 + - 835 + - 836 + - 837 + - 838 + - 839 + - 840 + - 841 + - 842 + - 843 + - 844 + - 845 + - 846 + - 847 + - 848 + - 849 + - 850 + - 851 + - 852 + - 853 + - 854 + - 855 + - 856 + - 857 + - 858 + - 859 + - 860 + - 861 + - 862 + - 863 + - 864 + - 865 + - 866 + - 867 + - 868 + - 869 + - 870 + - 871 + - 872 + - 873 + - 874 + - 875 + - 876 + - 877 + - 878 + - 879 + - 880 + - 881 + - 882 + - 883 + - 884 + - 885 + - 886 + - 887 + - 888 + - 889 + - 890 + - 891 + - 892 + - 893 + - 894 + - 895 + - 896 + - 897 + - 898 + - 899 + - 900 + - 901 + - 902 + - 903 + - 904 + - 905 + - 906 + - 907 + - 908 + - 909 + - 910 + - 911 + - 912 + - 913 + - 914 + - 915 + - 916 + - 917 + - 918 + - 919 + - 920 + - 921 + - 922 + - 923 + - 924 + - 925 + - 926 + - 927 + - 928 + - 929 + - 930 + - 931 + - 932 + - 933 + - 934 + - 935 + - 936 + - 937 + - 938 + - 939 + - 940 + - 941 + - 942 + - 943 + - 944 + - 945 + - 946 + - 947 + - 948 + - 949 + - 950 + - 951 + - 952 + - 953 + - 954 + - 955 + - 956 + - 957 + - 958 + - 959 + - 960 + - 961 + - 962 + - 963 + - 964 + - 965 + - 966 + - 967 + - 968 + - 969 + - 970 + - 971 + - 972 + - 973 + - 974 + - 975 + - 976 + - 977 + - 978 + - 979 + - 980 + - 981 + - 982 + - 983 + - 984 + - 985 + - 986 + - 987 + - 988 + - 989 + - 990 + - 991 + - 992 + - 993 + - 994 + - 995 + - 996 + - 997 + - 998 + - 999 + - 1000 + - 1001 + - 1002 + - 1003 + - 1004 + - 1005 + - 1006 + - 1007 + - 1008 + - 1009 + - 1010 + - 1011 + - 1012 + - 1013 + - 1014 + - 1015 + - 1016 + - 1017 + - 1018 + - 1019 + - 1020 + - 1021 + - 1022 + - 1023 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--partial", "-i 2"]' +1: '["-i 2", "--all"]' +2: '["-n", "-i 2", "--all"]' +3: '["-n", "-t compactTraceFileName", "-i 2", "--all"]' +4: '["-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +5: '["-n", "-r rupFileName", "-i 2", "--all"]' +6: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +7: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +8: '["-T extendedTraceFileName", "-c coreFileName", "-i 2", "--all"]' +9: '["-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +10: '["-n", "-c coreFileName", "-i 2", "--all"]' +11: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +12: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +13: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +14: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +15: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +16: '["-T extendedTraceFileName", "-n", "--partial", "-i 2"]' +17: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 2"]' +18: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 2"]' +19: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +20: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +21: '["--partial", "-c coreFileName", "-i 0"]' +22: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 0"]' +23: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +24: '["-n", "--partial", "-c coreFileName", "-i 0"]' +25: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +26: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +27: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +28: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +29: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +30: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +31: '["-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +32: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +33: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +34: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +35: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +36: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +37: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +38: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 2"]' +39: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 2"]' +40: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +41: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +42: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +43: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 0"]' +44: '["-T extendedTraceFileName", "-n", "--partial", "-i 0"]' +45: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 0"]' +46: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +47: '["--partial", "-i 2", "-V varFileName"]' +48: '["-n", "--partial", "-i 2", "-V varFileName"]' +49: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +50: '["-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +51: '["-n", "--partial", "-v", "-i 0"]' +52: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 0", "-V varFileName"]' +53: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +54: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 2"]' +55: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +56: '["-n", "-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +57: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 2"]' +58: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +59: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +60: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +61: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +62: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +63: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +64: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +65: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +66: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +67: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +68: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +69: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +70: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +71: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +72: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +73: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +74: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +75: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +76: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +77: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +78: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +79: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +80: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +81: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +82: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +83: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +84: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +85: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +86: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +87: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +88: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +89: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +90: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +91: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +92: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +93: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +94: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +95: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +96: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +97: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +98: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +99: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +100: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +101: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 0"]' +102: '["-T extendedTraceFileName", "--partial", "-i 0", "-V varFileName"]' +103: '["--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +104: '["-n", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +105: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +106: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-i 2"]' +107: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +108: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +109: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +110: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +111: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +112: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +113: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +114: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +115: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +116: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +117: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +118: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +119: '["-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +120: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +121: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +122: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +123: '["--partial", "-o outputFileName", "-v", "-i 2"]' +124: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +125: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +126: '["-T extendedTraceFileName", "--partial", "-v", "-i 0"]' +127: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 0"]' +128: '["-r rupFileName", "--partial", "-v", "-i 0"]' +129: '["-r rupFileName", "--partial", "-i 2"]' +130: '["-r rupFileName", "--partial", "-v", "-i 2"]' +131: '["--partial", "-v", "-i 0"]' +132: '["--partial", "-v", "-i 2"]' +133: '["--partial", "-v", "-t compactTraceFileName", "-i 0"]' +134: '["--partial", "-v", "-t compactTraceFileName", "-i 2"]' +135: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +136: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +137: '["-n", "--partial", "-t compactTraceFileName", "-i 0"]' +138: '["--partial", "-t compactTraceFileName", "-i 2"]' +139: '["-n", "--partial", "-t compactTraceFileName", "-i 2"]' +140: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +141: '["-n", "--partial", "-c coreFileName", "-i 2"]' +142: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +143: '["--partial", "-o outputFileName", "-i 0"]' +144: '["--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +145: '["--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +146: '["--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +147: '["--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +148: '["--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +149: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +150: '["--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +151: '["--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +152: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +153: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +154: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +155: '["-T extendedTraceFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +156: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +157: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +158: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +159: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +160: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +161: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +162: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +163: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +164: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +165: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +166: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +167: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +168: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +169: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +170: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +171: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +172: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +173: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +174: '["--partial", "-v", "-i 0", "-V varFileName"]' +175: '["--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +176: '["--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +177: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +178: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +179: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +180: '["--partial", "-o outputFileName", "-v", "-i 0"]' +181: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +182: '["--partial", "-c coreFileName", "-v", "-i 2"]' +183: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +184: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +185: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +186: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +187: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +188: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +189: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +190: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +191: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +192: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +193: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +194: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-i 0"]' +195: '["--partial", "-o outputFileName", "-i 2"]' +196: '["--partial", "-i 0"]' +197: '["--partial", "-c coreFileName", "-i 2"]' +198: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +199: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +200: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +201: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +202: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +203: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +204: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +205: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +206: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +207: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +208: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +209: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +210: '["--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +211: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +212: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +213: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +214: '["-n", "--partial", "-o outputFileName", "-i 2"]' +215: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +216: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +217: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +218: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +219: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +220: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +221: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +222: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +223: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +224: '["--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +225: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +226: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +227: '["-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +228: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +229: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +230: '["-r rupFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +231: '["-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +232: '["-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +233: '["--partial", "-i 0", "-V varFileName"]' +234: '["--partial", "-v", "-i 2", "-V varFileName"]' +235: '["-n", "--partial", "-v", "-i 0", "-V varFileName"]' +236: '["-n", "--partial", "-v", "-i 2", "-V varFileName"]' +237: '["-n", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +238: '["-n", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +239: '["-n", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +240: '["-n", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +241: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +242: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +243: '["-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +244: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +245: '["-n", "-r rupFileName", "--partial", "-i 0"]' +246: '["-n", "-r rupFileName", "--partial", "-i 2"]' +247: '["-n", "-r rupFileName", "--partial", "-v", "-i 0"]' +248: '["-n", "-r rupFileName", "--partial", "-v", "-i 2"]' +249: '["-n", "--partial", "-v", "-i 2"]' +250: '["-n", "--partial", "-i 0"]' +251: '["-n", "--partial", "-i 2"]' +252: '["-n", "--partial", "-o outputFileName", "-i 0"]' +253: '["-n", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +254: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +255: '["-n", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +256: '["-n", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +257: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +258: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +259: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +260: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +261: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +262: '["-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +263: '["-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +264: '["-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +265: '["--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +266: '["--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +267: '["-n", "--partial", "-i 0", "-V varFileName"]' +268: '["-n", "--partial", "-c coreFileName", "-v", "-i 0"]' +269: '["-n", "--partial", "-c coreFileName", "-v", "-i 2"]' +270: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +271: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +272: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 2"]' +273: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +274: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +275: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +276: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +277: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +278: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +279: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 2"]' +280: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +281: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +282: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +283: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +284: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +285: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +286: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +287: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +288: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +289: '["-r rupFileName", "--partial", "-c coreFileName", "-i 0"]' +290: '["-r rupFileName", "--partial", "-i 0"]' +291: '["-r rupFileName", "--partial", "-o outputFileName", "-i 2"]' +292: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +293: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 0"]' +294: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-i 2"]' +295: '["-T extendedTraceFileName", "--partial", "-i 0"]' +296: '["-T extendedTraceFileName", "--partial", "-i 2"]' +297: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 2"]' +298: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +299: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +300: '["--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +301: '["-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +302: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +303: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +304: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +305: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +306: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +307: '["-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +308: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +309: '["-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +310: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +311: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +312: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +313: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +314: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +315: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +316: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +317: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +318: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +319: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +320: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +321: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +322: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +323: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +324: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +325: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +326: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +327: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +328: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +329: '["-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +330: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +331: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +332: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +333: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +334: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +335: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +336: '["-T extendedTraceFileName", "--partial", "-v", "-i 2"]' +337: '["-T extendedTraceFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +338: '["-T extendedTraceFileName", "--partial", "-v", "-i 2", "-V varFileName"]' +339: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 2", "-V varFileName"]' +340: '["-T extendedTraceFileName", "-n", "-i 0", "--all", "-V varFileName"]' +341: '["-v", "-i 0", "--all"]' +342: '["-T extendedTraceFileName", "-n", "-v", "-i 0", "--all", "-V varFileName"]' +343: '["-T extendedTraceFileName", "-n", "-v", "-i 2", "--all"]' +344: '["-T extendedTraceFileName", "-n", "-v", "-i 2", "--all", "-V varFileName"]' +345: '["-T extendedTraceFileName", "-v", "-i 0", "--all"]' +346: '["-T extendedTraceFileName", "-n", "-i 0", "--all"]' +347: '["-T extendedTraceFileName", "-n", "-v", "-i 0", "--all"]' +348: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 0", "--all"]' +349: '["-r rupFileName", "-v", "-i 2", "--all"]' +350: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 2", "--all"]' +351: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 2", "--all"]' +352: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 0", "--all", "-V varFileName"]' +353: '["-n", "-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +354: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +355: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +356: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +357: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +358: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +359: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +360: '["-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +361: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +362: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +363: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +364: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +365: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +366: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +367: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +368: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +369: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +370: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +371: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +372: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +373: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +374: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +375: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +376: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +377: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +378: '["-v", "-t compactTraceFileName", "-i 2", "--all"]' +379: '["-n", "-r rupFileName", "-v", "-i 2", "--all"]' +380: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +381: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +382: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +383: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 0", "--all"]' +384: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 2", "--all"]' +385: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 2", "--all"]' +386: '["-T extendedTraceFileName", "-n", "-i 2", "--all"]' +387: '["-T extendedTraceFileName", "-i 0", "--all"]' +388: '["-T extendedTraceFileName", "-i 2", "--all"]' +389: '["-T extendedTraceFileName", "-v", "-i 2", "--all"]' +390: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +391: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +392: '["-c coreFileName", "-v", "-i 0", "--all"]' +393: '["-c coreFileName", "-v", "-i 2", "--all"]' +394: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +395: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +396: '["-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +397: '["-t compactTraceFileName", "-i 2", "--all"]' +398: '["-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +399: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +400: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +401: '["-T extendedTraceFileName", "-c coreFileName", "-i 0", "--all"]' +402: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 0", "--all"]' +403: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 2", "--all"]' +404: '["-T extendedTraceFileName", "-o outputFileName", "-i 0", "--all"]' +405: '["-T extendedTraceFileName", "-o outputFileName", "-i 2", "--all"]' +406: '["-o outputFileName", "-i 0", "--all"]' +407: '["-o outputFileName", "-i 2", "--all"]' +408: '["-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +409: '["-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +410: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +411: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +412: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +413: '["-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +414: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +415: '["-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +416: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +417: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +418: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +419: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +420: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +421: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +422: '["-n", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +423: '["-n", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +424: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +425: '["-n", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +426: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +427: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +428: '["-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +429: '["-n", "-o outputFileName", "-v", "-i 0", "--all"]' +430: '["-n", "-o outputFileName", "-v", "-i 2", "--all"]' +431: '["-n", "-o outputFileName", "-i 0", "--all"]' +432: '["-n", "-o outputFileName", "-i 2", "--all"]' +433: '["-n", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +434: '["-o outputFileName", "-i 2", "--all", "-V varFileName"]' +435: '["-n", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +436: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +437: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +438: '["-c coreFileName", "-i 2", "--all", "-V varFileName"]' +439: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +440: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +441: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +442: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +443: '["-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +444: '["-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +445: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +446: '["-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +447: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +448: '["-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +449: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +450: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +451: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +452: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +453: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +454: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +455: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +456: '["-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +457: '["-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +458: '["-v", "-i 0", "--all", "-V varFileName"]' +459: '["-v", "-i 2", "--all", "-V varFileName"]' +460: '["-i 0", "--all", "-V varFileName"]' +461: '["-i 2", "--all", "-V varFileName"]' +462: '["-r rupFileName", "-i 0", "--all", "-V varFileName"]' +463: '["-r rupFileName", "-i 2", "--all"]' +464: '["-r rupFileName", "-i 2", "--all", "-V varFileName"]' +465: '["-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +466: '["-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +467: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +468: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +469: '["-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +470: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +471: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +472: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +473: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +474: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +475: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +476: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +477: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +478: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +479: '["-n", "-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +480: '["-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +481: '["-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +482: '["-r rupFileName", "-v", "-i 0", "--all"]' +483: '["-v", "-i 2", "--all"]' +484: '["-T extendedTraceFileName", "-v", "-i 0", "--all", "-V varFileName"]' +485: '["-T extendedTraceFileName", "-v", "-i 2", "--all", "-V varFileName"]' +486: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +487: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +488: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +489: '["-T extendedTraceFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +490: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 0", "--all"]' +491: '["-t compactTraceFileName", "-i 0", "--all"]' +492: '["-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +493: '["-r rupFileName", "-i 0", "--all"]' +494: '["-n", "-r rupFileName", "-i 0", "--all"]' +495: '["-n", "-r rupFileName", "-v", "-i 0", "--all"]' +496: '["-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +497: '["-o outputFileName", "-v", "-i 2", "--all"]' +498: '["-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +499: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +500: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +501: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +502: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +503: '["-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +504: '["-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +505: '["-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +506: '["-c coreFileName", "-i 0", "--all", "-V varFileName"]' +507: '["-n", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +508: '["-n", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +509: '["-n", "-c coreFileName", "-i 0", "--all"]' +510: '["-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +511: '["-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +512: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +513: '["-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +514: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +515: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +516: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +517: '["-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +518: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +519: '["-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +520: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +521: '["-n", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +522: '["-n", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +523: '["--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +524: '["--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +525: '["--partial", "-c coreFileName", "-v", "-i 0"]' +526: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +527: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +528: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +529: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +530: '["-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +531: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +532: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2"]' +533: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +534: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +535: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +536: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +537: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +538: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +539: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +540: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +541: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +542: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +543: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +544: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +545: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +546: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +547: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +548: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +549: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +550: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +551: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +552: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +553: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +554: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +555: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +556: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +557: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +558: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +559: '["--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +560: '["-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +561: '["-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +562: '["-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +563: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +564: '["-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +565: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +566: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +567: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +568: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +569: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +570: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +571: '["-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +572: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +573: '["-v", "-t compactTraceFileName", "-i 0", "--all"]' +574: '["-n", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +575: '["-n", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +576: '["-n", "-v", "-i 2", "--all"]' +577: '["-n", "-v", "-i 0", "--all"]' +578: '["-n", "-c coreFileName", "-v", "-i 2", "--all"]' +579: '["-n", "-c coreFileName", "-v", "-i 0", "--all"]' +580: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +581: '["-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +582: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +583: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +584: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +585: '["-T extendedTraceFileName", "-r rupFileName", "-i 0", "--all"]' +586: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +587: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +588: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +589: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +590: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +591: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +592: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +593: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +594: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +595: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 2", "--all"]' +596: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 0", "--all"]' +597: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +598: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +599: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +600: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +601: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +602: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +603: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +604: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +605: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +606: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +607: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +608: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +609: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +610: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +611: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +612: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +613: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +614: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +615: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +616: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +617: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +618: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +619: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +620: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +621: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +622: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +623: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +624: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +625: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +626: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +627: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +628: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +629: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +630: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +631: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +632: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +633: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +634: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +635: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +636: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +637: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +638: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +639: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +640: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +641: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +642: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +643: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +644: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +645: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +646: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +647: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +648: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +649: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +650: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +651: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +652: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +653: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +654: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +655: '["-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +656: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +657: '["-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +658: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +659: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +660: '["-T extendedTraceFileName", "-r rupFileName", "-i 0", "--all", "-V varFileName"]' +661: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +662: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +663: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +664: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +665: '["-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +666: '["-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +667: '["-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +668: '["-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +669: '["-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +670: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +671: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +672: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +673: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +674: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +675: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +676: '["-n", "-r rupFileName", "--partial", "-i 2", "-V varFileName"]' +677: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +678: '["-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +679: '["--partial", "-t compactTraceFileName", "-i 0"]' +680: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +681: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +682: '["-n", "--partial", "-o outputFileName", "-v", "-i 0"]' +683: '["-n", "--partial", "-o outputFileName", "-v", "-i 2"]' +684: '["-n", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +685: '["-n", "--partial", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +686: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +687: '["-n", "-r rupFileName", "--partial", "-v", "-i 0", "-V varFileName"]' +688: '["-n", "-r rupFileName", "--partial", "-i 0", "-V varFileName"]' +689: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +690: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 2", "-V varFileName"]' +691: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0"]' +692: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +693: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 2"]' +694: '["-o outputFileName", "-v", "-i 0", "--all"]' +695: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +696: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +697: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +698: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +699: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +700: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +701: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +702: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +703: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +704: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 0", "-V varFileName"]' +705: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-i 2", "-V varFileName"]' +706: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 0"]' +707: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 0"]' +708: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-i 2"]' +709: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +710: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +711: '["-T extendedTraceFileName", "-n", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +712: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +713: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +714: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +715: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +716: '["-T extendedTraceFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +717: '["-c coreFileName", "-i 0", "--all"]' +718: '["-c coreFileName", "-i 2", "--all"]' +719: '["-T extendedTraceFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +720: '["-T extendedTraceFileName", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +721: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 0", "--all", "-V varFileName"]' +722: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +723: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 0", "--all"]' +724: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 2", "--all"]' +725: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +726: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +727: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +728: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +729: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +730: '["-T extendedTraceFileName", "-n", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +731: '["-n", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +732: '["-n", "-v", "-i 0", "--all", "-V varFileName"]' +733: '["-n", "-v", "-i 2", "--all", "-V varFileName"]' +734: '["-n", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +735: '["-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +736: '["-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +737: '["-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +738: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +739: '["-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +740: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +741: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +742: '["-T extendedTraceFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +743: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +744: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +745: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0"]' +746: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2"]' +747: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +748: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +749: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +750: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +751: '["-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +752: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +753: '["-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +754: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +755: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +756: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +757: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +758: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +759: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +760: '["-i 0", "--all"]' +761: '["-n", "-i 0", "--all"]' +762: '["-T extendedTraceFileName", "--partial", "-i 2", "-V varFileName"]' +763: '["-T extendedTraceFileName", "-n", "--partial", "-i 0", "-V varFileName"]' +764: '["-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +765: '["-n", "-i 0", "--all", "-V varFileName"]' +766: '["-n", "-i 2", "--all", "-V varFileName"]' +767: '["-n", "-r rupFileName", "-i 0", "--all", "-V varFileName"]' +768: '["-n", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +769: '["-T extendedTraceFileName", "-n", "--partial", "-i 2", "-V varFileName"]' +770: '["-T extendedTraceFileName", "-i 0", "--all", "-V varFileName"]' +771: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +772: '["-o outputFileName", "-i 0", "--all", "-V varFileName"]' +773: '["-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +774: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +775: '["-T extendedTraceFileName", "-i 2", "--all", "-V varFileName"]' +776: '["-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +777: '["-n", "-r rupFileName", "-i 2", "--all", "-V varFileName"]' +778: '["-T extendedTraceFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +779: '["-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +780: '["--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +781: '["-T extendedTraceFileName", "-n", "-i 2", "--all", "-V varFileName"]' +782: '["-T extendedTraceFileName", "-r rupFileName", "-i 2", "--all"]' +783: '["--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +784: '["-T extendedTraceFileName", "-r rupFileName", "-i 2", "--all", "-V varFileName"]' +785: '["-T extendedTraceFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +786: '["--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +787: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 0", "--all"]' +788: '["-T extendedTraceFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +789: '["-T extendedTraceFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +790: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 0", "--all"]' +791: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +792: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +793: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +794: '["-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +795: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 0"]' +796: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +797: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +798: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 2", "--all"]' +799: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +800: '["-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +801: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +802: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +803: '["-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +804: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-i 2", "--all", "-V varFileName"]' +805: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 0"]' +806: '["-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +807: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 0", "--all"]' +808: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all"]' +809: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-i 2", "--all", "-V varFileName"]' +810: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +811: '["-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +812: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +813: '["-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +814: '["-T extendedTraceFileName", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all"]' +815: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +816: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +817: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +818: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 2", "--all"]' +819: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 0", "--all", "-V varFileName"]' +820: '["-T extendedTraceFileName", "-n", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +821: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +822: '["-n", "-t compactTraceFileName", "-i 0", "--all"]' +823: '["-T extendedTraceFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +824: '["-T extendedTraceFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +825: '["-n", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +826: '["-T extendedTraceFileName", "-r rupFileName", "-v", "-i 2", "--all", "-V varFileName"]' +827: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +828: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +829: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +830: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +831: '["-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +832: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +833: '["-n", "-r rupFileName", "-c coreFileName", "-i 2", "--all"]' +834: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +835: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all"]' +836: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +837: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-i 0", "--all", "-V varFileName"]' +838: '["-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +839: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-i 0", "-V varFileName"]' +840: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +841: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +842: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +843: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0"]' +844: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +845: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2"]' +846: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +847: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +848: '["-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +849: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +850: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +851: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +852: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +853: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +854: '["-T extendedTraceFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +855: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +856: '["-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +857: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +858: '["-T extendedTraceFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +859: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +860: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +861: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +862: '["-T extendedTraceFileName", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +863: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +864: '["-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +865: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +866: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +867: '["-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +868: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +869: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +870: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +871: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +872: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +873: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +874: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0"]' +875: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2"]' +876: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +877: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +878: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +879: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +880: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +881: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +882: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +883: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 0"]' +884: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 2"]' +885: '["-T extendedTraceFileName", "-n", "--partial", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +886: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-i 0"]' +887: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +888: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +889: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +890: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +891: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +892: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +893: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +894: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +895: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +896: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +897: '["-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +898: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "-V varFileName"]' +899: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "-V varFileName"]' +900: '["-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +901: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +902: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +903: '["-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +904: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +905: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +906: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all", "-V varFileName"]' +907: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +908: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 0", "--all"]' +909: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all"]' +910: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-v", "-i 2", "--all", "-V varFileName"]' +911: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-i 0"]' +912: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +913: '["-n", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +914: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +915: '["-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +916: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0"]' +917: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2"]' +918: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +919: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +920: '["-n", "-r rupFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +921: '["--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +922: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +923: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +924: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +925: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +926: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +927: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +928: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +929: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +930: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0"]' +931: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2"]' +932: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +933: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +934: '["-n", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +935: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +936: '["-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +937: '["-n", "-r rupFileName", "-c coreFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +938: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +939: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2"]' +940: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +941: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +942: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +943: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +944: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +945: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all", "-V varFileName"]' +946: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0"]' +947: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 0", "-V varFileName"]' +948: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-v", "-i 2", "-V varFileName"]' +949: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 0", "--all"]' +950: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-v", "-i 2", "--all"]' +951: '["-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +952: '["-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +953: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +954: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all"]' +955: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all"]' +956: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +957: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +958: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +959: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +960: '["-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +961: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +962: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +963: '["-T extendedTraceFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all"]' +964: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2"]' +965: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all"]' +966: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +967: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +968: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +969: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +970: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 2", "--all"]' +971: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +972: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +973: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 0", "-V varFileName"]' +974: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-o outputFileName", "-i 2", "-V varFileName"]' +975: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all"]' +976: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 0", "--all", "-V varFileName"]' +977: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-o outputFileName", "-i 2", "--all", "-V varFileName"]' +978: '["-n", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +979: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +980: '["-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +981: '["-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +982: '["-T extendedTraceFileName", "-n", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +983: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +984: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 0", "--all"]' +985: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all"]' +986: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-o outputFileName", "-v", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +987: '["-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0"]' +988: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +989: '["-n", "-r rupFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +990: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +991: '["-T extendedTraceFileName", "-n", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +992: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +993: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +994: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +995: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +996: '["-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +997: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0"]' +998: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +999: '["-T extendedTraceFileName", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1000: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1001: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +1002: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +1003: '["-T extendedTraceFileName", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +1004: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1005: '["-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1006: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1007: '["-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +1008: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +1009: '["-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1010: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1011: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +1012: '["-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +1013: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +1014: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1015: '["-T extendedTraceFileName", "-n", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1016: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1017: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all"]' +1018: '["-T extendedTraceFileName", "-n", "-c coreFileName", "-t compactTraceFileName", "-i 2", "--all", "-V varFileName"]' +1019: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2"]' +1020: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 0", "-V varFileName"]' +1021: '["-T extendedTraceFileName", "-n", "-r rupFileName", "--partial", "-c coreFileName", "-t compactTraceFileName", "-i 2", "-V varFileName"]' +1022: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all"]' +1023: '["-T extendedTraceFileName", "-n", "-r rupFileName", "-c coreFileName", "-t compactTraceFileName", "-i 0", "--all", "-V varFileName"]' +... diff --git a/my_case_studies/xz_0.case_study b/my_case_studies/xz_0.case_study new file mode 100644 index 000000000..f4b521ffb --- /dev/null +++ b/my_case_studies/xz_0.case_study @@ -0,0 +1,336 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: xz +stages: +- revisions: + - commit_hash: 4773608554d1b684a05ff9c1d879cf5c42266d33 + commit_id: 1684 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 105 + - 106 + - 107 + - 108 + - 109 + - 110 + - 111 + - 112 + - 113 + - 114 + - 115 + - 116 + - 117 + - 118 + - 119 + - 120 + - 121 + - 122 + - 123 + - 124 + - 125 + - 126 + - 127 + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 136 + - 137 + - 138 + - 139 + - 140 + - 141 + - 142 + - 143 + - 144 + - 145 + - 146 + - 147 + - 148 + - 149 + - 150 + - 151 + - 152 + - 153 + - 154 + - 155 + - 156 + - 157 + - 158 + - 159 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-6", "--list", "--format=xz"]' +1: '["--robot", "-6", "--list", "--format=xz"]' +2: '["-6", "--force", "--list", "--format=xz"]' +3: '["--robot", "-6", "--force", "--list", "--format=xz"]' +4: '["--robot", "-6", "--list", "--format=xz", "--suffix=.su"]' +5: '["-6", "--list", "--format=xz", "--suffix=.su"]' +6: '["--robot", "-6", "--format=auto", "--list", "--suffix=.su"]' +7: '["-6", "--format=auto", "--list"]' +8: '["--robot", "-6", "--format=auto", "--list"]' +9: '["-6", "--force", "--list", "--format=xz", "--suffix=.su"]' +10: '["--robot", "-6", "--force", "--list", "--format=xz", "--suffix=.su"]' +11: '["-6", "--format=auto", "--list", "--suffix=.su"]' +12: '["-6", "--force", "--format=auto", "--list"]' +13: '["-6", "--force", "--format=auto", "--list", "--suffix=.su"]' +14: '["--robot", "-6", "--force", "--format=auto", "--list", "--suffix=.su"]' +15: '["--robot", "-6", "--force", "--format=auto", "--list"]' +16: '["--robot", "-6", "--force", "-v", "--list", "--format=xz", "--suffix=.su"]' +17: '["-6", "-v", "--list", "--format=xz"]' +18: '["-6", "-v", "--list", "--format=xz", "--suffix=.su"]' +19: '["--robot", "-6", "-v", "--list", "--format=xz", "--suffix=.su"]' +20: '["--robot", "-6", "-v", "--list", "--format=xz"]' +21: '["--robot", "-6", "--force", "-v", "--list", "--format=xz"]' +22: '["--robot", "-6", "--force", "-v", "--format=auto", "--list", "--suffix=.su"]' +23: '["--robot", "-6", "-v", "--format=auto", "--list", "--suffix=.su"]' +24: '["-6", "--force", "-v", "--format=auto", "--list", "--suffix=.su"]' +25: '["--robot", "-6", "--force", "-v", "--format=auto", "--list"]' +26: '["-6", "-v", "--format=auto", "--list"]' +27: '["-6", "--force", "-v", "--format=auto", "--list"]' +28: '["--robot", "-6", "-v", "--format=auto", "--list"]' +29: '["-6", "-v", "--format=auto", "--list", "--suffix=.su"]' +30: '["-6", "--force", "-v", "--list", "--format=xz", "--suffix=.su"]' +31: '["-6", "--force", "-v", "--list", "--format=xz"]' +32: '["-9", "--force", "-v", "--compress", "--format=xz", "--suffix=.su"]' +33: '["-6", "--force", "-v", "--compress", "--format=xz", "--suffix=.su"]' +34: '["-9", "--force", "-v", "--format=auto", "--compress", "--suffix=.su"]' +35: '["-6", "--force", "-v", "--format=auto", "--compress", "--suffix=.su"]' +36: '["--decompress", "-6", "--force", "-v", "--format=xz", "--suffix=.su"]' +37: '["--decompress", "-6", "--force", "-v", "--format=auto", "--suffix=.su"]' +38: '["-9", "--force", "-v", "--compress", "--format=xz"]' +39: '["-6", "--force", "-v", "--compress", "--format=xz"]' +40: '["-9", "--force", "-v", "--format=auto", "--compress"]' +41: '["-6", "-v", "--format=auto", "--compress"]' +42: '["-6", "--force", "-v", "--format=auto", "--compress"]' +43: '["--decompress", "-6", "--force", "-v", "--format=xz"]' +44: '["--decompress", "-6", "--force", "-v", "--format=auto"]' +45: '["-9", "--force", "--compress", "--format=xz"]' +46: '["-6", "--force", "--compress", "--format=xz"]' +47: '["-9", "--force", "--format=auto", "--compress"]' +48: '["-6", "--force", "--format=auto", "--compress"]' +49: '["--decompress", "-6", "--force", "--format=xz"]' +50: '["--decompress", "-6", "--force", "--format=auto"]' +51: '["-9", "--compress", "--format=xz"]' +52: '["--decompress", "-6", "--format=xz"]' +53: '["--decompress", "-6", "--format=auto"]' +54: '["-6", "--compress", "--format=xz"]' +55: '["-9", "--format=auto", "--compress"]' +56: '["-6", "--format=auto", "--compress"]' +57: '["-9", "--compress", "--format=xz", "--suffix=.su"]' +58: '["-6", "--compress", "--format=xz", "--suffix=.su"]' +59: '["-9", "--format=auto", "--compress", "--suffix=.su"]' +60: '["-6", "--format=auto", "--compress", "--suffix=.su"]' +61: '["--decompress", "-6", "--format=xz", "--suffix=.su"]' +62: '["--decompress", "-6", "--format=auto", "--suffix=.su"]' +63: '["-9", "--force", "--compress", "--format=xz", "--suffix=.su"]' +64: '["-6", "--force", "--compress", "--format=xz", "--suffix=.su"]' +65: '["-9", "--force", "--format=auto", "--compress", "--suffix=.su"]' +66: '["-6", "--force", "--format=auto", "--compress", "--suffix=.su"]' +67: '["--decompress", "-6", "--force", "--format=xz", "--suffix=.su"]' +68: '["--decompress", "-6", "--force", "--format=auto", "--suffix=.su"]' +69: '["-9", "-v", "--compress", "--format=xz"]' +70: '["-6", "-v", "--compress", "--format=xz"]' +71: '["-9", "-v", "--format=auto", "--compress"]' +72: '["--decompress", "-6", "-v", "--format=xz"]' +73: '["--decompress", "-6", "-v", "--format=auto"]' +74: '["-9", "-v", "--compress", "--format=xz", "--suffix=.su"]' +75: '["-6", "-v", "--compress", "--format=xz", "--suffix=.su"]' +76: '["-9", "-v", "--format=auto", "--compress", "--suffix=.su"]' +77: '["-6", "-v", "--format=auto", "--compress", "--suffix=.su"]' +78: '["--decompress", "-6", "-v", "--format=xz", "--suffix=.su"]' +79: '["--decompress", "-6", "-v", "--format=auto", "--suffix=.su"]' +80: '["-9", "--keep", "--compress", "--format=xz"]' +81: '["-6", "--keep", "--compress", "--format=xz"]' +82: '["--test", "-6", "--keep", "--format=xz"]' +83: '["--test", "--stdout", "-6", "--keep", "--format=xz"]' +84: '["--decompress", "-6", "--keep", "--format=xz"]' +85: '["--stdout", "--decompress", "-6", "--keep", "--format=xz"]' +86: '["--test", "--decompress", "-6", "--keep", "--format=xz"]' +87: '["--test", "--stdout", "--decompress", "-6", "--keep", "--format=xz"]' +88: '["-9", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +89: '["-6", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +90: '["--test", "-6", "--keep", "--format=xz", "--suffix=.su"]' +91: '["--test", "--stdout", "-6", "--keep", "--format=xz", "--suffix=.su"]' +92: '["--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +93: '["--stdout", "--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +94: '["--test", "--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +95: '["--test", "--stdout", "--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +96: '["-9", "-v", "--keep", "--compress", "--format=xz"]' +97: '["-6", "-v", "--keep", "--compress", "--format=xz"]' +98: '["--test", "-6", "-v", "--keep", "--format=xz"]' +99: '["--test", "--stdout", "-6", "-v", "--keep", "--format=xz"]' +100: '["--decompress", "-6", "-v", "--keep", "--format=xz"]' +101: '["--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz"]' +102: '["--test", "--decompress", "-6", "-v", "--keep", "--format=xz"]' +103: '["--test", "--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz"]' +104: '["--test", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +105: '["--test", "--stdout", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +106: '["--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +107: '["--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +108: '["--test", "--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +109: '["--test", "--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +110: '["-9", "-v", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +111: '["-6", "-v", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +112: '["-9", "--format=auto", "--keep", "--compress"]' +113: '["-6", "--format=auto", "--keep", "--compress"]' +114: '["-9", "-v", "--format=auto", "--keep", "--compress"]' +115: '["-6", "-v", "--format=auto", "--keep", "--compress"]' +116: '["--test", "-6", "--format=auto", "--keep"]' +117: '["--test", "--stdout", "-6", "--format=auto", "--keep"]' +118: '["--decompress", "-6", "--format=auto", "--keep"]' +119: '["--stdout", "--decompress", "-6", "--format=auto", "--keep"]' +120: '["--test", "--decompress", "-6", "--format=auto", "--keep"]' +121: '["--test", "--stdout", "--decompress", "-6", "--format=auto", "--keep"]' +122: '["--test", "-6", "-v", "--format=auto", "--keep"]' +123: '["--test", "--stdout", "-6", "-v", "--format=auto", "--keep"]' +124: '["--decompress", "-6", "-v", "--format=auto", "--keep"]' +125: '["--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep"]' +126: '["--test", "--decompress", "-6", "-v", "--format=auto", "--keep"]' +127: '["--test", "--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep"]' +128: '["-9", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +129: '["-6", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +130: '["-9", "-v", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +131: '["-6", "-v", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +132: '["--test", "-6", "--format=auto", "--keep", "--suffix=.su"]' +133: '["--test", "--stdout", "-6", "--format=auto", "--keep", "--suffix=.su"]' +134: '["--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +135: '["--stdout", "--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +136: '["--test", "--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +137: '["--test", "--stdout", "--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +138: '["--test", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +139: '["--test", "--stdout", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +140: '["--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +141: '["--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +142: '["--test", "--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +143: '["--test", "--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +144: '["-6", "--keep", "--list", "--format=xz"]' +145: '["-6", "-v", "--keep", "--list", "--format=xz"]' +146: '["-6", "--keep", "--list", "--format=xz", "--suffix=.su"]' +147: '["-6", "-v", "--keep", "--list", "--format=xz", "--suffix=.su"]' +148: '["-6", "--format=auto", "--keep", "--list"]' +149: '["-6", "-v", "--format=auto", "--keep", "--list"]' +150: '["-6", "--format=auto", "--keep", "--list", "--suffix=.su"]' +151: '["-6", "-v", "--format=auto", "--keep", "--list", "--suffix=.su"]' +152: '["--robot", "-6", "--keep", "--list", "--format=xz"]' +153: '["--robot", "-6", "-v", "--keep", "--list", "--format=xz"]' +154: '["--robot", "-6", "--keep", "--list", "--format=xz", "--suffix=.su"]' +155: '["--robot", "-6", "-v", "--keep", "--list", "--format=xz", "--suffix=.su"]' +156: '["--robot", "-6", "--format=auto", "--keep", "--list"]' +157: '["--robot", "-6", "-v", "--format=auto", "--keep", "--list"]' +158: '["--robot", "-6", "--format=auto", "--keep", "--list", "--suffix=.su"]' +159: '["--robot", "-6", "-v", "--format=auto", "--keep", "--list", "--suffix=.su"]' +... diff --git a/my_case_studies/xz_0.case_study.minimal b/my_case_studies/xz_0.case_study.minimal new file mode 100644 index 000000000..5263d8693 --- /dev/null +++ b/my_case_studies/xz_0.case_study.minimal @@ -0,0 +1,32 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: xz +stages: +- revisions: + - commit_hash: 4773608554d1b684a05ff9c1d879cf5c42266d33 + commit_id: 1684 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["--compress", "-9"]' +1: '["--list", "-6"]' +2: '["--test", "-6"]' +3: '["--decompress", "-6"]' +4: '["--test", "--decompress", "-6"]' +5: '["--compress", "-6"]' +6: '["--compress", "-3"]' +7: '["--compress", "-0"]' +... diff --git a/my_case_studies/xz_0.case_study.reduced b/my_case_studies/xz_0.case_study.reduced new file mode 100644 index 000000000..f4b521ffb --- /dev/null +++ b/my_case_studies/xz_0.case_study.reduced @@ -0,0 +1,336 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: xz +stages: +- revisions: + - commit_hash: 4773608554d1b684a05ff9c1d879cf5c42266d33 + commit_id: 1684 + config_ids: + - 0 + - 1 + - 2 + - 3 + - 4 + - 5 + - 6 + - 7 + - 8 + - 9 + - 10 + - 11 + - 12 + - 13 + - 14 + - 15 + - 16 + - 17 + - 18 + - 19 + - 20 + - 21 + - 22 + - 23 + - 24 + - 25 + - 26 + - 27 + - 28 + - 29 + - 30 + - 31 + - 32 + - 33 + - 34 + - 35 + - 36 + - 37 + - 38 + - 39 + - 40 + - 41 + - 42 + - 43 + - 44 + - 45 + - 46 + - 47 + - 48 + - 49 + - 50 + - 51 + - 52 + - 53 + - 54 + - 55 + - 56 + - 57 + - 58 + - 59 + - 60 + - 61 + - 62 + - 63 + - 64 + - 65 + - 66 + - 67 + - 68 + - 69 + - 70 + - 71 + - 72 + - 73 + - 74 + - 75 + - 76 + - 77 + - 78 + - 79 + - 80 + - 81 + - 82 + - 83 + - 84 + - 85 + - 86 + - 87 + - 88 + - 89 + - 90 + - 91 + - 92 + - 93 + - 94 + - 95 + - 96 + - 97 + - 98 + - 99 + - 100 + - 101 + - 102 + - 103 + - 104 + - 105 + - 106 + - 107 + - 108 + - 109 + - 110 + - 111 + - 112 + - 113 + - 114 + - 115 + - 116 + - 117 + - 118 + - 119 + - 120 + - 121 + - 122 + - 123 + - 124 + - 125 + - 126 + - 127 + - 128 + - 129 + - 130 + - 131 + - 132 + - 133 + - 134 + - 135 + - 136 + - 137 + - 138 + - 139 + - 140 + - 141 + - 142 + - 143 + - 144 + - 145 + - 146 + - 147 + - 148 + - 149 + - 150 + - 151 + - 152 + - 153 + - 154 + - 155 + - 156 + - 157 + - 158 + - 159 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '["-6", "--list", "--format=xz"]' +1: '["--robot", "-6", "--list", "--format=xz"]' +2: '["-6", "--force", "--list", "--format=xz"]' +3: '["--robot", "-6", "--force", "--list", "--format=xz"]' +4: '["--robot", "-6", "--list", "--format=xz", "--suffix=.su"]' +5: '["-6", "--list", "--format=xz", "--suffix=.su"]' +6: '["--robot", "-6", "--format=auto", "--list", "--suffix=.su"]' +7: '["-6", "--format=auto", "--list"]' +8: '["--robot", "-6", "--format=auto", "--list"]' +9: '["-6", "--force", "--list", "--format=xz", "--suffix=.su"]' +10: '["--robot", "-6", "--force", "--list", "--format=xz", "--suffix=.su"]' +11: '["-6", "--format=auto", "--list", "--suffix=.su"]' +12: '["-6", "--force", "--format=auto", "--list"]' +13: '["-6", "--force", "--format=auto", "--list", "--suffix=.su"]' +14: '["--robot", "-6", "--force", "--format=auto", "--list", "--suffix=.su"]' +15: '["--robot", "-6", "--force", "--format=auto", "--list"]' +16: '["--robot", "-6", "--force", "-v", "--list", "--format=xz", "--suffix=.su"]' +17: '["-6", "-v", "--list", "--format=xz"]' +18: '["-6", "-v", "--list", "--format=xz", "--suffix=.su"]' +19: '["--robot", "-6", "-v", "--list", "--format=xz", "--suffix=.su"]' +20: '["--robot", "-6", "-v", "--list", "--format=xz"]' +21: '["--robot", "-6", "--force", "-v", "--list", "--format=xz"]' +22: '["--robot", "-6", "--force", "-v", "--format=auto", "--list", "--suffix=.su"]' +23: '["--robot", "-6", "-v", "--format=auto", "--list", "--suffix=.su"]' +24: '["-6", "--force", "-v", "--format=auto", "--list", "--suffix=.su"]' +25: '["--robot", "-6", "--force", "-v", "--format=auto", "--list"]' +26: '["-6", "-v", "--format=auto", "--list"]' +27: '["-6", "--force", "-v", "--format=auto", "--list"]' +28: '["--robot", "-6", "-v", "--format=auto", "--list"]' +29: '["-6", "-v", "--format=auto", "--list", "--suffix=.su"]' +30: '["-6", "--force", "-v", "--list", "--format=xz", "--suffix=.su"]' +31: '["-6", "--force", "-v", "--list", "--format=xz"]' +32: '["-9", "--force", "-v", "--compress", "--format=xz", "--suffix=.su"]' +33: '["-6", "--force", "-v", "--compress", "--format=xz", "--suffix=.su"]' +34: '["-9", "--force", "-v", "--format=auto", "--compress", "--suffix=.su"]' +35: '["-6", "--force", "-v", "--format=auto", "--compress", "--suffix=.su"]' +36: '["--decompress", "-6", "--force", "-v", "--format=xz", "--suffix=.su"]' +37: '["--decompress", "-6", "--force", "-v", "--format=auto", "--suffix=.su"]' +38: '["-9", "--force", "-v", "--compress", "--format=xz"]' +39: '["-6", "--force", "-v", "--compress", "--format=xz"]' +40: '["-9", "--force", "-v", "--format=auto", "--compress"]' +41: '["-6", "-v", "--format=auto", "--compress"]' +42: '["-6", "--force", "-v", "--format=auto", "--compress"]' +43: '["--decompress", "-6", "--force", "-v", "--format=xz"]' +44: '["--decompress", "-6", "--force", "-v", "--format=auto"]' +45: '["-9", "--force", "--compress", "--format=xz"]' +46: '["-6", "--force", "--compress", "--format=xz"]' +47: '["-9", "--force", "--format=auto", "--compress"]' +48: '["-6", "--force", "--format=auto", "--compress"]' +49: '["--decompress", "-6", "--force", "--format=xz"]' +50: '["--decompress", "-6", "--force", "--format=auto"]' +51: '["-9", "--compress", "--format=xz"]' +52: '["--decompress", "-6", "--format=xz"]' +53: '["--decompress", "-6", "--format=auto"]' +54: '["-6", "--compress", "--format=xz"]' +55: '["-9", "--format=auto", "--compress"]' +56: '["-6", "--format=auto", "--compress"]' +57: '["-9", "--compress", "--format=xz", "--suffix=.su"]' +58: '["-6", "--compress", "--format=xz", "--suffix=.su"]' +59: '["-9", "--format=auto", "--compress", "--suffix=.su"]' +60: '["-6", "--format=auto", "--compress", "--suffix=.su"]' +61: '["--decompress", "-6", "--format=xz", "--suffix=.su"]' +62: '["--decompress", "-6", "--format=auto", "--suffix=.su"]' +63: '["-9", "--force", "--compress", "--format=xz", "--suffix=.su"]' +64: '["-6", "--force", "--compress", "--format=xz", "--suffix=.su"]' +65: '["-9", "--force", "--format=auto", "--compress", "--suffix=.su"]' +66: '["-6", "--force", "--format=auto", "--compress", "--suffix=.su"]' +67: '["--decompress", "-6", "--force", "--format=xz", "--suffix=.su"]' +68: '["--decompress", "-6", "--force", "--format=auto", "--suffix=.su"]' +69: '["-9", "-v", "--compress", "--format=xz"]' +70: '["-6", "-v", "--compress", "--format=xz"]' +71: '["-9", "-v", "--format=auto", "--compress"]' +72: '["--decompress", "-6", "-v", "--format=xz"]' +73: '["--decompress", "-6", "-v", "--format=auto"]' +74: '["-9", "-v", "--compress", "--format=xz", "--suffix=.su"]' +75: '["-6", "-v", "--compress", "--format=xz", "--suffix=.su"]' +76: '["-9", "-v", "--format=auto", "--compress", "--suffix=.su"]' +77: '["-6", "-v", "--format=auto", "--compress", "--suffix=.su"]' +78: '["--decompress", "-6", "-v", "--format=xz", "--suffix=.su"]' +79: '["--decompress", "-6", "-v", "--format=auto", "--suffix=.su"]' +80: '["-9", "--keep", "--compress", "--format=xz"]' +81: '["-6", "--keep", "--compress", "--format=xz"]' +82: '["--test", "-6", "--keep", "--format=xz"]' +83: '["--test", "--stdout", "-6", "--keep", "--format=xz"]' +84: '["--decompress", "-6", "--keep", "--format=xz"]' +85: '["--stdout", "--decompress", "-6", "--keep", "--format=xz"]' +86: '["--test", "--decompress", "-6", "--keep", "--format=xz"]' +87: '["--test", "--stdout", "--decompress", "-6", "--keep", "--format=xz"]' +88: '["-9", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +89: '["-6", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +90: '["--test", "-6", "--keep", "--format=xz", "--suffix=.su"]' +91: '["--test", "--stdout", "-6", "--keep", "--format=xz", "--suffix=.su"]' +92: '["--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +93: '["--stdout", "--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +94: '["--test", "--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +95: '["--test", "--stdout", "--decompress", "-6", "--keep", "--format=xz", "--suffix=.su"]' +96: '["-9", "-v", "--keep", "--compress", "--format=xz"]' +97: '["-6", "-v", "--keep", "--compress", "--format=xz"]' +98: '["--test", "-6", "-v", "--keep", "--format=xz"]' +99: '["--test", "--stdout", "-6", "-v", "--keep", "--format=xz"]' +100: '["--decompress", "-6", "-v", "--keep", "--format=xz"]' +101: '["--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz"]' +102: '["--test", "--decompress", "-6", "-v", "--keep", "--format=xz"]' +103: '["--test", "--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz"]' +104: '["--test", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +105: '["--test", "--stdout", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +106: '["--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +107: '["--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +108: '["--test", "--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +109: '["--test", "--stdout", "--decompress", "-6", "-v", "--keep", "--format=xz", "--suffix=.su"]' +110: '["-9", "-v", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +111: '["-6", "-v", "--keep", "--compress", "--format=xz", "--suffix=.su"]' +112: '["-9", "--format=auto", "--keep", "--compress"]' +113: '["-6", "--format=auto", "--keep", "--compress"]' +114: '["-9", "-v", "--format=auto", "--keep", "--compress"]' +115: '["-6", "-v", "--format=auto", "--keep", "--compress"]' +116: '["--test", "-6", "--format=auto", "--keep"]' +117: '["--test", "--stdout", "-6", "--format=auto", "--keep"]' +118: '["--decompress", "-6", "--format=auto", "--keep"]' +119: '["--stdout", "--decompress", "-6", "--format=auto", "--keep"]' +120: '["--test", "--decompress", "-6", "--format=auto", "--keep"]' +121: '["--test", "--stdout", "--decompress", "-6", "--format=auto", "--keep"]' +122: '["--test", "-6", "-v", "--format=auto", "--keep"]' +123: '["--test", "--stdout", "-6", "-v", "--format=auto", "--keep"]' +124: '["--decompress", "-6", "-v", "--format=auto", "--keep"]' +125: '["--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep"]' +126: '["--test", "--decompress", "-6", "-v", "--format=auto", "--keep"]' +127: '["--test", "--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep"]' +128: '["-9", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +129: '["-6", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +130: '["-9", "-v", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +131: '["-6", "-v", "--format=auto", "--keep", "--compress", "--suffix=.su"]' +132: '["--test", "-6", "--format=auto", "--keep", "--suffix=.su"]' +133: '["--test", "--stdout", "-6", "--format=auto", "--keep", "--suffix=.su"]' +134: '["--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +135: '["--stdout", "--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +136: '["--test", "--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +137: '["--test", "--stdout", "--decompress", "-6", "--format=auto", "--keep", "--suffix=.su"]' +138: '["--test", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +139: '["--test", "--stdout", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +140: '["--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +141: '["--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +142: '["--test", "--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +143: '["--test", "--stdout", "--decompress", "-6", "-v", "--format=auto", "--keep", "--suffix=.su"]' +144: '["-6", "--keep", "--list", "--format=xz"]' +145: '["-6", "-v", "--keep", "--list", "--format=xz"]' +146: '["-6", "--keep", "--list", "--format=xz", "--suffix=.su"]' +147: '["-6", "-v", "--keep", "--list", "--format=xz", "--suffix=.su"]' +148: '["-6", "--format=auto", "--keep", "--list"]' +149: '["-6", "-v", "--format=auto", "--keep", "--list"]' +150: '["-6", "--format=auto", "--keep", "--list", "--suffix=.su"]' +151: '["-6", "-v", "--format=auto", "--keep", "--list", "--suffix=.su"]' +152: '["--robot", "-6", "--keep", "--list", "--format=xz"]' +153: '["--robot", "-6", "-v", "--keep", "--list", "--format=xz"]' +154: '["--robot", "-6", "--keep", "--list", "--format=xz", "--suffix=.su"]' +155: '["--robot", "-6", "-v", "--keep", "--list", "--format=xz", "--suffix=.su"]' +156: '["--robot", "-6", "--format=auto", "--keep", "--list"]' +157: '["--robot", "-6", "-v", "--format=auto", "--keep", "--list"]' +158: '["--robot", "-6", "--format=auto", "--keep", "--list", "--suffix=.su"]' +159: '["--robot", "-6", "-v", "--format=auto", "--keep", "--list", "--suffix=.su"]' +... diff --git a/myscripts/__init__.py b/myscripts/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/myscripts/common.py b/myscripts/common.py new file mode 100644 index 000000000..f9b1379bc --- /dev/null +++ b/myscripts/common.py @@ -0,0 +1,74 @@ +import signal + +import vara_feature.feature_model as FM +from vara_feature.configuration import getAllConfigs + + +def getConfigs(fm): + signal.alarm(180) + allConfigs = getAllConfigs(fm) + signal.alarm(0) + configs = [] + for config in allConfigs: + options = dict() + #for option in config: + for option in config.getOptions(): + name = option.name + value: str = option.value + if value == "true": + options[name] = True + elif value == "false": + options[name] = False + elif value.isdigit(): + options[name] = int(value) + else: + options[name] = value + assert options not in configs, f"{options} already in {configs}" + configs.append(options) + return reversed(configs) + + +def load_feature_model(path): + fm = FM.loadFeatureModel(path) + if fm is None: + raise ValueError("Feature Model could not be loaded!") + return fm + + +def remove_empty(dictionary): + return dict(filter(lambda item: item[0], dictionary.items())) + + +def remove_false(dictionary): + return dict( + filter( + lambda item: item[1] or type(item[1]) is int, dictionary.items() + ) + ) + + +def replace_feature_with_option(config, feature_to_options): + out = {} + for key, value in config.items(): + option = feature_to_options[key] + if isinstance(value, bool): + pass + elif isinstance(value, int): + tmp = list(filter(lambda o: str(value) in o, option)) + assert len(tmp) == 1 + option = tmp[0] + else: + raise NotImplementedError() + + out[option] = value + return out + + +def config_to_options(config, feature_to_options): + return list( + remove_empty( + remove_false( + replace_feature_with_option(config, feature_to_options) + ) + ) + ) diff --git a/myscripts/feature_combinations.py b/myscripts/feature_combinations.py new file mode 100755 index 000000000..9ed16ecd5 --- /dev/null +++ b/myscripts/feature_combinations.py @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 +from sys import argv + +from common import load_feature_model, getConfigs, config_to_options +from feature_option_mapping import feature_option_mapping + + +def wrap_ticks(wrappee): + # Split spaces + #splitted_wrappee = [] + #for x in wrappee: + # splitted_wrappee.extend(x.split(" ", 1)) + + return map(lambda x: f'"{x}"', wrappee) + + +def create_mapping(configs, feature_to_options): + mapping = {} + + id = 0 + for config in configs: + to_add = f"""'[{', '.join(wrap_ticks(config_to_options(config, feature_to_options)))}]'""" + if to_add not in mapping.values(): + mapping[id] = to_add + id += 1 + + # test mapping unique + assert len(mapping.values() + ) == len(set(mapping.values())), "Mapping contains duplicates!" + + return mapping + + +def formatted_print(mapping): + for id in mapping: + print(f" - {id}") + + tmp = [] + for id, config in mapping.items(): + tmp.append(f"{id}: {config}") + + print( + f"""version: 0 +... +--- +config_type: PlainCommandlineConfiguration +{chr(10).join(tmp)} +... +""" + ) + + +def main(): + fm = load_feature_model(argv[1]) + feature_to_options = feature_option_mapping(fm) + configs = getConfigs(fm) + mapping = create_mapping(configs, feature_to_options) + formatted_print(mapping) + + +if __name__ == "__main__": + main() diff --git a/myscripts/feature_model_formula.py b/myscripts/feature_model_formula.py new file mode 100755 index 000000000..75a84e413 --- /dev/null +++ b/myscripts/feature_model_formula.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3 +from sys import argv + +from common import ( + load_feature_model, + getConfigs, + replace_feature_with_option, + remove_empty, +) +from feature_option_mapping import feature_option_mapping + + +def options_to_formula(options): + output = [] + for option, value in options.items(): + if value is 0 or value: + output.append(option) + else: + output.append(f"~{option}") + return f"({' & '.join(output)})" + + +def dnf_formula(configs, feature_to_options): + output = [] + for config in configs: + options = remove_empty( + replace_feature_with_option(config, feature_to_options) + ) + conjunction = options_to_formula(options) + if conjunction not in output: + output.append(conjunction) + + assert len(output) == len(set(output)), "Formula not unique" + return " | ".join(output) + + +def main(): + fm = load_feature_model(argv[1]) + feature_to_options = feature_option_mapping(fm, lstrip="-") + configs = getConfigs(fm) + print(dnf_formula(configs, feature_to_options)) + + +if __name__ == "__main__": + main() diff --git a/myscripts/feature_option_mapping.py b/myscripts/feature_option_mapping.py new file mode 100755 index 000000000..bbda40583 --- /dev/null +++ b/myscripts/feature_option_mapping.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +import json +import re +import typing as tp +from sys import argv + +from common import load_feature_model +from vara_feature.feature import NumericFeature, Feature + +REGEX_MIN_VALUE = re.compile("minValue: (\d+)") +REGEX_MAX_VALUE = re.compile("maxValue: (\d+)") +REGEX_VALUES = re.compile("values: \[(.+),\]") + + +def get_min_value(s: str) -> tp.Optional[int]: + if (result := REGEX_MIN_VALUE.search(s)): + return int(result.group(1)) + return None + + +def get_max_value(s: str) -> tp.Optional[int]: + if (result := REGEX_MAX_VALUE.search(s)): + return int(result.group(1)) + return None + + +def get_values(s: str) -> tp.Optional[tp.List[int]]: + if (result := REGEX_VALUES.search(s)): + values = result.group(1).split(",") + return list(map(int, values)) + return None + + +def get_numeric_values(feature: Feature) -> tp.Optional[tp.List[int]]: + s = feature.to_string() + if isinstance(feature, NumericFeature): + _get_values = get_values(s) + if _get_values: + return _get_values + return range(get_min_value(s), get_max_value(s) + 1)[:10] + + return None + + +def strip_prefix(dictionary, prefix_chars): + out = {} + for key, value in dictionary.items(): + if isinstance(value, tuple): + out[key] = tuple(x.lstrip(prefix_chars) for x in value) + else: + out[key] = value.lstrip(prefix_chars) + return out + + +def feature_option_mapping(fm, lstrip=None): + output = {} + for feature in fm: + name = feature.name.str() + option = feature.output_string.str() + numeric_values = get_numeric_values(feature) + if numeric_values: + output[name] = tuple(f"{option}{i}" for i in numeric_values) + else: + output[name] = option + if lstrip is not None: + output = strip_prefix(output, lstrip) + return output + + +def main(): + fm = load_feature_model(argv[1]) + print(json.dumps(feature_option_mapping(fm))) + + +if __name__ == "__main__": + main() diff --git a/requirements.txt b/requirements.txt index 1a3860088..4431399f1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ Jinja2>=3.1.2 jupyter>=1.0.0 kaleido>=0.2.1 matplotlib>=3.7.1 +more-itertools>=9.1.0 networkx>=3.0 numpy>=1.24.2 packaging>=20.1 diff --git a/tests/TEST_INPUTS/paper_configs/test_coverage_MultiSharedMultipleRegions/FeaturePerfCSCollection_0.case_study b/tests/TEST_INPUTS/paper_configs/test_coverage_MultiSharedMultipleRegions/FeaturePerfCSCollection_0.case_study new file mode 100644 index 000000000..bad0959f6 --- /dev/null +++ b/tests/TEST_INPUTS/paper_configs/test_coverage_MultiSharedMultipleRegions/FeaturePerfCSCollection_0.case_study @@ -0,0 +1,25 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: FeaturePerfCSCollection +stages: +- revisions: + - commit_hash: 27f17080376e409860405c40744887d81d6b3f34 + commit_id: 22 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--slow"]' +2: '["--header"]' +3: '["--slow", "--header"]' +... + diff --git a/tests/TEST_INPUTS/paper_configs/test_coverage_SimpleFeatureInteraction/FeaturePerfCSCollection_0.case_study b/tests/TEST_INPUTS/paper_configs/test_coverage_SimpleFeatureInteraction/FeaturePerfCSCollection_0.case_study new file mode 100644 index 000000000..d93db690c --- /dev/null +++ b/tests/TEST_INPUTS/paper_configs/test_coverage_SimpleFeatureInteraction/FeaturePerfCSCollection_0.case_study @@ -0,0 +1,25 @@ +--- +DocType: CaseStudy +Version: 1 +... +--- +project_name: FeaturePerfCSCollection +stages: +- revisions: + - commit_hash: 4300ea495e7f013f68e785fdde5c4ead81297999 + commit_id: 36 + config_ids: + - 0 + - 1 + - 2 + - 3 +version: 0 +... +--- +config_type: PlainCommandlineConfiguration +0: '[]' +1: '["--enc"]' +2: '["--compress"]' +3: '["--enc", "--compress"]' +... + diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/1a8cd8f5-59e9-44e5-a6fd-634af4244399_config-3_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/1a8cd8f5-59e9-44e5-a6fd-634af4244399_config-3_success.zip new file mode 100644 index 000000000..1723c4db4 Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/1a8cd8f5-59e9-44e5-a6fd-634af4244399_config-3_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/31848b67-cf0a-45aa-baea-f40ed61f18b2_config-1_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/31848b67-cf0a-45aa-baea-f40ed61f18b2_config-1_success.zip new file mode 100644 index 000000000..5bd7b380c Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/31848b67-cf0a-45aa-baea-f40ed61f18b2_config-1_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/350b9119-e942-4492-885d-6c0f535c1c33_config-0_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/350b9119-e942-4492-885d-6c0f535c1c33_config-0_success.zip new file mode 100644 index 000000000..c361c7110 Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/350b9119-e942-4492-885d-6c0f535c1c33_config-0_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/d0275857-0a9c-4987-83b1-ab0d951b3de4_config-2_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/d0275857-0a9c-4987-83b1-ab0d951b3de4_config-2_success.zip new file mode 100644 index 000000000..9997b0516 Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/d0275857-0a9c-4987-83b1-ab0d951b3de4_config-2_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/3d925344-71a4-405f-b11e-7f60c014554a_config-3_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/3d925344-71a4-405f-b11e-7f60c014554a_config-3_success.zip new file mode 100644 index 000000000..4b574b3e0 Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/3d925344-71a4-405f-b11e-7f60c014554a_config-3_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/7e6bcdd3-5ea4-4e29-a47d-0a9d155f17b3_config-0_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/7e6bcdd3-5ea4-4e29-a47d-0a9d155f17b3_config-0_success.zip new file mode 100644 index 000000000..83b150eca Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/7e6bcdd3-5ea4-4e29-a47d-0a9d155f17b3_config-0_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/cba1eaa6-95ad-4681-baa9-9781cde5e35b_config-1_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/cba1eaa6-95ad-4681-baa9-9781cde5e35b_config-1_success.zip new file mode 100644 index 000000000..220483856 Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/cba1eaa6-95ad-4681-baa9-9781cde5e35b_config-1_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/d82eb088-d78b-4097-a51b-9e7107ec98c5_config-2_success.zip b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/d82eb088-d78b-4097-a51b-9e7107ec98c5_config-2_success.zip new file mode 100644 index 000000000..25e35dffe Binary files /dev/null and b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e/d82eb088-d78b-4097-a51b-9e7107ec98c5_config-2_success.zip differ diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/HowToReproduce.md b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/HowToReproduce.md new file mode 100644 index 000000000..af03a1d83 --- /dev/null +++ b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/HowToReproduce.md @@ -0,0 +1,7 @@ +0. Set `clean` to value `false` in your `$VARATS_ROOT/benchbuild/.benchbuild.yml` to keep build artificats. +1. Copy case_study files from [tests/TEST_INPUTS/paper_configs/test_coverage_plot/](../../paper_configs/test_coverage_plot/) to `$VARATS_ROOT/paper_configs//` +2. `vara-run -E GenerateCoverage FeaturePerfCSCollection` +3. cd [tests/TEST_INPUTS/results/FeaturePerfCSCollection](.) +4. Copy results from `$VARATS_ROOT/results/FeaturePerfCSCollection/GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037/` to [GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037](GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037). The UUIDs in the result files changed. Adapt hardcoded paths in tests accordingly. +5. Run [reproduce.sh](reproduce.sh), e.g.`./reproduce.sh GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037`. +6. Add key value pair `"absolute_path": "$VARATS_ROOT/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037"` to [llvm-profdata_merged_slow_and_header.json](llvm-profdata_merged_slow_and_header.json) diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/cov_show_slow.txt b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/cov_show_slow.txt new file mode 100644 index 000000000..d62c008ad --- /dev/null +++ b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/cov_show_slow.txt @@ -0,0 +1,157 @@ +include/fpcsc/perf_util/feature_cmd.h: + 1| |#ifndef FPCSC_PERFUTIL_FEATURECMD_H + 2| |#define FPCSC_PERFUTIL_FEATURECMD_H + 3| | + 4| |#include + 5| |#include + 6| |#include + 7| | + 8| |namespace fpcsc { + 9| 4|inline bool isFeatureEnabled(int argc, char *argv[], std::string FeatureName) { + 10| 7| for (int CurrentArg = 1; CurrentArg < argc; ++CurrentArg) { + 11| 4| if (argv[CurrentArg] == FeatureName) { + 12| 1| return true; + 13| 1| } + 14| 4| } + 15| | + 16| 3| return false; + 17| 4|} + 18| | + 19| 0|inline long getFeatureValue(int argc, char *argv[], std::string FeatureName) { + 20| 0| int CurrentArg = 1; + 21| 0| for (; CurrentArg < argc; ++CurrentArg) { + 22| 0| if (argv[CurrentArg] == FeatureName) { + 23| 0| ++CurrentArg; + 24| 0| break; + 25| 0| } + 26| 0| } + 27| 0| + 28| 0| if (CurrentArg >= argc) { + 29| 0| return 0; + 30| 0| } + 31| 0| + 32| 0| return strtol(argv[CurrentArg], NULL, 0); + 33| 0|} + 34| | + 35| |} // namespace fpcsc + 36| | + 37| |#endif // FPCSC_PERFUTIL_FEATURECMD_H + +include/fpcsc/perf_util/sleep.h: + 1| |#ifndef FPCSC_PERFUTIL_SLEEP_H + 2| |#define FPCSC_PERFUTIL_SLEEP_H + 3| | + 4| |#include + 5| |#include + 6| |#include + 7| | + 8| |namespace fpcsc { + 9| | + 10| 5|inline void sleep_for_secs(unsigned Secs) { + 11| 5| std::cout << "Sleeping for " << Secs << " seconds" << std::endl; + 12| 5| std::this_thread::sleep_for(std::chrono::seconds(Secs)); + 13| 5|} + 14| | + 15| 0|inline void sleep_for_millisecs(unsigned Millisecs) { + 16| 0| std::cout << "Sleeping for " << Millisecs << " milliseconds" << std::endl; + 17| 0| std::this_thread::sleep_for(std::chrono::milliseconds(Millisecs)); + 18| 0|} + 19| | + 20| 0|inline void sleep_for_nanosecs(unsigned millisecs) { + 21| 0| std::this_thread::sleep_for(std::chrono::nanoseconds(millisecs)); + 22| 0|} + 23| | + 24| |} // namespace fpcsc + 25| | + 26| |#endif // FPCSC_PERFUTIL_SLEEP_H + +src/MultiSharedMultipleRegions/FeatureHeader.cpp: + 1| |#include "FeatureHeader.h" + 2| | + 3| |bool ExternFeature = false; + 4| | + 5| |static bool CppFeature = false; + 6| | + 7| 0|void enableCppFeature() { + 8| 0| CppFeature = true; + 9| 0|} + 10| | + 11| 1|bool isCppFeatureEnabled() { + 12| 1| return CppFeature; + 13| 1|} + +src/MultiSharedMultipleRegions/FeatureHeader.h: + 1| |#ifndef FEATURE_HEADER_H + 2| |#define FEATURE_HEADER_H + 3| | + 4| |extern bool ExternFeature; + 5| | + 6| |static inline bool HeaderFeature = false; + 7| | + 8| 0|inline void enableExternFeature() { + 9| 0| ExternFeature = true; + 10| 0|} + 11| | + 12| |void enableCppFeature(); + 13| |bool isCppFeatureEnabled(); + 14| | + 15| |#endif // FEATURE_HEADER_H + +src/MultiSharedMultipleRegions/MSMRmain.cpp: + 1| |#include "FeatureHeader.h" + 2| | + 3| |#include "fpcsc/perf_util/sleep.h" + 4| |#include "fpcsc/perf_util/feature_cmd.h" + 5| | + 6| |#include + 7| | + 8| 1|int main(int argc, char *argv[] ) { + 9| 1| bool Slow = false; + 10| | + 11| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--slow"))) { + 12| 1| Slow = true; + 13| 1| } + 14| | + 15| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--header"))) { + 16| 0| HeaderFeature = true; + 17| 0| } + 18| | + 19| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--extern"))) { + 20| 0| enableExternFeature(); + 21| 0| } + 22| | + 23| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--cpp"))) { + 24| 0| enableCppFeature(); + 25| 0| } + 26| | + 27| | // Multiple regions related to --slow that take different amounts of time. + 28| | + 29| 1| if (Slow) { + 30| 1| fpcsc::sleep_for_secs(5); + 31| 1| } else { + 32| 0| fpcsc::sleep_for_secs(3); + 33| 0| } + 34| | + 35| 1| fpcsc::sleep_for_secs(2); // General waiting time + 36| | + 37| 1| if (HeaderFeature) { + 38| 0| fpcsc::sleep_for_secs(3); + 39| 1| } else { + 40| 1| fpcsc::sleep_for_secs(1); + 41| 1| } + 42| | + 43| 1| fpcsc::sleep_for_secs(2); // General waiting time + 44| | + 45| 1| if (ExternFeature) { + 46| 0| fpcsc::sleep_for_secs(6); + 47| 0| } + 48| | + 49| 1| fpcsc::sleep_for_secs(2); // General waiting time + 50| | + 51| 1| if (isCppFeatureEnabled()) { + 52| 0| fpcsc::sleep_for_secs(3); + 53| 0| } + 54| | + 55| 1| return 0; + 56| 1|} + diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/cov_show_slow_color.txt b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/cov_show_slow_color.txt new file mode 100644 index 000000000..ed8c803fe --- /dev/null +++ b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/cov_show_slow_color.txt @@ -0,0 +1,157 @@ +include/fpcsc/perf_util/feature_cmd.h: + 1| |#ifndef FPCSC_PERFUTIL_FEATURECMD_H + 2| |#define FPCSC_PERFUTIL_FEATURECMD_H + 3| | + 4| |#include + 5| |#include + 6| |#include + 7| | + 8| |namespace fpcsc { + 9| 4|inline bool isFeatureEnabled(int argc, char *argv[], std::string FeatureName) { + 10| 7| for (int CurrentArg = 1; CurrentArg < argc; ++CurrentArg) { + 11| 4| if (argv[CurrentArg] == FeatureName) { + 12| 1| return true; + 13| 1| } + 14| 4| } + 15| | + 16| 3| return false; + 17| 4|} + 18| | + 19| 0|inline long getFeatureValue(int argc, char *argv[], std::string FeatureName) { + 20| 0| int CurrentArg = 1; + 21| 0| for (; CurrentArg < argc; ++CurrentArg) { + 22| 0| if (argv[CurrentArg] == FeatureName) { + 23| 0| ++CurrentArg; + 24| 0| break; + 25| 0| } + 26| 0| } + 27| 0| + 28| 0| if (CurrentArg >= argc) { + 29| 0| return 0; + 30| 0| } + 31| 0| + 32| 0| return strtol(argv[CurrentArg], NULL, 0); + 33| 0|} + 34| | + 35| |} // namespace fpcsc + 36| | + 37| |#endif // FPCSC_PERFUTIL_FEATURECMD_H + +include/fpcsc/perf_util/sleep.h: + 1| |#ifndef FPCSC_PERFUTIL_SLEEP_H + 2| |#define FPCSC_PERFUTIL_SLEEP_H + 3| | + 4| |#include + 5| |#include + 6| |#include + 7| | + 8| |namespace fpcsc { + 9| | + 10| 5|inline void sleep_for_secs(unsigned Secs) { + 11| 5| std::cout << "Sleeping for " << Secs << " seconds" << std::endl; + 12| 5| std::this_thread::sleep_for(std::chrono::seconds(Secs)); + 13| 5|} + 14| | + 15| 0|inline void sleep_for_millisecs(unsigned Millisecs) { + 16| 0| std::cout << "Sleeping for " << Millisecs << " milliseconds" << std::endl; + 17| 0| std::this_thread::sleep_for(std::chrono::milliseconds(Millisecs)); + 18| 0|} + 19| | + 20| 0|inline void sleep_for_nanosecs(unsigned millisecs) { + 21| 0| std::this_thread::sleep_for(std::chrono::nanoseconds(millisecs)); + 22| 0|} + 23| | + 24| |} // namespace fpcsc + 25| | + 26| |#endif // FPCSC_PERFUTIL_SLEEP_H + +src/MultiSharedMultipleRegions/FeatureHeader.cpp: + 1| |#include "FeatureHeader.h" + 2| | + 3| |bool ExternFeature = false; + 4| | + 5| |static bool CppFeature = false; + 6| | + 7| 0|void enableCppFeature() { + 8| 0| CppFeature = true; + 9| 0|} + 10| | + 11| 1|bool isCppFeatureEnabled() { + 12| 1| return CppFeature; + 13| 1|} + +src/MultiSharedMultipleRegions/FeatureHeader.h: + 1| |#ifndef FEATURE_HEADER_H + 2| |#define FEATURE_HEADER_H + 3| | + 4| |extern bool ExternFeature; + 5| | + 6| |static inline bool HeaderFeature = false; + 7| | + 8| 0|inline void enableExternFeature() { + 9| 0| ExternFeature = true; + 10| 0|} + 11| | + 12| |void enableCppFeature(); + 13| |bool isCppFeatureEnabled(); + 14| | + 15| |#endif // FEATURE_HEADER_H + +src/MultiSharedMultipleRegions/MSMRmain.cpp: + 1| |#include "FeatureHeader.h" + 2| | + 3| |#include "fpcsc/perf_util/sleep.h" + 4| |#include "fpcsc/perf_util/feature_cmd.h" + 5| | + 6| |#include + 7| | + 8| 1|int main(int argc, char *argv[] ) { + 9| 1| bool Slow = false; + 10| | + 11| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--slow"))) { + 12| 1| Slow = true; + 13| 1| } + 14| | + 15| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--header"))) { + 16| 0| HeaderFeature = true; + 17| 0| } + 18| | + 19| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--extern"))) { + 20| 0| enableExternFeature(); + 21| 0| } + 22| | + 23| 1| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--cpp"))) { + 24| 0| enableCppFeature(); + 25| 0| } + 26| | + 27| | // Multiple regions related to --slow that take different amounts of time. + 28| | + 29| 1| if (Slow) { + 30| 1| fpcsc::sleep_for_secs(5); + 31| 1| } else { + 32| 0| fpcsc::sleep_for_secs(3); + 33| 0| } + 34| | + 35| 1| fpcsc::sleep_for_secs(2); // General waiting time + 36| | + 37| 1| if (HeaderFeature) { + 38| 0| fpcsc::sleep_for_secs(3); + 39| 1| } else { + 40| 1| fpcsc::sleep_for_secs(1); + 41| 1| } + 42| | + 43| 1| fpcsc::sleep_for_secs(2); // General waiting time + 44| | + 45| 1| if (ExternFeature) { + 46| 0| fpcsc::sleep_for_secs(6); + 47| 0| } + 48| | + 49| 1| fpcsc::sleep_for_secs(2); // General waiting time + 50| | + 51| 1| if (isCppFeatureEnabled()) { + 52| 0| fpcsc::sleep_for_secs(3); + 53| 0| } + 54| | + 55| 1| return 0; + 56| 1|} + diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/llvm-profdata_merged_slow_and_header.json b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/llvm-profdata_merged_slow_and_header.json new file mode 100644 index 000000000..677c9cde0 --- /dev/null +++ b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/llvm-profdata_merged_slow_and_header.json @@ -0,0 +1 @@ +{"absolute_path": "/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037","data":[{"files":[{"branches":[[10,28,10,45,8,6,0,0,4],[11,9,11,40,2,6,0,0,4]],"expansions":[],"filename":"/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/feature_cmd.h","segments":[[9,79,8,true,true,false],[10,28,14,true,true,false],[10,45,8,true,false,false],[10,47,6,true,true,false],[10,59,8,true,false,false],[10,61,8,true,true,false],[11,9,8,true,true,false],[11,40,8,true,false,false],[11,41,2,true,false,true],[11,42,2,true,true,false],[13,6,8,true,false,false],[14,4,6,true,false,true],[15,1,0,false,true,false],[15,1,6,true,false,true],[16,3,6,true,true,false],[16,15,8,true,false,false],[17,2,0,false,false,false],[19,78,0,true,true,false],[33,2,0,false,false,false]],"summary":{"branches":{"count":4,"covered":4,"notcovered":0,"percent":100},"functions":{"count":2,"covered":1,"percent":50},"instantiations":{"count":2,"covered":1,"percent":50},"lines":{"count":23,"covered":8,"percent":34.782608695652172},"regions":{"count":8,"covered":7,"notcovered":1,"percent":87.5}}},{"branches":[],"expansions":[],"filename":"/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/sleep.h","segments":[[10,43,10,true,true,false],[13,2,0,false,false,false],[15,53,0,true,true,false],[18,2,0,false,false,false],[20,52,0,true,true,false],[22,2,0,false,false,false]],"summary":{"branches":{"count":0,"covered":0,"notcovered":0,"percent":0},"functions":{"count":3,"covered":1,"percent":33.333333333333329},"instantiations":{"count":3,"covered":1,"percent":33.333333333333329},"lines":{"count":11,"covered":4,"percent":36.363636363636367},"regions":{"count":3,"covered":1,"notcovered":2,"percent":33.333333333333329}}},{"branches":[],"expansions":[],"filename":"/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/FeatureHeader.cpp","segments":[[7,25,0,true,true,false],[9,2,0,false,false,false],[11,28,2,true,true,false],[13,2,0,false,false,false]],"summary":{"branches":{"count":0,"covered":0,"notcovered":0,"percent":0},"functions":{"count":2,"covered":1,"percent":50},"instantiations":{"count":2,"covered":1,"percent":50},"lines":{"count":6,"covered":3,"percent":50},"regions":{"count":2,"covered":1,"notcovered":1,"percent":50}}},{"branches":[],"expansions":[],"filename":"/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/FeatureHeader.h","segments":[[8,35,0,true,true,false],[10,2,0,false,false,false]],"summary":{"branches":{"count":0,"covered":0,"notcovered":0,"percent":0},"functions":{"count":1,"covered":0,"percent":0},"instantiations":{"count":1,"covered":0,"percent":0},"lines":{"count":3,"covered":0,"percent":0},"regions":{"count":1,"covered":0,"notcovered":1,"percent":0}}},{"branches":[[11,7,11,65,1,1,0,0,4],[15,7,15,67,1,1,0,0,4],[19,7,19,67,0,2,0,0,4],[23,7,23,64,0,2,0,0,4],[29,7,29,11,1,1,0,0,4],[37,7,37,20,1,1,0,0,4],[45,7,45,20,0,2,0,0,4],[51,7,51,28,0,2,0,0,4]],"expansions":[],"filename":"/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/MSMRmain.cpp","segments":[[8,35,2,true,true,false],[10,1,0,false,true,false],[10,1,2,true,false,false],[11,7,2,true,true,false],[11,65,2,true,false,false],[11,66,1,true,false,true],[11,67,1,true,true,false],[13,4,2,true,false,false],[14,1,0,false,true,false],[14,1,2,true,false,false],[15,7,2,true,true,false],[15,67,2,true,false,false],[15,68,1,true,false,true],[15,69,1,true,true,false],[17,4,2,true,false,false],[18,1,0,false,true,false],[18,1,2,true,false,false],[19,7,2,true,true,false],[19,67,2,true,false,false],[19,68,0,true,false,true],[19,69,0,true,true,false],[21,4,2,true,false,false],[22,1,0,false,true,false],[22,1,2,true,false,false],[23,7,2,true,true,false],[23,64,2,true,false,false],[23,65,0,true,false,true],[23,66,0,true,true,false],[25,4,2,true,false,false],[26,1,0,false,true,false],[28,1,2,true,false,false],[29,7,2,true,true,false],[29,11,2,true,false,false],[29,12,1,true,false,true],[29,13,1,true,true,false],[31,4,1,true,false,true],[31,10,1,true,true,false],[33,4,2,true,false,false],[34,1,0,false,true,false],[34,1,2,true,false,false],[36,1,0,false,true,false],[36,1,2,true,false,false],[37,7,2,true,true,false],[37,20,2,true,false,false],[37,21,1,true,false,true],[37,22,1,true,true,false],[39,4,1,true,false,true],[39,10,1,true,true,false],[41,4,2,true,false,false],[42,1,0,false,true,false],[42,1,2,true,false,false],[44,1,0,false,true,false],[44,1,2,true,false,false],[45,7,2,true,true,false],[45,20,2,true,false,false],[45,21,0,true,false,true],[45,22,0,true,true,false],[47,4,2,true,false,false],[48,1,0,false,true,false],[48,1,2,true,false,false],[50,1,0,false,true,false],[50,1,2,true,false,false],[51,7,2,true,true,false],[51,28,2,true,false,false],[51,29,0,true,false,true],[51,30,0,true,true,false],[53,4,2,true,false,false],[54,1,0,false,true,false],[54,1,2,true,false,false],[56,2,0,false,false,false]],"summary":{"branches":{"count":16,"covered":12,"notcovered":4,"percent":75},"functions":{"count":1,"covered":1,"percent":100},"instantiations":{"count":1,"covered":1,"percent":100},"lines":{"count":35,"covered":27,"percent":77.142857142857153},"regions":{"count":19,"covered":15,"notcovered":4,"percent":78.94736842105263}}}],"functions":[{"branches":[[11,7,11,65,1,1,0,0,4],[15,7,15,67,1,1,0,0,4],[19,7,19,67,0,2,0,0,4],[23,7,23,64,0,2,0,0,4],[29,7,29,11,1,1,0,0,4],[37,7,37,20,1,1,0,0,4],[45,7,45,20,0,2,0,0,4],[51,7,51,28,0,2,0,0,4]],"count":2,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/MSMRmain.cpp"],"name":"main","regions":[[8,35,56,2,2,0,0,0],[10,1,10,1,0,0,0,2],[11,7,11,65,2,0,0,0],[11,66,11,67,1,0,0,3],[11,67,13,4,1,0,0,0],[14,1,14,1,0,0,0,2],[15,7,15,67,2,0,0,0],[15,68,15,69,1,0,0,3],[15,69,17,4,1,0,0,0],[18,1,18,1,0,0,0,2],[19,7,19,67,2,0,0,0],[19,68,19,69,0,0,0,3],[19,69,21,4,0,0,0,0],[22,1,22,1,0,0,0,2],[23,7,23,64,2,0,0,0],[23,65,23,66,0,0,0,3],[23,66,25,4,0,0,0,0],[26,1,28,1,0,0,0,2],[29,7,29,11,2,0,0,0],[29,12,29,13,1,0,0,3],[29,13,31,4,1,0,0,0],[31,4,31,10,1,0,0,3],[31,10,33,4,1,0,0,0],[34,1,34,1,0,0,0,2],[36,1,36,1,0,0,0,2],[37,7,37,20,2,0,0,0],[37,21,37,22,1,0,0,3],[37,22,39,4,1,0,0,0],[39,4,39,10,1,0,0,3],[39,10,41,4,1,0,0,0],[42,1,42,1,0,0,0,2],[44,1,44,1,0,0,0,2],[45,7,45,20,2,0,0,0],[45,21,45,22,0,0,0,3],[45,22,47,4,0,0,0,0],[48,1,48,1,0,0,0,2],[50,1,50,1,0,0,0,2],[51,7,51,28,2,0,0,0],[51,29,51,30,0,0,0,3],[51,30,53,4,0,0,0,0],[54,1,54,1,0,0,0,2]]},{"branches":[[10,28,10,45,8,6,0,0,4],[11,9,11,40,2,6,0,0,4]],"count":8,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/feature_cmd.h"],"name":"_ZN5fpcsc16isFeatureEnabledEiPPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE","regions":[[9,79,17,2,8,0,0,0],[10,28,10,45,14,0,0,0],[10,47,10,59,6,0,0,0],[10,60,10,61,8,0,0,3],[10,61,14,4,8,0,0,0],[11,9,11,40,8,0,0,0],[11,41,11,42,2,0,0,3],[11,42,13,6,2,0,0,0],[14,4,16,3,6,0,0,3],[15,1,15,1,0,0,0,2],[16,3,16,15,6,0,0,0]]},{"branches":[],"count":0,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/FeatureHeader.h"],"name":"_Z19enableExternFeaturev","regions":[[8,35,10,2,0,0,0,0]]},{"branches":[],"count":10,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/sleep.h"],"name":"_ZN5fpcsc14sleep_for_secsEj","regions":[[10,43,13,2,10,0,0,0]]},{"branches":[],"count":0,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/sleep.h"],"name":"_ZN5fpcsc19sleep_for_millisecsEj","regions":[[15,53,18,2,0,0,0,0]]},{"branches":[],"count":0,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/sleep.h"],"name":"_ZN5fpcsc18sleep_for_nanosecsEj","regions":[[20,52,22,2,0,0,0,0]]},{"branches":[],"count":0,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/include/fpcsc/perf_util/feature_cmd.h"],"name":"_ZN5fpcsc15getFeatureValueEiPPcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE","regions":[[19,78,33,2,0,0,0,0]]},{"branches":[],"count":0,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/FeatureHeader.cpp"],"name":"_Z16enableCppFeaturev","regions":[[7,25,9,2,0,0,0,0]]},{"branches":[],"count":2,"filenames":["/home/mmustermann/Dokumente/VARA-root2/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/src/MultiSharedMultipleRegions/FeatureHeader.cpp"],"name":"_Z19isCppFeatureEnabledv","regions":[[11,28,13,2,2,0,0,0]]}],"totals":{"branches":{"count":20,"covered":16,"notcovered":4,"percent":80},"functions":{"count":9,"covered":4,"percent":44.444444444444443},"instantiations":{"count":9,"covered":4,"percent":44.444444444444443},"lines":{"count":78,"covered":42,"percent":53.846153846153847},"regions":{"count":33,"covered":24,"notcovered":9,"percent":72.727272727272734}}}],"type":"llvm.coverage.json.export","version":"2.0.1"} diff --git a/tests/TEST_INPUTS/results/FeaturePerfCSCollection/reproduce.sh b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/reproduce.sh new file mode 100755 index 000000000..b9218a402 --- /dev/null +++ b/tests/TEST_INPUTS/results/FeaturePerfCSCollection/reproduce.sh @@ -0,0 +1,14 @@ +#/usr/bin/env bash +set -eu + +RESULT_DIR="$1" +for zip in "$RESULT_DIR"/*config-[0,2]_success.zip; do + unzip "$zip" -d /tmp +done + +llvm-cov show --instr-profile=/tmp/coverage_report_MSMR-no-input_0.\[\'--slow\'\].profdata $VARATS_ROOT/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection/build/bin/MultiSharedMultipleRegions | sed "s|$VARATS_ROOT/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/||g" > cov_show_slow.txt +llvm-cov show --use-color --instr-profile=/tmp/coverage_report_MSMR-no-input_0.\[\'--slow\'\].profdata $VARATS_ROOT/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection/build/bin/MultiSharedMultipleRegions | sed "s|$VARATS_ROOT/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection-27f1708037/||g" > cov_show_slow_color.txt + +llvm-profdata merge /tmp/coverage_report_MSMR-no-input_0.\[\'--slow\'\].profdata /tmp/coverage_report_MSMR-no-input_0.\[\'--header\'\].profdata -o /tmp/slow_header.profdata + +llvm-cov export --instr-profile=/tmp/slow_header.profdata $VARATS_ROOT/benchbuild/results/GenerateCoverage/FeaturePerfCSCollection-perf_tests@27f1708037,0/FeaturePerfCSCollection/build/bin/MultiSharedMultipleRegions > llvm-profdata_merged_slow_and_header.json diff --git a/tests/TEST_INPUTS/results/xz/ReducedFeatureModel.xml b/tests/TEST_INPUTS/results/xz/ReducedFeatureModel.xml new file mode 100755 index 000000000..d94aa155c --- /dev/null +++ b/tests/TEST_INPUTS/results/xz/ReducedFeatureModel.xml @@ -0,0 +1,925 @@ + + + + root + + + + + + + + + + False + + + App + + + + + + xzFeatures + + + MemInfo + + False + + + Mode + + + + + + App + + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 33 + 28 + + + 33 + 35 + + + + + + Compr + --compress + + + + + Mode + + InfoTestDecompr + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 14 + 2 + + + 14 + 14 + + + + + + Filter + + + + + + Compr + + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.c + + 36 + 20 + + + 36 + 26 + + + + + + Preset + + + + + + Filter + + False + + + XtrmCPU + --extreme + + + + + Preset + + + True + + + FlushTO + + + + + + Compr + + + True + + + InfoTestDecompr + + + + + + Mode + + + Compr + + False + + + Info + --list + + + + + InfoTestDecompr + + + TestDecompr + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 17 + 2 + + + 17 + 10 + + + + + + TestDecompr + + + + + + InfoTestDecompr + + + Info + + False + + + Test + --test + + + + + TestDecompr + + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 16 + 2 + + + 16 + 10 + + + + + + Decompr + --decompress + + + + + TestDecompr + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 15 + 2 + + + 15 + 16 + + + + + + SingleStream + --single-stream + + + + + Decompr + + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 45 + 13 + + + 45 + 29 + + + + + + InOut + + + + + + App + + + False + + + Output + + + + + + InOut + + + False + + + KeepIn + --keep + + + + + Output + + + OverwriteIn + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/args.h + + 36 + 13 + + + 36 + 29 + + + + + + Stdout + --stdout + + + + + KeepIn + + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/args.h + + 34 + 13 + + + 34 + 22 + + + + + + OverwriteIn + + + + + + Output + + + KeepIn + + False + + + ForceOverwrite + --force + + + + + OverwriteIn + + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/args.h + + 35 + 13 + + + 35 + 21 + + + + + + Format + + + + + + InOut + + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 38 + 25 + + + 38 + 34 + + + + + + auto + --format=auto + + + + + Format + + + xz + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 23 + 2 + + + 23 + 12 + + + + + + xz + --format=xz + + + + + Format + + + auto + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 24 + 2 + + + 24 + 10 + + + + + + Suffix + --suffix=.suffix + + + + + InOut + + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/suffix.c + + 25 + 14 + + + 25 + 26 + + + + + + Robot + --robot + + + + + InOut + + + Compr + Decompr + Test + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/args.h + + 38 + 13 + + + 38 + 21 + + + + + + Verbosity + + + + + + App + + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/message.c + + 25 + 31 + + + 25 + 39 + + + + + + Debug + -vv + + + + + Verbosity + + + Verbose + Warning + Error + Silent + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/message.h + + 19 + 2 + + + 19 + 8 + + + + + + Verbose + -v + + + + + Verbosity + + + Debug + Warning + Error + Silent + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/message.h + + 18 + 2 + + + 18 + 10 + + + + + + Warning + + + + + + Verbosity + + + Debug + Verbose + Error + Silent + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/message.h + + 17 + 2 + + + 17 + 10 + + + + + + Error + -q + + + + + Verbosity + + + Debug + Verbose + Warning + Silent + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/message.h + + 16 + 2 + + + 16 + 8 + + + + + + Silent + -qq + + + + + Verbosity + + + Debug + Verbose + Warning + Error + + False + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/message.h + + 15 + 2 + + + 15 + 9 + + + + + + NoAdjust + --no-adjust + + + + + App + + + True + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.h + + 42 + 13 + + + 42 + 27 + + + + + + MemInfo + + + + + + xzFeatures + + + App + + False + + + xzFeatures + + + + + + root + + + False + + + AuxiliaryFeatures + + + + + + root + + + True + + + NoPreset + + + + + + AuxiliaryFeatures + + + True + + + NoFlushTO + + + + + + AuxiliaryFeatures + + + True + + + + + Preset_val + - + + + + + Preset + + + 0 + 9 + Preset_val + 3 + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/coder.c + + 46 + 17 + + + 46 + 29 + + + + + + FlushTO_val + --flush-timeout= + + + + + FlushTO + + + 0 + 9 + FlushTO_val + 9 + + + + 3d566cd519017eee1a400e7961ff14058dfaf33c + + src/xz/mytime.h + + 21 + 17 + + + 21 + 33 + + + + + + + !Stdout | TestDecompr + !AuxiliaryFeatures | NoPreset | NoFlushTO + Preset | NoPreset + !Preset | !NoPreset + FlushTO | NoFlushTO + !FlushTO | !NoFlushTO + !Test | KeepIn + !TestDecompr | Test | Decompr + + + + NoPreset * Preset_val = 6 + FlushTO_val >= FlushTO + NoFlushTO * FlushTO_val = 0 + + diff --git a/tests/data/test_llvm_coverage_report.py b/tests/data/test_llvm_coverage_report.py new file mode 100644 index 000000000..a4db3b8fd --- /dev/null +++ b/tests/data/test_llvm_coverage_report.py @@ -0,0 +1,565 @@ +import json +import shutil +import unittest +from collections import defaultdict +from pathlib import Path +from tempfile import TemporaryDirectory + +from plumbum import colors, local + +from tests.helper_utils import ( + run_in_test_environment, + UnitTestFixtures, + TEST_INPUTS_DIR, +) +from varats.data.reports.llvm_coverage_report import ( + CodeRegion, + CodeRegionKind, + RegionStart, + RegionEnd, + CoverageReport, + cov_show, + VaraInstr, + FeatureKind, +) +from varats.data.reports.llvm_coverage_report import ( + __cov_fill_buffer as cov_fill_buffer, +) +from varats.data.reports.llvm_coverage_report import ( + __get_next_line_and_column as get_next_line_and_column, +) +from varats.projects.discover_projects import initialize_projects +from varats.utils.git_util import RepositoryAtCommit, FullCommitHash + +CODE_REGION_1 = CodeRegion.from_list([9, 79, 17, 2, 4, 0, 0, 0], "main", + ["test.txt"]) + + +class TestCodeRegion(unittest.TestCase): + + def setUp(self): + super().setUp() + self.CODE_REGION_1 = CodeRegion( + RegionStart(line=9, column=79), + RegionEnd(line=17, column=2), + count=4, + kind=CodeRegionKind.CODE, + function="main", + filename="test.txt" + ) + self.CODE_REGION_2 = CodeRegion( + RegionStart(line=9, column=80), + RegionEnd(line=17, column=1), + count=0, + kind=CodeRegionKind.CODE, + function="main", + filename="test.txt" + ) + self.CODE_REGION_1.insert(self.CODE_REGION_2) + + self.root = CodeRegion.from_list([0, 0, 100, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + self.left = CodeRegion.from_list([0, 1, 50, 0, 5, 0, 0, 0], "main", + ["test.txt"]) + self.right = CodeRegion.from_list([50, 0, 100, 99, 5, 0, 0, 0], "main", + ["test.txt"]) + self.left_left = CodeRegion.from_list([30, 0, 40, 100, 3, 0, 0, 0], + "main", ["test.txt"]) + self.left_left_2 = CodeRegion.from_list([10, 0, 20, 100, 3, 0, 0, 0], + "main", ["test.txt"]) + self.right_right = CodeRegion.from_list([60, 0, 80, 100, 2, 0, 0, 0], + "main", ["test.txt"]) + + self.root.insert(self.right) + self.root.insert(self.left_left) + self.root.insert(self.left_left_2) + self.root.insert(self.left) + self.root.insert(self.right_right) + self.tree = self.root + self.tree.left = self.left + self.tree.right = self.right + + def test_eq(self): + self.assertEqual(self.CODE_REGION_1, CODE_REGION_1) + + def test_not_eq_1(self): + self.CODE_REGION_1.start.line = 1 + self.assertNotEqual(self.CODE_REGION_1, CODE_REGION_1) + + def test_not_eq_2(self): + self.CODE_REGION_1.end.line = 18 + self.assertNotEqual(self.CODE_REGION_1, CODE_REGION_1) + + def test_not_eq_3(self): + self.CODE_REGION_1.end.column = 1 + self.assertNotEqual(self.CODE_REGION_1, CODE_REGION_1) + + def test_not_eq_4(self): + self.CODE_REGION_1.kind = CodeRegionKind.GAP + self.assertNotEqual(self.CODE_REGION_1, CODE_REGION_1) + + def test_not_eq_5(self): + self.CODE_REGION_1.filename = "FooBar" + self.assertNotEqual(self.CODE_REGION_1, CODE_REGION_1) + + def test_less_1(self): + self.assertFalse(self.CODE_REGION_1 < CODE_REGION_1) + self.assertTrue(self.CODE_REGION_1 <= CODE_REGION_1) + + self.CODE_REGION_1.start.column = 78 + self.assertTrue(self.CODE_REGION_1 < CODE_REGION_1) + self.assertFalse(CODE_REGION_1 < self.CODE_REGION_1) + + def test_greater_1(self): + self.assertFalse(self.CODE_REGION_1 > CODE_REGION_1) + self.assertTrue(self.CODE_REGION_1 >= CODE_REGION_1) + + self.CODE_REGION_1.start.column = 80 + self.assertTrue(self.CODE_REGION_1 > CODE_REGION_1) + self.assertFalse(CODE_REGION_1 > self.CODE_REGION_1) + + def test_subregions(self): + self.assertFalse(self.CODE_REGION_1.is_subregion(self.CODE_REGION_1)) + + self.assertTrue(self.CODE_REGION_1.is_subregion(self.CODE_REGION_2)) + self.assertFalse(self.CODE_REGION_2.is_subregion(self.CODE_REGION_1)) + + self.CODE_REGION_1.start.line = 10 + self.CODE_REGION_2.end.column = 2 + self.assertFalse(self.CODE_REGION_1.is_subregion(self.CODE_REGION_2)) + self.assertTrue(self.CODE_REGION_2.is_subregion(self.CODE_REGION_1)) + + self.CODE_REGION_1.start.line = 9 + self.CODE_REGION_2.start.column = 79 + self.assertFalse(self.CODE_REGION_1.is_subregion(self.CODE_REGION_2)) + self.assertFalse(self.CODE_REGION_2.is_subregion(self.CODE_REGION_1)) + + self.CODE_REGION_2.end.column = 1 + self.assertTrue(self.CODE_REGION_1.is_subregion(self.CODE_REGION_2)) + self.assertFalse(self.CODE_REGION_2.is_subregion(self.CODE_REGION_1)) + + def test_is_covered(self): + self.assertTrue(self.CODE_REGION_1.is_covered()) + self.assertFalse(self.CODE_REGION_2.is_covered()) + + def test_contains(self): + self.assertTrue(self.CODE_REGION_2 in self.CODE_REGION_1) + self.assertFalse(self.CODE_REGION_1 in self.CODE_REGION_2) + + def test_parent(self): + self.assertFalse(self.CODE_REGION_1.has_parent()) + self.assertIsNone(self.CODE_REGION_1.parent) + + self.assertTrue(self.CODE_REGION_2.has_parent()) + self.assertEqual(self.CODE_REGION_2.parent, self.CODE_REGION_1) + + def test_iter_breadth_first(self): + self.assertEqual([ + self.root, self.left, self.right, self.left_left_2, self.left_left, + self.right_right + ], list(self.root.iter_breadth_first())) + + def test_iter_preorder(self): + self.assertEqual([ + self.root, + self.left, + self.left_left_2, + self.left_left, + self.right, + self.right_right, + ], list(self.root.iter_preorder())) + + def test_iter_postorder(self): + self.assertEqual([ + self.left_left_2, self.left_left, self.left, self.right_right, + self.right, self.root + ], list(self.root.iter_postorder())) + + def test_insert(self): + self.assertTrue(self.root.is_subregion(self.left)) + self.assertTrue(self.root.is_subregion(self.right)) + self.assertTrue(self.root.is_subregion(self.left_left)) + self.assertTrue(self.root.is_subregion(self.right_right)) + self.assertTrue(self.left.is_subregion(self.left_left)) + self.assertTrue(self.left.is_subregion(self.left_left_2)) + self.assertTrue(self.right.is_subregion(self.right_right)) + + self.assertFalse(self.right.is_subregion(self.left)) + self.assertFalse(self.right.is_subregion(self.left_left)) + self.assertFalse(self.right.is_subregion(self.left_left_2)) + self.assertFalse(self.left.is_subregion(self.right)) + self.assertFalse(self.left.is_subregion(self.right_right)) + self.assertFalse(self.left.is_subregion(self.root)) + self.assertFalse(self.right.is_subregion(self.root)) + + self.assertTrue(self.left.parent is self.root) + self.assertTrue(self.right.parent is self.root) + self.assertTrue(self.left_left.parent is self.left) + self.assertTrue(self.left_left_2.parent is self.left) + self.assertTrue(self.right_right.parent is self.right) + + def test_insert_2(self): + + root = CodeRegion.from_list([0, 0, 100, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + left = CodeRegion.from_list([30, 26, 30, 44, 0, 0, 0, 0], "main", + ["test.txt"]) + left_child = CodeRegion.from_list([30, 26, 30, 38, 0, 0, 0, 0], "main", + ["test.txt"]) + + root.insert(left) + root.insert(left_child) + self.assertIs(left.childs[0], left_child) + + def test_insert_3(self): + + root = CodeRegion.from_list([0, 0, 100, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + left = CodeRegion.from_list([0, 1, 50, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + right = CodeRegion.from_list([50, 0, 100, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + root.insert(right) + with self.assertRaises(ValueError): + root.insert(left) + + def test_overlap(self): + + root = CodeRegion.from_list([0, 0, 100, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + left = CodeRegion.from_list([0, 1, 50, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + right = CodeRegion.from_list([50, 0, 100, 100, 5, 0, 0, 0], "main", + ["test.txt"]) + + self.assertFalse(left.overlaps(root)) + self.assertFalse(right.overlaps(root)) + self.assertFalse(root.overlaps(left)) + self.assertFalse(root.overlaps(right)) + self.assertTrue(left.overlaps(right)) + self.assertTrue(right.overlaps(left)) + + def test_find_region(self): + self.assertEqual( + self.root.find_code_region(line=0, column=0), self.root + ) + self.assertEqual( + self.root.find_code_region(line=0, column=1), self.left + ) + self.assertEqual( + self.root.find_code_region(line=49, column=100), self.left + ) + self.assertEqual( + self.root.find_code_region(line=50, column=0), self.right + ) + self.assertEqual( + self.root.find_code_region(line=100, column=99), self.root + ) + self.assertEqual(self.root.find_code_region(line=100, column=100), None) + self.assertEqual( + self.root.find_code_region(line=10, column=0), self.left_left_2 + ) + + def test_feature_threshold(self): + self.root.vara_instrs.append( + VaraInstr( + FeatureKind.FEATURE_REGION, Path(""), 1, 1, ["A"], 42, "test" + ) + ) + + self.assertEqual(self.root.features_threshold(["A"]), 1.0) + self.assertEqual(self.root.features_threshold(["B"]), 0.0) + + @unittest.skipIf( + shutil.which("llvm-profdata") is None, "llvm-profdata not in PATH" + ) + def test_coverage_json_parsing(self): + """Parse the json export obtained from the + https://clang.llvm.org/docs/SourceBasedCodeCoverage.html code + example.""" + + with TemporaryDirectory() as tmpdir: + tmp_dir = Path(tmpdir) + json_file = tmp_dir / "coverage.json" + # create foo.cc file + with open(tmp_dir / "foo.cc", "w") as foo: + foo.write( + """#define BAR(x) ((x) || (x)) +template void foo(T x) { + for (unsigned I = 0; I < 10; ++I) { BAR(I); } +} +int main() { + foo(0); + foo(0); + return 0; +} +""" + ) + # generate json export + with local.cwd(tmpdir): + local["clang++"]( + "-O0", + "-g", + "-fprofile-instr-generate", + "-fcoverage-mapping", + "foo.cc", + "-o", + "foo", + ) + local["chmod"]("ugo+x", "foo") + run = local["./foo"] + run.with_env(LLVM_PROFILE_FILE="foo.profraw")() + local["llvm-profdata"]( + "merge", "foo.profraw", "-o", "foo.profdata" + ) + export = local["llvm-cov"] + export = export["export", "./foo", + "-instr-profile=foo.profdata"] + (export > str(json_file))() + + # Add absolute path to json + with open(json_file) as file: + coverage = json.load(file) + + coverage["absolute_path"] = str(tmp_dir.resolve()) + + with open(json_file, "w") as file: + json.dump(coverage, file) + + report = CoverageReport.from_json(json_file, base_dir=tmp_dir) + code_region = report.tree["foo.cc"] + self.assertEqual(code_region.total_count, 0) + self.assertEqual(code_region.childs[0].total_count, 20) + self.assertEqual(code_region.childs[0].childs[0].total_count, 20) + self.assertEqual(code_region.childs[0].childs[1].total_count, 2) + self.assertEqual(code_region.childs[1].total_count, 2) + self.assertEqual(code_region.childs[1].childs[0].total_count, 22) + self.assertEqual(code_region.childs[1].childs[1].total_count, 20) + self.assertEqual(code_region.childs[1].childs[2].total_count, 20) + self.assertEqual(code_region.childs[1].childs[3].total_count, 20) + self.assertEqual( + code_region.childs[1].childs[3].childs[0].total_count, 20 + ) + self.assertEqual(code_region.childs[2].total_count, 1) + + @run_in_test_environment( + UnitTestFixtures.PAPER_CONFIGS, UnitTestFixtures.RESULT_FILES + ) + def test_cov_show(self): + self.maxDiff = None + initialize_projects() + commit_hash = FullCommitHash("27f17080376e409860405c40744887d81d6b3f34") + with RepositoryAtCommit( + "FeaturePerfCSCollection", commit_hash.to_short_commit_hash() + ) as base_dir: + + with TemporaryDirectory() as tmpdir: + shutil.unpack_archive( + Path(TEST_INPUTS_DIR) / "results" / + "FeaturePerfCSCollection" / + "GenCov-CovR-FeaturePerfCSCollection-MultiSharedMultipleRegions-27f1708037" + / + "31848b67-cf0a-45aa-baea-f40ed61f18b2_config-1_success.zip", + tmpdir + ) + + for file in Path(tmpdir).iterdir(): + if file.suffix == ".json": + json_file = file + + assert json_file + + slow_report = CoverageReport.from_json(json_file, base_dir) + + with open( + Path(TEST_INPUTS_DIR) / "results" / "FeaturePerfCSCollection" / + "cov_show_slow.txt" + ) as tmp: + cov_show_slow_txt = tmp.read() + + with open( + Path(TEST_INPUTS_DIR) / "results" / "FeaturePerfCSCollection" / + "cov_show_slow_color.txt", + ) as tmp: + cov_show_slow_color_txt = tmp.read() + + self.assertEqual(cov_show_slow_txt, cov_show(slow_report, base_dir)) + color_state = colors.use_color + try: + colors.use_color = True + output = cov_show(slow_report, base_dir) + finally: + colors.use_color = color_state + # Replace different color codes. + output = output.replace("\x1b[36m", "\x1b[0;36m").replace( + "\x1b[39m", "\x1b[0m" + ).replace("\x1b[0;41m", + "\x1b[41m").replace("\x1b[49m", "\x1b[0m" + ).replace("\x1b[41m\x1b[0m", "") + + # We don't have magenta colored counts for conditions + cov_show_slow_color_txt = cov_show_slow_color_txt.replace( + "\x1b[0;35m7\x1b[0m", "7" + ).replace("\x1b[0;35m4\x1b[0m", + "4").replace("\x1b[0;35m1\x1b[0m", + "1").replace("\x1b[0;41m", "\x1b[41m" + ).replace("\x1b[41m\x1b[0m", "") + self.assertEqual(cov_show_slow_color_txt, output) + + @run_in_test_environment( + UnitTestFixtures.PAPER_CONFIGS, UnitTestFixtures.RESULT_FILES + ) + def test_vara_feature_export(self): + initialize_projects() + commit_hash = FullCommitHash("4300ea495e7f013f68e785fdde5c4ead81297999") + with RepositoryAtCommit( + "FeaturePerfCSCollection", commit_hash.to_short_commit_hash() + ) as base_dir: + + report = CoverageReport.from_report( + Path(TEST_INPUTS_DIR) / "results" / "FeaturePerfCSCollection" / + "GenCov-CovR-FeaturePerfCSCollection-SimpleFeatureInteraction-4300ea495e" + / "7e6bcdd3-5ea4-4e29-a47d-0a9d155f17b3_config-0_success.zip", + None, base_dir + ) + report.parse_instrs() + + code_region = report.tree["src/SimpleFeatureInteraction/SFImain.cpp" + ] + for region in code_region.iter_preorder(): + func = region.function + if func == "_Z11sendPackage11PackageData": + if region.start.line == 51 and region.start.column == 36: + self.assertEqual(region.vara_features(), set()) + elif region.start.line == 52 and region.start.column == 7: + self.assertEqual(region.vara_features(), set()) + elif region.start.line == 52 and region.start.column == 22: + self.assertEqual(region.vara_instrs, []) + elif region.start.line == 52 and region.start.column == 23: + self.assertEqual( + region.vara_features(), {"Compression"} + ) + self.assertEqual( + region.features_threshold(["Compression"]), 1.0 + ) + elif region.start.line == 55 and region.start.column == 7: + self.assertEqual(region.vara_features(), set()) + elif region.start.line == 55 and region.start.column == 21: + self.assertEqual(region.vara_instrs, []) + elif region.start.line == 55 and region.start.column == 22: + self.assertEqual(region.vara_features(), {"Encryption"}) + self.assertEqual( + region.features_threshold(["Encryption"]), 1.0 + ) + elif region.start.line == 56 and region.start.column == 9: + self.assertEqual(region.vara_features(), {"Encryption"}) + self.assertEqual( + region.features_threshold(["Encryption"]), 1.0 + ) + elif region.start.line == 56 and region.start.column == 28: + self.assertEqual(region.vara_instrs, []) + elif region.start.line == 56 and region.start.column == 29: + self.assertEqual( + region.vara_features(), + {"Encryption", "Compression"} + ) + self.assertEqual( + region.features_threshold(["Encryption"]), 1.0 + ) + self.assertEqual( + region.features_threshold(["Compression"]), 1.0 + ) + self.assertEqual( + region.features_threshold([ + "Encryption", "Compression" + ]), 1.0 + ) + + elif region.start.line == 59 and region.start.column == 1: + self.assertEqual(region.vara_instrs, []) + elif region.start.line == 62 and region.start.column == 1: + self.assertEqual(region.vara_instrs, []) + elif region.start.line == 66 and region.start.column == 1: + self.assertEqual(region.vara_instrs, []) + else: + self.fail() + else: + self.assertTrue( + all( + map( + lambda instr: instr.kind == FeatureKind. + NORMAL_REGION, region.vara_instrs + ) + ) + ) + + def test_cov_fill_buffer(self): + lines = {1: "Hello World!\n", 2: "Goodbye;\n"} + buffer = defaultdict(list) + + buffer = cov_fill_buffer( + end_line=1, + end_column=6, + count=0, + cov_features=None, + cov_features_set=None, + vara_features=None, + lines=lines, + buffer=buffer + ) + self.assertEqual(buffer, {1: [(0, "Hello", None, None, None)]}) + self.assertEqual((1, 6), get_next_line_and_column(lines, buffer)) + buffer = cov_fill_buffer( + end_line=1, + end_column=14, + count=1, + cov_features=None, + cov_features_set=None, + vara_features=None, + lines=lines, + buffer=buffer + ) + self.assertEqual( + buffer, { + 1: [(0, "Hello", None, None, None), + (1, " World!\n", None, None, None)] + } + ) + self.assertEqual((2, 1), get_next_line_and_column(lines, buffer)) + buffer = cov_fill_buffer( + end_line=2, + end_column=10, + count=42, + cov_features=None, + cov_features_set=None, + vara_features=None, + lines=lines, + buffer=buffer + ) + self.assertEqual( + buffer, { + 1: [(0, "Hello", None, None, None), + (1, " World!\n", None, None, None)], + 2: [(42, "Goodbye;\n", None, None, None)] + } + ) + self.assertEqual((2, 9), get_next_line_and_column(lines, buffer)) + + buffer = defaultdict(list) + buffer = cov_fill_buffer( + end_line=2, + end_column=10, + count=None, + cov_features=["Foo"], + cov_features_set={"Foo"}, + vara_features={"Bar"}, + lines=lines, + buffer=buffer + ) + self.assertEqual( + buffer, { + 1: [(None, "Hello World!\n", ["Foo"], {"Foo"}, {"Bar"})], + 2: [(None, "Goodbye;\n", ["Foo"], {"Foo"}, {"Bar"})] + } + ) + self.assertEqual((2, 9), get_next_line_and_column(lines, buffer)) diff --git a/tests/experiment/test_workload_util.py b/tests/experiment/test_workload_util.py index c1d5950f5..b3facb880 100644 --- a/tests/experiment/test_workload_util.py +++ b/tests/experiment/test_workload_util.py @@ -109,7 +109,7 @@ def test_workload_commands_requires_patch(self) -> None: ShortCommitHash("7930350628") )[0] workloads = wu.workload_commands(project, binary, []) - self.assertEqual(8, len(workloads)) + self.assertEqual(10, len(workloads)) @run_in_test_environment(UnitTestFixtures.PAPER_CONFIGS) def test_workload_commands_requires_patch2(self) -> None: @@ -124,7 +124,7 @@ def test_workload_commands_requires_patch2(self) -> None: binary = SynthIPTemplate \ .binaries_for_revision(ShortCommitHash("7930350628"))[0] workloads = wu.workload_commands(project, binary, []) - self.assertEqual(8, len(workloads)) + self.assertEqual(10, len(workloads)) class TestWorkloadFilenames(unittest.TestCase): diff --git a/tests/plots/test_llvm_coverage_plot.py b/tests/plots/test_llvm_coverage_plot.py new file mode 100644 index 000000000..6a8e379df --- /dev/null +++ b/tests/plots/test_llvm_coverage_plot.py @@ -0,0 +1,1018 @@ +import typing as tp +import unittest +from pathlib import Path +from unittest.mock import create_autospec + +from tests.helper_utils import ( + run_in_test_environment, + UnitTestFixtures, + TEST_INPUTS_DIR, +) +from varats.data.reports.llvm_coverage_report import ( + CodeRegion, + CodeRegionKind, + RegionEnd, + RegionStart, + VaraInstr, + FeatureKind, + CoverageReport, + cov_show_segment_buffer, +) +from varats.experiments.vara.llvm_coverage_experiment import ( + GenerateCoverageExperiment, +) +from varats.paper.paper_config import get_loaded_paper_config, load_paper_config +from varats.paper_mgmt.case_study import get_case_study_file_name_filter +from varats.plot.plots import PlotConfig +from varats.projects.discover_projects import initialize_projects +from varats.revision.revisions import get_processed_revisions_files +from varats.utils.git_util import RepositoryAtCommit, FullCommitHash +from varats.utils.settings import save_config, vara_cfg +from varats.varats.data.reports.llvm_coverage_report import ( + func_to_str, + create_bdd, + minimize, + _minimize_context_check, +) +from varats.varats.plots.llvm_coverage_plot import ( + CoveragePlotGenerator, + CoverageReports, + coverage_found_features, + ConfusionMatrix, + _matrix_analyze_code_region, + _extract_feature_model_formula, +) +from varats.varats.plots.llvm_coverage_plot import ( + vara_found_features as _vara_found_features, +) + +CODE_REGION_1 = CodeRegion.from_list([9, 79, 17, 2, 4, 0, 0, 0], "main", + ["test.txt"]) + + +def _confusion_matrix( + feature: tp.Optional[str], tree: CodeRegion, + feature_name_map: tp.Dict[str, str], threshold: float, file: str +) -> ConfusionMatrix: + coverage_feature_regions = [] + coverage_normal_regions = [] + vara_feature_regions = [] + vara_normal_regions = [] + + _matrix_analyze_code_region( + feature, tree, feature_name_map, None, threshold, file, + coverage_feature_regions, coverage_normal_regions, vara_feature_regions, + vara_normal_regions + ) + + return ConfusionMatrix( + actual_positive_values=coverage_feature_regions, + actual_negative_values=coverage_normal_regions, + predicted_positive_values=vara_feature_regions, + predicted_negative_values=vara_normal_regions + ) + + +def setup_reports(config_name: str, base_dir: str) -> CoverageReports: + # setup config + vara_cfg()['paper_config']['current_config'] = config_name + load_paper_config() + save_config() + + plot_generator = CoveragePlotGenerator( + PlotConfig.from_kwargs(view=False), + experiment_type=[GenerateCoverageExperiment], + case_study=get_loaded_paper_config(). + get_case_studies("FeaturePerfCSCollection") + ) + plots = plot_generator.generate() + assert len(plots) == 1 + coverage_plot = plots[0] + + case_studies = get_loaded_paper_config().get_all_case_studies() + assert len(case_studies) == 1 + case_study = case_studies[0] + + project_name = case_study.project_name + + report_files = get_processed_revisions_files( + project_name, + GenerateCoverageExperiment, + CoverageReport, + get_case_study_file_name_filter(case_study), + only_newest=False, + ) + + binary_reports_map = coverage_plot._get_binary_reports_map( + case_study, report_files, base_dir + ) + assert binary_reports_map + + reports = binary_reports_map[next(iter(binary_reports_map))] + assert len(reports) == 4 + + return CoverageReports(reports) + + +class TestCoveragePlot(unittest.TestCase): + + def test_coverage_found_features(self): + region = create_autospec(CodeRegion) + region.coverage_features_set = lambda _: set(["A", "B"]) + + self.assertTrue(coverage_found_features(set(["A", "B"]), region, None)) + self.assertFalse( + coverage_found_features(set(["A", "B", "C"]), region, None) + ) + + self.assertTrue(coverage_found_features(set(["A"]), region, None)) + self.assertFalse(coverage_found_features(set(), region, None)) + + def test_vara_found_features(self): + vara_found_features = lambda feature, region, threshold: _vara_found_features( + feature, region, threshold, { + "a": {"A"}, + "b": {"B"}, + "c": {"C"}, + "": {""} + } + ) + + region = CodeRegion(1, 1, 1, CodeRegionKind.CODE, "test", "test.txt") + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "C"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + self.assertTrue(vara_found_features(set(["a", "b"]), region, 0.0)) + self.assertTrue(vara_found_features(set(["a", "b"]), region, 0.5)) + self.assertFalse(vara_found_features(set(["a", "b"]), region, 1.0)) + + self.assertFalse(vara_found_features(set(["a", "b", "c"]), region, 0.0)) + + self.assertFalse(vara_found_features(set(["b"]), region, 1.0)) + self.assertTrue(vara_found_features(set(["b"]), region, 0.5)) + self.assertTrue(vara_found_features(set(["b"]), region, 0)) + + self.assertFalse(vara_found_features(set(["c"]), region, 1.0)) + self.assertTrue(vara_found_features(set(["c"]), region, 0.5)) + self.assertTrue(vara_found_features(set(["c"]), region, 0)) + + self.assertTrue(vara_found_features(set(["a"]), region, 1.0)) + self.assertFalse(vara_found_features(set([""]), region, 0.0)) + self.assertFalse(vara_found_features(set(), region, 0.0)) + + with self.assertRaises(ValueError): + vara_found_features(set(), region, threshold=100) + + with self.assertRaises(KeyError): + self.assertFalse(vara_found_features(set(["d"]), region, 0.0)) + + def test_confusion_matrix_single_feature(self): + + def confusion_matrix( + feature: tp.Optional[str], + tree: CodeRegion, + threshold: float, + ) -> ConfusionMatrix: + return _confusion_matrix( + feature, tree, { + "A": {"A"}, + "B": {"B"}, + "C": {"C"}, + "": {""} + }, threshold, "test" + ) + + region = CodeRegion( + RegionStart(1, 1), RegionEnd(1, 1), 1, CodeRegionKind.CODE, "test", + "test.txt" + ) + region.coverage_features_set = lambda _: {"A", "B"} + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "C"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + self.assertEqual(confusion_matrix("A", region, 1.0).TP, 1) + self.assertEqual(confusion_matrix("A", region, 0.0).TP, 1) + + self.assertEqual(confusion_matrix("B", region, 1.0).FN, 1) + self.assertEqual(confusion_matrix("B", region, 0.5).TP, 1) + + self.assertEqual(confusion_matrix("C", region, 1.0).TN, 1) + self.assertEqual(confusion_matrix("C", region, 0.5).FP, 1) + + self.assertEqual(confusion_matrix("", region, 1.0).TN, 1) + self.assertEqual(confusion_matrix("", region, 0.0).TN, 1) + + def test_confusion_matrix_all_both(self): + + def confusion_matrix( + tree: CodeRegion, + threshold: float, + ) -> ConfusionMatrix: + return _confusion_matrix( + "__both__", tree, { + "a": {"A"}, + "b": {"B"}, + "A": {"a"}, + "B": {"b"}, + }, threshold, "test" + ) + + region = CodeRegion( + RegionStart(1, 1), RegionEnd(1, 1), 1, CodeRegionKind.CODE, "test", + "test.txt" + ) + region.coverage_features_set = lambda _: {"a", "b"} + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + # Coverage: A,B == VaRA: A,B + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + # Coverage: A,B == VaRA: A,(B) + + self.assertEqual(confusion_matrix(region, 1.0).FN, 1) + self.assertEqual(confusion_matrix(region, 0.5).TP, 1) + + region.coverage_features_set = lambda _: {"a"} + + # Coverage: A == VaRA: A,(B) + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + self.assertEqual(confusion_matrix(region, 0.5).FP, 1) + self.assertEqual(confusion_matrix(region, 0.0).FP, 1) + + instr_3 = VaraInstr( + FeatureKind.NORMAL_REGION, "", 1, 1, [], 42, "test_instr" + ) + region.vara_instrs = [instr_3] + + # Coverage: A == VaRA: + + self.assertEqual(confusion_matrix(region, 1.0).FN, 1) + self.assertEqual(confusion_matrix(region, 0.0).FN, 1) + + region.vara_instrs = [instr_2, instr_3] + region.coverage_features_set = lambda _: set() + + # Coverage: == VaRA: (A) + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).FP, 1) + + region.vara_instrs = [] + + # Coverage: == VaRA: + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).TN, 1) + + def test_confusion_matrix_all_coverage(self): + + def confusion_matrix( + tree: CodeRegion, + threshold: float, + ) -> ConfusionMatrix: + return _confusion_matrix( + "__coverage__", tree, { + "a": {"A"}, + "b": {"B"}, + "A": {"a"}, + "B": {"b"}, + }, threshold, "test" + ) + + region = CodeRegion( + RegionStart(1, 1), RegionEnd(1, 1), 1, CodeRegionKind.CODE, "test", + "test.txt" + ) + region.coverage_features_set = lambda _: {"a", "b"} + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + # Coverage: A,B == VaRA: A,B + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + # Coverage: A,B == VaRA: A,(B) + + self.assertEqual(confusion_matrix(region, 1.0).FN, 1) + self.assertEqual(confusion_matrix(region, 0.5).TP, 1) + + region.coverage_features_set = lambda _: {"a"} + + # Coverage: A == VaRA: A,(B) + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + self.assertEqual(confusion_matrix(region, 0.5).TP, 1) + self.assertEqual(confusion_matrix(region, 0.0).TP, 1) + + instr_3 = VaraInstr( + FeatureKind.NORMAL_REGION, "", 1, 1, [], 42, "test_instr" + ) + region.vara_instrs = [instr_3] + + # Coverage: A == VaRA: + + self.assertEqual(confusion_matrix(region, 1.0).FN, 1) + self.assertEqual(confusion_matrix(region, 0.0).FN, 1) + + region.vara_instrs = [instr_2, instr_3] + region.coverage_features_set = lambda _: set() + + # Coverage: == VaRA: (A) + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).TN, 1) + + region.vara_instrs = [] + + # Coverage: == VaRA: + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).TN, 1) + + def test_confusion_matrix_all_vara(self): + + def confusion_matrix( + tree: CodeRegion, + threshold: float, + ) -> ConfusionMatrix: + return _confusion_matrix( + "__vara__", tree, { + "a": {"A"}, + "b": {"B"}, + "A": {"a"}, + "B": {"b"}, + }, threshold, "test" + ) + + region = CodeRegion( + RegionStart(1, 1), RegionEnd(1, 1), 1, CodeRegionKind.CODE, "test", + "test.txt" + ) + region.coverage_features_set = lambda _: {"a", "b"} + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + # Coverage: A,B == VaRA: A,B + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + + instr_1 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A", "B"], 42, "test_instr" + ) + instr_2 = VaraInstr( + FeatureKind.FEATURE_REGION, "", 1, 1, ["A"], 42, "test_instr" + ) + + region.vara_instrs = [instr_1, instr_2] + + # Coverage: A,B == VaRA: A,(B) + + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + self.assertEqual(confusion_matrix(region, 0.5).TP, 1) + + region.coverage_features_set = lambda _: {"a"} + + # Coverage: A == VaRA: A,(B) + self.assertEqual(confusion_matrix(region, 1.0).TP, 1) + self.assertEqual(confusion_matrix(region, 0.5).FP, 1) + self.assertEqual(confusion_matrix(region, 0.0).FP, 1) + + instr_3 = VaraInstr( + FeatureKind.NORMAL_REGION, "", 1, 1, [], 42, "test_instr" + ) + region.vara_instrs = [instr_3] + + # Coverage: A == VaRA: + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).TN, 1) + + region.vara_instrs = [instr_2, instr_3] + region.coverage_features_set = lambda _: set() + + # Coverage: == VaRA: (A) + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).FP, 1) + + region.vara_instrs = [] + + # Coverage: == VaRA: + + self.assertEqual(confusion_matrix(region, 1.0).TN, 1) + self.assertEqual(confusion_matrix(region, 0.0).TN, 1) + + @run_in_test_environment( + UnitTestFixtures.PAPER_CONFIGS, UnitTestFixtures.RESULT_FILES + ) + def test_feature_report_interactions(self): + initialize_projects() + commit_hash = FullCommitHash("4300ea495e7f013f68e785fdde5c4ead81297999") + with RepositoryAtCommit( + "FeaturePerfCSCollection", commit_hash.to_short_commit_hash() + ) as base_dir: + reports = setup_reports( + "test_coverage_SimpleFeatureInteraction", base_dir + ) + report = reports.feature_report( + ignore_parsing_code=False, + ignore_feature_dependent_functions=False + ) + + code_region = report.tree["src/SimpleFeatureInteraction/SFImain.cpp" + ] + # Only feature interactions should be annotated + for region in code_region.iter_preorder(): + func = region.function + print(func) + if func == "_Z10addPadding11PackageData": + self.assertEqual( + region.coverage_features(), "+(enc & ~compress)" + ) + elif func == "_Z8compress11PackageData": + self.assertEqual(region.coverage_features(), "+compress") + elif func == "_Z7encrypt11PackageData": + self.assertEqual(region.coverage_features(), "+enc") + elif func == "_Z18loadConfigFromArgviPPc": + pass + elif func == "_Z11sendPackage11PackageData": + if region.kind == CodeRegionKind.GAP: + # GAP Regions. Are covered, but don't have instructions associated. + # Therefore we do not annotate presence conditions to them. + self.assertEqual(len(region.vara_instrs), 0) + self.assertEqual( + region.presence_condition, + region.presence_condition.bdd.false + ) + + if region.start.line == 56 and region.start.column == 29: + self.assertEqual( + region.coverage_features(), "+(enc & ~compress)" + ) + else: + if region.coverage_features() != "": + pass + self.assertIn(region.coverage_features(), ["", "+True"]) + + @run_in_test_environment( + UnitTestFixtures.PAPER_CONFIGS, UnitTestFixtures.RESULT_FILES + ) + def test_line_feature_plot(self): + self.maxDiff = None + initialize_projects() + commit_hash = FullCommitHash("27f17080376e409860405c40744887d81d6b3f34") + with RepositoryAtCommit( + "FeaturePerfCSCollection", commit_hash.to_short_commit_hash() + ) as base_dir: + reports = setup_reports( + "test_coverage_MultiSharedMultipleRegions", base_dir + ) + #feature_model = expr( + # "(slow & header) | (~slow & header) | (slow & ~header) | (~slow & ~header)" + #) + #reports._feature_model = expr(True) + #self.assertEqual(reports.feature_model(), feature_model) + + self.assertEqual( + """include/fpcsc/perf_util/feature_cmd.h: + 1|#ifndef FPCSC_PERFUTIL_FEATURECMD_H | + 2|#define FPCSC_PERFUTIL_FEATURECMD_H | + 3| | + 4|#include | + 5|#include | + 6|#include | + 7| | + 8|namespace fpcsc { | + 9|inline bool isFeatureEnabled(int argc, char *argv[], std::string FeatureName) { |+True + 10| for (int CurrentArg = 1; CurrentArg < argc; ++CurrentArg) { |+(header | slow), +True + 11| if (argv[CurrentArg] == FeatureName) { |+(header | slow) + 12| return true; |+(header | slow) + 13| } |+(header | slow) + 14| } |+(header | slow) + 15| | + 16| return false; |+True + 17|} |+True + 18| | + 19|inline long getFeatureValue(int argc, char *argv[], std::string FeatureName) { | + 20| int CurrentArg = 1; | + 21| for (; CurrentArg < argc; ++CurrentArg) { | + 22| if (argv[CurrentArg] == FeatureName) { | + 23| ++CurrentArg; | + 24| break; | + 25| } | + 26| } | + 27| | + 28| if (CurrentArg >= argc) { | + 29| return 0; | + 30| } | + 31| | + 32| return strtol(argv[CurrentArg], NULL, 0); | + 33|} | + 34| | + 35|} // namespace fpcsc | + 36| | + 37|#endif // FPCSC_PERFUTIL_FEATURECMD_H | + +include/fpcsc/perf_util/sleep.h: + 1|#ifndef FPCSC_PERFUTIL_SLEEP_H | + 2|#define FPCSC_PERFUTIL_SLEEP_H | + 3| | + 4|#include | + 5|#include | + 6|#include | + 7| | + 8|namespace fpcsc { | + 9| | + 10|inline void sleep_for_secs(unsigned Secs) { |+True + 11| std::cout << "Sleeping for " << Secs << " seconds" << std::endl; |+True + 12| std::this_thread::sleep_for(std::chrono::seconds(Secs)); |+True + 13|} |+True + 14| | + 15|inline void sleep_for_millisecs(unsigned Millisecs) { | + 16| std::cout << "Sleeping for " << Millisecs << " milliseconds" << std::endl; | + 17| std::this_thread::sleep_for(std::chrono::milliseconds(Millisecs)); | + 18|} | + 19| | + 20|inline void sleep_for_nanosecs(unsigned millisecs) { | + 21| std::this_thread::sleep_for(std::chrono::nanoseconds(millisecs)); | + 22|} | + 23| | + 24|} // namespace fpcsc | + 25| | + 26|#endif // FPCSC_PERFUTIL_SLEEP_H | + +src/MultiSharedMultipleRegions/FeatureHeader.cpp: + 1|#include "FeatureHeader.h" | + 2| | + 3|bool ExternFeature = false; | + 4| | + 5|static bool CppFeature = false; | + 6| | + 7|void enableCppFeature() { | + 8| CppFeature = true; | + 9|} | + 10| | + 11|bool isCppFeatureEnabled() { |+True + 12| return CppFeature; |+True + 13|} |+True + +src/MultiSharedMultipleRegions/FeatureHeader.h: + 1|#ifndef FEATURE_HEADER_H | + 2|#define FEATURE_HEADER_H | + 3| | + 4|extern bool ExternFeature; | + 5| | + 6|static inline bool HeaderFeature = false; | + 7| | + 8|inline void enableExternFeature() { | + 9| ExternFeature = true; | + 10|} | + 11| | + 12|void enableCppFeature(); | + 13|bool isCppFeatureEnabled(); | + 14| | + 15|#endif // FEATURE_HEADER_H | + +src/MultiSharedMultipleRegions/MSMRmain.cpp: + 1|#include "FeatureHeader.h" | + 2| | + 3|#include "fpcsc/perf_util/sleep.h" | + 4|#include "fpcsc/perf_util/feature_cmd.h" | + 5| | + 6|#include | + 7| | + 8|int main(int argc, char *argv[] ) { |+True + 9| bool Slow = false; |+True + 10| | + 11| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--slow"))) { |+True, +slow + 12| Slow = true; |+slow + 13| } |+slow + 14| | + 15| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--header"))) { |+True, +header + 16| HeaderFeature = true; |+header + 17| } |+header + 18| | + 19| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--extern"))) { |+True + 20| enableExternFeature(); | + 21| } | + 22| | + 23| if (fpcsc::isFeatureEnabled(argc, argv, std::string("--cpp"))) { |+True + 24| enableCppFeature(); | + 25| } | + 26| | + 27| // Multiple regions related to --slow that take different amounts of time. | + 28| | + 29| if (Slow) { |+True, +slow + 30| fpcsc::sleep_for_secs(5); |+slow + 31| } else { |+slow, +~slow + 32| fpcsc::sleep_for_secs(3); |+~slow + 33| } |+~slow + 34| | + 35| fpcsc::sleep_for_secs(2); // General waiting time |+True + 36| | + 37| if (HeaderFeature) { |+True, +header + 38| fpcsc::sleep_for_secs(3); |+header + 39| } else { |+header, +~header + 40| fpcsc::sleep_for_secs(1); |+~header + 41| } |+~header + 42| | + 43| fpcsc::sleep_for_secs(2); // General waiting time |+True + 44| | + 45| if (ExternFeature) { |+True + 46| fpcsc::sleep_for_secs(6); | + 47| } | + 48| | + 49| fpcsc::sleep_for_secs(2); // General waiting time |+True + 50| | + 51| if (isCppFeatureEnabled()) { |+True + 52| fpcsc::sleep_for_secs(3); | + 53| } | + 54| | + 55| return 0; |+True + 56|} |+True + +""", + cov_show_segment_buffer( + reports.feature_segments( + base_dir, + ignore_parsing_code=False, + ignore_feature_dependent_functions=False + ), + show_counts=False, + show_coverage_features=True + ) + ) + + @run_in_test_environment( + UnitTestFixtures.PAPER_CONFIGS, UnitTestFixtures.RESULT_FILES + ) + def test_confusion_matrices(self): + initialize_projects() + commit_hash = FullCommitHash("4300ea495e7f013f68e785fdde5c4ead81297999") + with RepositoryAtCommit( + "FeaturePerfCSCollection", commit_hash.to_short_commit_hash() + ) as base_dir: + reports = setup_reports( + "test_coverage_SimpleFeatureInteraction", base_dir + ) + feature_option_mapping = reports.feature_option_mapping( + additional_info={ + "root": "", + "Compression": "--compress", + "Encryption": "--enc", + "Slow": "--slow" + } + ) + result_1 = reports.confusion_matrices( + feature_option_mapping, + threshold=1.0, + ignore_parsing_code=False, + ignore_feature_dependent_functions=False + ) + result_0 = reports.confusion_matrices( + feature_option_mapping, + threshold=0.0, + ignore_parsing_code=False, + ignore_feature_dependent_functions=False + ) + + for result in [result_1, result_0]: + print(result) + enc = result["enc"] + self.assertEqual(enc.TP, 3) + self.assertEqual(enc.TN, 39) + self.assertEqual(enc.FP, 0) + self.assertEqual(enc.FN, 8) + + compress = result["compress"] + self.assertEqual(compress.TP, 2) + self.assertEqual(compress.TN, 40) + self.assertEqual(compress.FP, 0) + self.assertEqual(compress.FN, 8) + + all = result["all-both"] + self.assertEqual(all.TP, 4) + self.assertEqual(all.TN, 36) + self.assertEqual(all.FP, 0) + self.assertEqual(all.FN, 10) + + def test_func_to_str(self): + bdd = create_bdd() + self.assertEqual(func_to_str(bdd.true), "True") + self.assertEqual(func_to_str(bdd.false), "False") + bdd.declare("A") + self.assertEqual(func_to_str(bdd.add_expr("A")), "A") + self.assertEqual(func_to_str(bdd.add_expr("~A")), "~A") + bdd.declare("compress", "enc") + expr = bdd.add_expr( + "(~compress & enc) | (compress & ~enc) | (compress & enc)" + ) + self.assertEqual(func_to_str(expr), "(compress | enc)") + + def test_presence_condition_simplification_1(self): + bdd = create_bdd() + bdd.declare("compress", "enc") + + feature_model = bdd.add_expr( + "(~compress & enc) | (compress & ~enc) | (compress & enc)" + ) + expression = bdd.add_expr( + "(~compress & enc) | (compress & ~enc) | (compress & enc)" + ) + self.assertEqual(minimize(expression, feature_model), bdd.true) + expression = bdd.add_expr("(compress & enc)") + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "(compress & enc)" + ) + + def test_presence_condition_simplification_2(self): + bdd = create_bdd() + bdd.declare("compress", "enc") + feature_model = bdd.add_expr( + "(~compress & ~enc) | (~compress & enc) | (compress & ~enc) | (compress & enc)" + ) + expression = bdd.add_expr( + "(~compress & enc) | (compress & ~enc) | (compress & enc)" + ) + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "(compress | enc)" + ) + feature_model = bdd.add_expr("True") + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "(compress | enc)" + ) + + def test_presence_condition_simplification_3(self): + bdd = create_bdd() + bdd.declare("compress", "enc") + + feature_model = bdd.false + expression = bdd.add_expr( + "(~compress & enc) | (compress & ~enc) | (compress & enc)" + ) + self.assertEqual(minimize(expression, feature_model), bdd.false) + expression = bdd.false + self.assertEqual(minimize(expression, feature_model), bdd.false) + expression = bdd.true + self.assertEqual(minimize(expression, feature_model), bdd.true) + + def test_presence_condition_simplification_4(self): + bdd = create_bdd() + bdd.declare("compress", "enc") + + feature_model = bdd.add_expr( + "((compress & enc) | (compress & ~enc) | (enc & ~compress) | (~compress & ~enc))" + ) + enc = bdd.var("enc") + compress = bdd.var("compress") + expression = ((((bdd.true & enc) & compress) | bdd.false) | + ((bdd.true & compress & ~enc))) + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "compress" + ) + + def test_presence_condition_simplification_5(self): + bdd = create_bdd() + bdd.declare("slow", "header") + + feature_model = bdd.add_expr( + "(slow & header) | (~slow & header) | (slow & ~header) | (~slow & ~header)" + ) + expression = bdd.add_expr("(slow & header) | (slow & ~header)") + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "slow" + ) + feature_model = bdd.true + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "slow" + ) + feature_model = bdd.add_expr( + "(header & slow) | (~header & slow) | (header & ~slow) | (~header & ~slow)" + ) + expression = bdd.add_expr("(header & slow) | (~header & slow)") + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "slow" + ) + feature_model = bdd.true + self.assertEqual( + func_to_str(minimize(expression, feature_model)), "slow" + ) + + def test_presence_condition_simplification_6(self): + bdd = create_bdd() + bdd.declare( + "decompress", "compress", "list", "test", "_6", "_9", "_3", "_0" + ) + + before = bdd.add_expr( + "((_6 & ~decompress & test & ~compress & ~list) | (_6 & decompress & ~compress & ~list & test))" + ) + after = bdd.add_expr("(_6 & test & ~compress & ~list)") + self.assertTrue(before.equiv(after)) + + feature_model = bdd.add_expr( + "(~test & compress & ~decompress & ~list & _9) | (~test & ~compress & ~decompress & list & _6) | (test & ~compress & ~decompress & ~list & _6) | (~test &~compress & decompress & ~list & _6) | (test & ~compress & decompress & ~list & _6) | (~test & compress & ~decompress & ~list & _6) | (~test & compress & ~decompress & ~list & _3) | (~test & compress & ~decompress & ~list & _0)" + ) + result = minimize(before, feature_model) + self.assertEqual( + _minimize_context_check(result, before, feature_model), bdd.true + ) + result = minimize(after, feature_model) + self.assertEqual( + _minimize_context_check(result, after, feature_model), bdd.true + ) + + @run_in_test_environment(UnitTestFixtures.RESULT_FILES) + def test_presence_condition_simplification_performance(self): + feature_model_formula = Path( + TEST_INPUTS_DIR + ) / "results" / "xz" / "ReducedFeatureModel.xml" + feature_model = _extract_feature_model_formula(feature_model_formula) + s = func_to_str(feature_model) + print(s) + + def test_bdd(self): + from dd.autoref import BDD as AutoBDD + from dd.cudd import restrict, BDD + bdd = BDD() + a = bdd.true + b = a.bdd.add_expr("False") + self.assertTrue(a == a.bdd.add_expr("True")) + self.assertTrue(b == b.bdd.false) + self.assertEqual(a | b, a) + self.assertEqual(a & b, b) + + bdd.declare("x1", "x2", "x3", "x4") + x1 = bdd.var("x1") + x2 = bdd.var("x2") + x3 = bdd.var("x3") + x4 = bdd.var("x4") + fc = x1 & x2 + self.assertEqual(fc, x2 & x1) + result = restrict(fc, x1) + self.assertEqual(result, x2) + _f = (x2 & (x1.equiv(x3.implies(x4) + ))) | ~(x2 | ((x4.implies(x1)) & (x1 | x3))) + _c = (x1 & ~x2 & x3 & x4) | (x2 & (x3.equiv(x4))) + f = bdd.add_expr( + "(x2 & (x1 <=> (x3 => x4))) | ~(x2 | ((x4 => x1) & (x1 | x3)))" + ) + c = bdd.add_expr("(~x2 & x3 & x4 & x1) | (x2 & (x3 <=> x4))") + self.assertEqual(f, _f) + self.assertEqual(c, _c) + result = restrict(f, c) + auto = AutoBDD() + auto.declare(*bdd.vars) + x = bdd.copy(result, auto) + y = x.to_expr() + y = list(auto.pick_iter(x)) + self.assertEqual(result, fc) + + @unittest.skip("Not used") + def test_omega(self): + from omega.symbolic.fol import Context + bdd = Context() + a = bdd.true + b = a.bdd.add_expr("False") + self.assertTrue(a == a.bdd.add_expr("True")) + self.assertTrue(b == b.bdd.false) + self.assertEqual(a | b, a) + self.assertEqual(a & b, b) + + bdd.declare(x1=(0, 1), x2=(0, 1), x3=(0, 1), x4=(0, 1)) + """x1 = bdd.var("x1") + x2 = bdd.var("x2") + x3 = bdd.var("x3") + x4 = bdd.var("x4") + fc = x1 & x2 + self.assertEqual(fc, x2 & x1) + result = restrict(fc, x1) + self.assertEqual(result, x2) + _f = (x2 & (x1.equiv(x3.implies(x4) + ))) | ~(x2 | ((x4.implies(x1)) & (x1 | x3))) + _c = (x1 & ~x2 & x3 & x4) | (x2 & (x3.equiv(x4)))""" + f = bdd.add_expr( + "(x2=1 & (x1=1 <=> (x3=1 => x4=1))) | ~(x2=1 | ((x4=1 => x1=1) & (x1=1 | x3=1)))" + ) + c = bdd.add_expr("(x2=0 & x3=1 & x4=1) | (x2=1 & (x3=1 <=> x4=1))") + #self.assertEqual(f, _f) + #self.assertEqual(c, _c) + result = bdd.to_expr(f, c, comment=False) + self.assertEqual(result, "fc") + + def test_pyeda_espresso_tts(self): + from pyeda.inter import ( + exprvar, + truthtable, + truthtable2expr, + espresso_tts, + ) + + # Pyeda's espresso_tts implementation does not respect tt variable ordering + a, b, c, d = map(exprvar, 'abcd') + f_tt = truthtable((a, b, c), '10110101') + f_ex = truthtable2expr(f_tt) + g_ex = espresso_tts(f_tt)[0] + self.assertTrue(f_ex.equivalent(g_ex)) + + f_tt = truthtable((c, b, a), '10110101') + f_ex = truthtable2expr(f_tt) + g_ex = espresso_tts(f_tt)[0] + self.assertTrue(f_ex.equivalent(g_ex)) + + f_tt = truthtable((b, a, c), '10110101') + f_ex = truthtable2expr(f_tt) + g_ex = espresso_tts(f_tt)[0] + self.assertTrue(f_ex.equivalent(g_ex)) + + f_tt = truthtable((d, c, b, a), '1011010110010100') + f_ex = truthtable2expr(f_tt) + g_ex = espresso_tts(f_tt)[0] + self.assertTrue(f_ex.equivalent(g_ex)) + + def test_pyeda_espresso_exprs(self): + from pyeda.inter import ( + exprvar, + truthtable, + truthtable2expr, + espresso_exprs, + ) + + a, b, c, d = map(exprvar, 'abcd') + f1_tt = truthtable((a, b, c), '10110101') + f1_ex = truthtable2expr(f1_tt).to_dnf() + g1_ex = espresso_exprs(f1_ex)[0] + self.assertTrue(f1_ex.equivalent(g1_ex)) + + f2_tt = truthtable((c, b, a), '10110101') + f2_ex = truthtable2expr(f2_tt).to_dnf() + g2_ex = espresso_exprs(f2_ex)[0] + self.assertTrue(f2_ex.equivalent(g2_ex)) + + f3_tt = truthtable((b, a, c), '10110101') + f3_ex = truthtable2expr(f3_tt).to_dnf() + g3_ex = espresso_exprs(f3_ex)[0] + self.assertTrue(f3_ex.equivalent(g3_ex)) + + f4_tt = truthtable((d, c, b, a), '1011010110010100') + f4_ex = truthtable2expr(f4_tt).to_dnf() + g4_ex = espresso_exprs(f4_ex)[0] + self.assertTrue(f4_ex.equivalent(g4_ex)) + + # All at once + g1_ex, g2_ex, g3_ex, g4_ex = espresso_exprs(f1_ex, f2_ex, f3_ex, f4_ex) + self.assertTrue(f1_ex.equivalent(g1_ex)) + self.assertTrue(f2_ex.equivalent(g2_ex)) + self.assertTrue(f3_ex.equivalent(g3_ex)) + self.assertTrue(f4_ex.equivalent(g4_ex)) diff --git a/tests/utils/test_doc_util.py b/tests/utils/test_doc_util.py index 6c8846274..f87145c0a 100644 --- a/tests/utils/test_doc_util.py +++ b/tests/utils/test_doc_util.py @@ -48,7 +48,7 @@ def test_construct_feature_model_link(self) -> None: opus_fm_link = du.construct_feature_model_link(Opus) self.assertEqual( opus_fm_link, - "`Model `__" + "`Model `__" ) diff --git a/varats-core/varats/experiment/workload_util.py b/varats-core/varats/experiment/workload_util.py index 3d4286414..1703d0311 100644 --- a/varats-core/varats/experiment/workload_util.py +++ b/varats-core/varats/experiment/workload_util.py @@ -38,6 +38,8 @@ class WorkloadCategory(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 + JAN = 4 + JAN_2 = 5 def __str__(self) -> str: return self.name.lower() diff --git a/varats-core/varats/project/varats_command.py b/varats-core/varats/project/varats_command.py index 3a78a5630..d55a4c091 100644 --- a/varats-core/varats/project/varats_command.py +++ b/varats-core/varats/project/varats_command.py @@ -3,7 +3,7 @@ from benchbuild.command import Command, ProjectCommand, PathToken -from varats.utils.config import get_config_patches +from varats.utils.config import get_config_patches, get_extra_config_options if tp.TYPE_CHECKING: from plumbum.commands.base import BoundEnvCommand @@ -31,6 +31,7 @@ class VCommand(Command): # type: ignore [misc] def __init__( self, *args: tp.Any, + requires_not_args: tp.Optional[tp.Set[str]] = None, requires_any_args: tp.Optional[tp.Set[str]] = None, requires_all_args: tp.Optional[tp.Set[str]] = None, requires_any_patch: tp.Optional[tp.Set[str]] = None, @@ -41,6 +42,7 @@ def __init__( ) -> None: super().__init__(*args, **kwargs) + self._requires_not_args = requires_not_args or set() self._requires_any_args = requires_any_args or set() self._requires_all_args = requires_all_args or set() self._requires_any_patch = requires_any_patch or set() @@ -48,6 +50,10 @@ def __init__( self._redirect_stdin = redirect_stdin self._redirect_stdout = redirect_stdout + @property + def requires_not_args(self) -> tp.Set[str]: + return self._requires_not_args + @property def requires_any_args(self) -> tp.Set[str]: return self._requires_any_args @@ -96,7 +102,10 @@ def can_be_executed(self) -> bool: if self.v_command is None: return True - all_args = set(self.v_command.rendered_args(project=self.v_project)) + all_args = set( + self.v_command.rendered_args(project=self.v_project) + + tuple(get_extra_config_options(project=self.v_project)) + ) all_patch_tags: tp.Set[str] = set() for patch in get_config_patches(self.v_project): @@ -104,6 +113,9 @@ def can_be_executed(self) -> bool: all_patch_tags.update(patch.feature_tags) return bool(( + not self.v_command.requires_not_args or + not all_args.intersection(self.v_command.requires_not_args) + ) and ( not self.v_command.requires_any_args or all_args.intersection(self.v_command.requires_any_args) ) and ( diff --git a/varats-core/varats/provider/feature/feature_model_provider.py b/varats-core/varats/provider/feature/feature_model_provider.py index 90c9bf4d8..377d51747 100644 --- a/varats-core/varats/provider/feature/feature_model_provider.py +++ b/varats-core/varats/provider/feature/feature_model_provider.py @@ -25,7 +25,7 @@ def __init__(self, project: Project, fm_path: tp.Optional[Path]) -> None: class FeatureModelProvider(Provider): """Provider for accessing project related FeatureModels.""" - fm_repository = "https://github.com/se-sic/ConfigurableSystems.git" + fm_repository = "https://github.com/danjujan/ConfigurableSystems.git" @classmethod def create_provider_for_project( diff --git a/varats-core/varats/utils/git_util.py b/varats-core/varats/utils/git_util.py index 6f0cd1c1d..fd396c809 100644 --- a/varats-core/varats/utils/git_util.py +++ b/varats-core/varats/utils/git_util.py @@ -1154,7 +1154,9 @@ def __init__(self, project_name: str, revision: ShortCommitHash) -> None: self.__revision = self.__repo.get(revision.hash) def __enter__(self) -> Path: - self.__repo.checkout_tree(self.__revision) + self.__repo.checkout_tree( + self.__revision, strategy=pygit2.GIT_CHECKOUT_FORCE + ) return Path(self.__repo.path).parent def __exit__( @@ -1162,4 +1164,8 @@ def __exit__( exc_value: tp.Optional[BaseException], exc_traceback: tp.Optional[TracebackType] ) -> None: - self.__repo.checkout(self.__initial_head) + # Force checkout to prevent GitError: #number conflicts prevent checkout bug + # without having modified the repo + self.__repo.checkout( + self.__initial_head, strategy=pygit2.GIT_CHECKOUT_FORCE + ) diff --git a/varats/setup.py b/varats/setup.py index f8457097d..88e03c60d 100644 --- a/varats/setup.py +++ b/varats/setup.py @@ -19,6 +19,7 @@ install_requires=[ "benchbuild>=6.8", "click>=8.1.3", + "dd>=0.5.7", "distro>=1.5.0", "graphviz>=0.14.2", "Jinja2>=3.1.2", @@ -30,11 +31,13 @@ "pandas>=1.5.3", "plotly>=5.13.1", "plumbum>=1.6", + "pyeda @ https://github.com/danjujan/pyeda/archive/main.zip", "pygit2>=1.10", "PyGithub>=1.47", "pygraphviz>=1.7", "pygtrie>=2.3", "pylatex>=1.4.1", + "pyprctl>=0.1.3", "PyQt5>=5.10.0", "PyQt5-stubs>=5.10.0", "PyYAML>=6.0", diff --git a/varats/varats/data/reports/llvm_coverage_report.py b/varats/varats/data/reports/llvm_coverage_report.py new file mode 100644 index 000000000..3b9da5ea0 --- /dev/null +++ b/varats/varats/data/reports/llvm_coverage_report.py @@ -0,0 +1,1438 @@ +"""Code region tree and coverage report.""" + +from __future__ import annotations + +import csv +import json +import shutil +import string +import sys +import typing as tp +from collections import deque, defaultdict +from dataclasses import dataclass, field, asdict, is_dataclass +from datetime import timedelta +from enum import Enum +from functools import cache +from pathlib import Path +from tempfile import TemporaryDirectory +from time import perf_counter_ns +from types import TracebackType + +from dd.autoref import Function # type: ignore [import] + +try: + from dd.cudd import BDD, restrict # type: ignore [import] +except ModuleNotFoundError: + from dd.autoref import BDD # type: ignore [import] + +from plumbum import colors +from plumbum.colorlib.styles import Color +from pyeda.boolalg.expr import Complement, Variable # type: ignore [import] +from pyeda.boolalg.minimization import ( # type: ignore [import] + set_config, + CONFIG, + _cover2exprs, + espresso, + FTYPE, +) +from pyeda.inter import And, Or, Expression, exprvar # type: ignore [import] + +from varats.base.configuration import Configuration +from varats.report.report import BaseReport + +TAB_SIZE = 8 +CUTOFF_LENGTH = 80 + + +def eprint(*args: tp.Any, **kwargs: tp.Any) -> None: + """Print to stderr.""" + print(*args, file=sys.stderr, **kwargs) + + +def time_diff(start: int, end: int) -> str: + """Difference between start and end timestamp.""" + return str(timedelta(microseconds=(end - start) / 1000)) + + +class MeasureTime: + """Context manager to disable color temporarily.""" + + def __init__(self, identifier: str, to_print: str) -> None: + self.identifier = identifier + self.to_print = to_print + self.start = 0 + + def __enter__(self) -> None: + eprint(f"{self.identifier}: {self.to_print}") + self.start = perf_counter_ns() + + def __exit__( + self, exc_type: tp.Optional[tp.Type[BaseException]], + exc_value: tp.Optional[BaseException], + exc_traceback: tp.Optional[TracebackType] + ) -> None: + end = perf_counter_ns() + eprint(f"{self.identifier}: {time_diff(self.start, end)}") + + +def expr_to_str(expression: Expression) -> str: + """Converts expression back to str representation.""" + if expression.is_zero() or expression.is_one(): + return str(bool(expression)) + if expression.ASTOP == "lit": + if isinstance(expression, Complement): + return f"~{expr_to_str(~expression)}" + if isinstance(expression, Variable): + return str(expression) + raise NotImplementedError() + if expression.ASTOP == "and": + return f"({' & '.join(sorted(map(expr_to_str, expression.xs)))})" + if expression.ASTOP == "or": + return f"({' | '.join(sorted(map(expr_to_str, expression.xs)))})" + raise NotImplementedError(expression.ASTOP) + + +def __espresso_expr(dnf: Expression) -> Expression: + support = dnf.support + inputs = sorted(support) + + ninputs = len(inputs) + noutputs = 1 + + invec = [0] * ninputs + cover = set() + for cube in dnf.cover: + for i, var in enumerate(inputs): + if ~var in cube: + invec[i] = 1 + elif var in cube: + invec[i] = 2 + else: + invec[i] = 3 + cover.add((tuple(invec), (1,))) + + set_config(**CONFIG) + + cover = espresso(ninputs, noutputs, cover, intype=FTYPE) + return _cover2exprs(inputs, noutputs, cover)[0] + + +def _func_to_expr(func: Function) -> Expression: + to_or = [] + for point in func.bdd.pick_iter(func): + to_and = [] + for name, value in point.items(): + var = exprvar(name) + if value: + to_and.append(var) + else: + to_and.append(~var) + to_or.append(And(*to_and)) + dnf = Or(*to_or) + return __espresso_expr(dnf) + + +@cache +def create_bdd() -> BDD: + return BDD() + + +@cache +def func_to_str(func: Function) -> str: + """ + Converts function to str. + + Potentially expensive. + """ + if func == func.bdd.true: + return "True" + if func == func.bdd.false: + return "False" + return expr_to_str(_func_to_expr(func)) + + +def _minimize_context_check( + result: Function, func: Function, feature_model: Function +) -> Function: + # Restrict feature model to same values as expression + check = feature_model.implies(result.equiv(func)) + return check + + +def minimize(func: Function, care: Function) -> Function: + """Minimize function according to care set.""" + if func in (func.bdd.true, func.bdd.false): + return func + result: Function = restrict(func, care) + assert _minimize_context_check( + result, func, care + ) == func.bdd.true, "Presence Condition Simplification buggy!" + return result + + +class CodeRegionKind(int, Enum): + """Code region kinds.""" + CODE = 0 + EXPANSION = 1 + SKIPPED = 2 + GAP = 3 + BRANCH = 4 + FILE_ROOT = -1 + + +@dataclass(frozen=True) +class FrozenLocation: + line: int + column: int + + +@dataclass +class Location: + line: int + column: int + + +class RegionStart(Location): + pass + + +class RegionEnd(Location): + pass + + +@dataclass +class CodeRegion: # pylint: disable=too-many-instance-attributes, too-many-public-methods + """Code region tree.""" + start: RegionStart + end: RegionEnd + count: int + kind: CodeRegionKind + function: str + filename: str + # expanded_from: tp.Optional[CodeRegion] = None + parent: tp.Optional[CodeRegion] = None + childs: tp.List[CodeRegion] = field(default_factory=list) + presence_condition: tp.Optional[Function] = None + vara_instrs: tp.List[VaraInstr] = field(default_factory=list) + counts: tp.List[int] = field(default_factory=list) + instantiations: tp.List[str] = field(default_factory=list) + ignore: bool = False # Ignore code region during comparison/classification. + + @classmethod + def from_list( + cls, region: tp.List[int], function: str, filenames: tp.List[str] + ) -> CodeRegion: + """Instantiates a CodeRegion from a list.""" + + # expansion_id = region[6] + + return cls( + start=RegionStart(line=region[0], column=region[1]), + end=RegionEnd(line=region[2], column=region[3]), + count=region[4], + kind=CodeRegionKind(region[7]), + function=function, + filename=filenames[region[5]] + ) + + @classmethod + def from_file(cls, path: str) -> CodeRegion: + """Instantiates a root code region from a file.""" + + start = RegionStart(1, 1) + # how long is the file? + with open(path) as source_code: + content = source_code.readlines() + end_line = len(content) + end_column = len(content[-1]) + end = RegionEnd(end_line, end_column) + + return cls( + start=start, + end=end, + count=0, + kind=CodeRegionKind.FILE_ROOT, + function="__no_function_I_AM_ROOT__", + filename=path + ) + + def __post_init__(self) -> None: + self.counts.append(self.count) + self.instantiations.append(self.function) + # Ignore location in function_name (static function) + self.function = self.function.split(":", 1)[-1] + + @property + def total_count(self) -> int: + return sum(self.counts) + + def iter_breadth_first(self) -> tp.Iterator[CodeRegion]: + """Yields childs breadth_first.""" + todo = deque([self]) + + while todo: + node = todo.popleft() + childs = list(node.childs) + todo.extend(childs) + yield node + + def iter_preorder(self) -> tp.Iterator[CodeRegion]: + """Yields childs in preorder.""" + yield self + for child in self.childs: + for x in child.iter_preorder(): + yield x + + def iter_postorder(self) -> tp.Iterator[CodeRegion]: + """Yields childs in postorder.""" + for child in self.childs: + for x in child.iter_postorder(): + yield x + yield self + + def has_parent(self) -> bool: + if self.parent is None: + return False + return True + + def features_threshold(self, features: tp.Iterable[str]) -> float: + """Returns the proportion of this features in vara instrs.""" + with_feature = [] + wo_feature = [] + + for instr in self.vara_instrs: + if instr.has_features(features): + assert instr.kind == FeatureKind.FEATURE_REGION + with_feature.append(instr) + else: + wo_feature.append(instr) + + denominator = (len(with_feature) + len(wo_feature)) + if denominator == 0: + return float("-inf") + return len(with_feature) / denominator + + def coverage_features( + self, feature_model: tp.Optional[Function] = None + ) -> str: + """Returns presence conditions.""" + if self.ignore: + return "__cov_ignored__" + + if ( + self.presence_condition is None or + self.presence_condition == self.presence_condition.bdd.false + ): + return "" + if feature_model is not None: + return "+" + func_to_str( + minimize(self.presence_condition, feature_model) + ) + return "+" + func_to_str(self.presence_condition) + + def coverage_features_set( + self, feature_model: tp.Optional[Function] = None + ) -> tp.Set[str]: + """Returns features affecting code region somehow.""" + if self.ignore: + return {"__cov_ignored__"} + if ( + self.presence_condition is None or + self.presence_condition == self.presence_condition.bdd.false or + self.presence_condition == self.presence_condition.bdd.true + ): + return set() + if feature_model is not None: + return set(minimize(self.presence_condition, feature_model).support) + return set(self.presence_condition.support) + + def vara_features(self) -> tp.Set[str]: + """Returns all features from annotated vara instrs.""" + if self.ignore: + return {"__vara_ignored__"} + + features = set() + for instr in self.vara_instrs: + features.update(instr.features) + + return features + + def is_covered(self) -> bool: + return self.total_count > 0 + + def is_subregion(self, other: CodeRegion) -> bool: + """ + Tests if the 'other' region fits fully into self. + + It fits if start equals but end is smaller or start is greater and end + equal + """ + start_ok = False + end_ok = False + start_equal = False + end_equal = True + + if self.start.line < other.start.line: + start_ok = True + elif self.start.line == other.start.line: + start_ok = self.start.column <= other.start.column + start_equal = self.start.column == other.start.column + + if self.end.line > other.end.line: + end_ok = True + elif self.end.line == other.end.line: + end_ok = self.end.column >= other.end.column + end_equal = self.end.column == other.end.column + + return start_ok and end_ok and not (start_equal and end_equal) + + def overlaps(self, other: CodeRegion) -> bool: + """ + Tests if regions overlap. + + They overlaps if they are not subregions, but one location is inside of + the other. + """ + + if self.is_subregion(other) or other.is_subregion(self): + return False + if self.is_location_inside( + other.start.line, other.start.column + ) != other.is_location_inside(self.start.line, self.start.column): + return True + + return False + + def add_instantiation(self, region: CodeRegion) -> None: + """If a code region already exists in a tree.""" + if region != self: + raise ValueError("The given region is identical!") + + self.counts.append(region.count) + self.instantiations.append(region.function) + + def insert(self, region: CodeRegion) -> None: + """ + Inserts the given code region into the tree. + + The new regions must not exist yet and must not overlap + """ + if not self.is_subregion(region): + raise ValueError("The given region is not a subregion!") + if region in self: + raise ValueError("The given region exists already!") + + # Find the right child to append to + # Should be the first code region where region is a subregion + # when traversing the tree in postorder + for node in self.iter_postorder(): + if node.is_subregion(region): + if node.childs: + # node is not a leaf node + # check which childs should become childs of regions + childs_to_move = [] + for child in node.childs: + if region.is_subregion(child): + childs_to_move.append(child) + + region.childs.extend(childs_to_move) + region.childs.sort() + + for child in childs_to_move: + child.parent = region + node.childs.remove(child) + + if any(child.overlaps(region) for child in node.childs): + raise ValueError( + "The given region overlaps with another region!" + ) + node.childs.append(region) + node.childs.sort() + region.parent = node + break + + def combine_features(self, region: CodeRegion) -> None: + """Combines features of region with features of self.""" + for x, y in zip(self.iter_breadth_first(), region.iter_breadth_first()): + if x != y: + raise AssertionError("CodeRegions are not identical") + assert x.presence_condition is not None + assert y.presence_condition is not None + x.presence_condition |= y.presence_condition + + def get_code_region(self, element: CodeRegion) -> tp.Optional[CodeRegion]: + """Returns the code region if it exists already.""" + for child in self.iter_breadth_first(): + if child == element: + return child + return None + + def find_code_region(self, line: int, + column: int) -> tp.Optional[CodeRegion]: + """ + Returns the smallest code region with the corresponding location. + + If not found, returns None + """ + if not self.is_location_inside(line, column): + # Early exit. Location is not inside root node + return None + + for node in self.iter_postorder(): + if node.is_location_inside(line, column): + # node with location found. + return node + return None + + def is_location_inside(self, line: int, column: int) -> bool: + """Returns true if line and column is inside code region.""" + if self.start.line <= line <= self.end.line: + # Location could be inside. Check cases. + if self.start.line == line == self.end.line: + # Location in same line + return self.start.column <= column < self.end.column + if self.start.line == line: + # Location in start line + return self.start.column <= column + if self.end.line == line: + # Location in end line + return column < self.end.column + # Location neither in start line not in end line + return self.start.line < line < self.end.line + return False + + def annotate_covered(self, func: Function) -> None: + """ + Adds the presence condition to all covered regions. + + Ignore regions without instructions aka GAP regions. + """ + for region in self.iter_breadth_first(): + if region.is_covered() and region.vara_instrs: + region.presence_condition = func + else: + region.presence_condition = func.bdd.false + + def is_identical(self, other: object) -> bool: + """Is the code region equal and has the same coverage?""" + if not isinstance(other, CodeRegion): + return False + + if not (self == other and self.count == other.count): + return False + + for code_region_a, code_region_b in zip( + self.iter_breadth_first(), other.iter_breadth_first() + ): + if not ( + code_region_a == code_region_b and + code_region_a.count == code_region_b.count + ): + return False + + return True + + # Compare regions only depending on their file, + # start lines and columns + their type + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CodeRegion): + return False + + return ( + self.start.line == other.start.line and + self.start.column == other.start.column and + self.end.line == other.end.line and + self.end.column == other.end.column and self.kind == other.kind and + self.filename == other.filename + ) + + def __lt__(self, other: CodeRegion) -> bool: + if ( + self.start.line < other.start.line or + self.start.line == other.start.line and + self.start.column < other.start.column + ): + return True + + return False + + def __gt__(self, other: CodeRegion) -> bool: + return not (self == other) and other < self + + def __le__(self, other: CodeRegion) -> bool: + return self == other or other < self + + def __ge__(self, other: CodeRegion) -> bool: + return self == other or other > self + + def __contains__(self, element: CodeRegion) -> bool: + for child in self.iter_breadth_first(): + if child == element: + return True + return False + + +class FilenameRegionMapping(tp.Dict[str, CodeRegion]): + """Mapping from function names to CodeRegion objects.""" + + def __init__( + self, + *args: tp.List[tp.Any], + base_dir: tp.Optional[Path] = None, + **kwargs: tp.Dict[str, tp.Any] + ): + self.base_dir = base_dir + super().__init__(*args, **kwargs) + + def add(self, region: CodeRegion) -> None: + """Adds a code region.""" + filename = region.filename + if self.base_dir: + file_path = self.base_dir / filename + if filename not in self: + if file_path.is_file(): + self[filename] = CodeRegion.from_file(str(file_path)) + else: + print( + f"WARNING: '{filename}' is not a file. \ +Ignoring region: {region}" + ) + return + root_region = self[filename] + if (found_region := root_region.get_code_region(region)) is not None: + # Region exists already + found_region.add_instantiation(region) + else: + # Region does not exist + root_region.insert(region) + + def sorted(self) -> FilenameRegionMapping: + return FilenameRegionMapping( + # Fix function order. Otherwise static functions come last. + sorted(self.items()) + ) + + def __eq__(self, other: object) -> bool: + if not isinstance(other, FilenameRegionMapping): + return False + + for self_value, other_value in zip(self.values(), other.values()): + if not self_value.is_identical(other_value): + return False + + return True + + +class FeatureKind(Enum): + FEATURE_VARIABLE = "FVar" + FEATURE_REGION = "FReg" + NORMAL_REGION = "Norm" + + +@dataclass +class VaraInstr: + """Instr exported from VaRA.""" + kind: FeatureKind + source_file: Path + line: int + column: int + features: tp.List[str] + instr_index: int + instr: str + + def has_features(self, features: tp.Iterable[str]) -> bool: + """Checks if instr is marked with given features.""" + if not self.features: + return False + for feature in features: + if feature not in self.features: + return False + return True + + +class FeatureXMLWriter: + """Context manager to disable color temporarily.""" + + def __init__(self, feature_model_xml: str) -> None: + self.feature_model_xml = feature_model_xml + self.tmpdir: tp.Optional[TemporaryDirectory[str]] = None + + def __enter__(self) -> Path: + self.tmpdir = TemporaryDirectory() + xml_file = Path(self.tmpdir.name) / "FeatureModel.xml" + xml_file.write_text(self.feature_model_xml, encoding="utf-8") + return xml_file + + def __exit__( + self, exc_type: tp.Optional[tp.Type[BaseException]], + exc_value: tp.Optional[BaseException], + exc_traceback: tp.Optional[TracebackType] + ) -> None: + if self.tmpdir is not None: + self.tmpdir.cleanup() + self.tmpdir = None + + +class CoverageReport(BaseReport, shorthand="CovR", file_type="json"): + """Parses llvm-cov export json files and displays them.""" + + @classmethod + def from_json(cls, json_file: Path, base_dir: Path) -> CoverageReport: + """CoverageReport from JSON file.""" + c_r = cls(json_file, base_dir=base_dir) + c_r.tree = c_r._import_functions(json_file, c_r.tree) + return c_r + + @classmethod + def from_report( + cls, + report_file: Path, + configuration: Configuration, + base_dir: Path, + ) -> CoverageReport: + """CoverageReport from report file.""" + c_r = cls(report_file, configuration, base_dir) + with TemporaryDirectory() as tmpdir: + shutil.unpack_archive(report_file, tmpdir) + + def xml_filter(y: Path) -> bool: + return y.name.endswith(".xml") + + xmls = list(filter(xml_filter, Path(tmpdir).iterdir())) + if len(xmls) != 1: + raise ValueError("Multiple XMLs detected!") + for xml_file in xmls: + c_r.feature_model_xml = xml_file.read_text(encoding="utf-8") + + def json_filter(x: Path) -> bool: + return x.name.endswith(".json") + + jsons = list(filter(json_filter, Path(tmpdir).iterdir())) + for json_file in jsons: + c_r.tree = c_r._import_functions(json_file, c_r.tree) + + def csv_filter(y: Path) -> bool: + return y.name.endswith(".csv") or y.name.endswith(".ptfdd") + + csvs = list(filter(csv_filter, Path(tmpdir).iterdir())) + if len(csvs) != 1: + raise ValueError("Multiple CSVs detected!") + for csv_file in csvs: + with csv_file.open() as file: + reader = csv.DictReader(file, quotechar="'", delimiter=";") + rows = list(reader) + c_r.instrs_csv = rows + + return c_r + + def __init__( + self, + path: Path, + configuration: tp.Optional[Configuration] = None, + base_dir: tp.Optional[Path] = None + ) -> None: + super().__init__(path) + + self.tree = FilenameRegionMapping(base_dir=base_dir) + self.absolute_path = "" + self.feature_model: tp.Optional[Function] = None + self.feature_model_xml: str = "" + self.instrs_csv: tp.Optional[tp.List[tp.Dict[str, str]]] = None + + self.configuration = configuration + self.base_dir = base_dir + + def combine_features(self, report: CoverageReport) -> CoverageReport: + """Combine features of report with self.""" + for filename_a, filename_b in zip(self.tree, report.tree): + assert Path(filename_a).name == Path(filename_b).name + + code_region_a = self.tree[filename_a] + code_region_b = report.tree[filename_b] + + code_region_a.combine_features(code_region_b) + return self + + def annotate_covered(self, func: Function) -> None: + """Adds the presence condition to all covered code regions.""" + + for filename in self.tree: + code_region = self.tree[filename] + code_region.annotate_covered(func) + + def create_feature_xml(self) -> FeatureXMLWriter: + """Writes feature model xml text to file.""" + + return FeatureXMLWriter(self.feature_model_xml) + + def clean_ignored_regions(self) -> None: + """Unignore all regions.""" + for code_region in self.tree.values(): + for region in code_region.iter_preorder(): + region.ignore = False + + def mark_regions_ignored(self, ignore_regions: tp.List[CodeRegion]) -> None: + """Sets ignore for all code regions that are subregions of the ones in + the list.""" + for ignore_region in ignore_regions: + filename = ignore_region.filename + if filename in self.tree: + to_check = self.tree[filename] + for region in to_check.iter_postorder(): + if ignore_region.is_subregion(region): + region.ignore = True + + def parse_instrs(self, ignore_conditions: bool = True) -> None: + """Annotates vara-instrs to nodes.""" + # Clean all vara_instrs + for code_region in self.tree.values(): + for region in code_region.iter_preorder(): + region.vara_instrs = [] + assert self.instrs_csv + for row in self.instrs_csv: + kind = FeatureKind(row["type"]) + source_file = row["source_file"] + line = int(row["line"]) + column = int(row["column"]) + _features = row["features"].split(",") + # Don't consider features belonging to conditions a feature. + features = [] + for feature in _features: + if feature.startswith("__CONDITION__:"): + if ignore_conditions: + continue + feature = feature.replace("__CONDITION__:", "", 1) + if feature != "": + features.append(feature) + instr_index = int(row["instr_index"]) + instr = row["instr"] + vara_instr = VaraInstr( + kind, Path(source_file), line, column, features, instr_index, + instr + ) + self._annotate_vara_instr(vara_instr) + + def _annotate_vara_instr(self, vara_instr: VaraInstr) -> None: + source_file = str(vara_instr.source_file) + # Convert absolute paths to relative paths when possible + try: + relative_path = Path(source_file).relative_to(self.absolute_path) + source_file = str(relative_path) + except ValueError: + pass + if source_file in self.tree: + code_region_tree = self.tree[source_file] + feature_node = code_region_tree.find_code_region( + vara_instr.line, vara_instr.column + ) + if feature_node is not None: + feature_node.vara_instrs.append(vara_instr) + #else: + # files = list(self.tree) + # print( + # "WARNING Ignoring VaRA instructions!:", + # f"'{source_file}' not in {files}" + # ) + + def _import_functions( + self, json_file: Path, tree: FilenameRegionMapping + ) -> FilenameRegionMapping: + with json_file.open() as file: + try: + coverage_json = json.load(file) + except json.JSONDecodeError as err: + raise NotImplementedError( + "Cannot import functions. No valid JSON file provided." + ) from err + # Compatibility check + try: + coverage_type = coverage_json["type"] + coverage_version = coverage_json["version"].split(".") + if coverage_type != "llvm.coverage.json.export": + raise AssertionError("Unknown JSON type.") + if coverage_version[0] != "2": + raise AssertionError("Unknown llvm-cov JSON version.") + except (KeyError, AssertionError) as err: + raise NotImplementedError( + "Cannot import functions. JSON format unknown" + ) from err + + absolute_path = coverage_json["absolute_path"] + self.absolute_path = absolute_path + data: tp.Dict[str, tp.Any] = coverage_json["data"][0] + # files: tp.List = data["files"] + functions: tp.List[tp.Any] = data["functions"] + #totals: tp.Dict[str, tp.Any] = data["totals"] + + for function in functions: + name: str = function["name"] + # count: int = function["count"] + # branches: list = function["branches"] + filenames: tp.List[str] = function["filenames"] + relative_filenames = [] + for filename in filenames: + relative_filenames.append( + str(Path(filename).relative_to(absolute_path)) + ) + + regions: tp.List[tp.List[int]] = function["regions"] + + tree = self._import_code_regions( + name, relative_filenames, regions, tree + ) + + # sanity checking + #self.__region_import_sanity_check(totals, tree) + + return tree.sorted() + + def _import_code_regions( + self, function: str, filenames: tp.List[str], + regions: tp.List[tp.List[int]], tree: FilenameRegionMapping + ) -> FilenameRegionMapping: + + for region in regions: + code_region = CodeRegion.from_list(region, function, filenames) + tree.add(code_region) + + return tree + + def __region_import_sanity_check( + self, totals: tp.Dict[str, tp.Any], tree: FilenameRegionMapping + ) -> None: + total_instantiations_count: int = totals["instantiations"]["count"] + total_instantiations_covered: int = totals["instantiations"]["covered"] + total_regions_count: int = totals["regions"]["count"] + total_regions_covered: int = totals["regions"]["covered"] + total_regions_notcovered: int = totals["regions"]["notcovered"] + + counted_code_regions = 0 + covered_regions = 0 + notcovered_regions = 0 + + instantiations = set() + covered_instantiations = set() + + for filename in tree: + code_region = tree[filename] + for region in code_region.iter_breadth_first(): + if region.kind != CodeRegionKind.FILE_ROOT: + instantiations.update(region.instantiations) + if region.kind in [ + CodeRegionKind.CODE, CodeRegionKind.EXPANSION + ]: + counted_code_regions += 1 + if region.is_covered(): + covered_regions += 1 + else: + notcovered_regions += 1 + + for count, instance in zip( + region.counts, region.instantiations + ): + if count > 0: + covered_instantiations.add(instance) + + print( + "# Instantiations", len(instantiations), "==?", + total_instantiations_count + ) + print( + "# covered Instantiations", len(covered_instantiations), "==?", + total_instantiations_covered + ) + print( + "# counted Regions", counted_code_regions, "==?", + total_regions_count + ) + print( + "# covered Regions", covered_regions, "==?", total_regions_covered + ) + print( + "# not covered Regions", notcovered_regions, "==?", + total_regions_notcovered + ) + + #assert len(instantiations) == total_instantiations_count + #assert len(covered_instantiations) == total_instantiations_covered + #assert counted_code_regions == total_regions_count + assert counted_code_regions != 0 + #assert covered_regions == total_regions_covered + #assert notcovered_regions == total_regions_notcovered + + def __eq__(self, other: object) -> bool: + if not isinstance(other, CoverageReport): + return False + for filename_a, filename_b in zip(self.tree, other.tree): + if (Path(filename_a).name == Path(filename_b).name + ) and (self.tree[filename_a] == other.tree[filename_b]): + continue + return False + return True + + def to_json(self) -> str: + """ + Exports the internal representation as json. + + Note this json format differs from the llvm-cov export json format! + """ + + class EnhancedJSONEncoder(json.JSONEncoder): + """Custom JSON Encoder to handle converting CodeRegions to json.""" + + def default(self, o: tp.Any) -> tp.Any: + if isinstance(o, CodeRegion): + result = {} + for (key, value) in o.__dict__.items(): + # Exclude parent to avoid endless loops + if key != "parent": + result[key] = self.encode(value) + return result + if is_dataclass(o): + return asdict(o) + return super().default(o) + + return json.dumps(self.tree, cls=EnhancedJSONEncoder) + + +Count = tp.Optional[int] +LinePart = str +CoverageFeatures = tp.Optional[str] +CoverageFeaturesSet = tp.Optional[tp.Set[str]] +VaraFeatures = tp.Optional[tp.Set[str]] +Segment = tp.Tuple[Count, LinePart, CoverageFeatures, CoverageFeaturesSet, + VaraFeatures] +Segments = tp.List[Segment] +SegmentBuffer = tp.DefaultDict[int, Segments] +FileSegmentBufferMapping = tp.Mapping[str, SegmentBuffer] + + +def cov_segments( + report: CoverageReport, + base_dir: Path, +) -> FileSegmentBufferMapping: + """Returns the all segments for this report.""" + file_segments_mapping = {} + for file in list(report.tree): + region = report.tree[file] + path = Path(file) + with MeasureTime("cov_segment", f"Building file '{file}'..."): + file_segments_mapping[file] = _cov_segments_file( + path, + base_dir, + region, + feature_model=report.feature_model + if report.feature_model is not None else None + ) + + return file_segments_mapping + + +def _cov_segments_file( + rel_path: Path, base_dir: Path, region: CodeRegion, + feature_model: tp.Optional[Function] +) -> SegmentBuffer: + + lines: tp.Dict[int, str] = {} + path = base_dir / rel_path + with open(path) as file: + line_number = 1 + for line in file.readlines(): + lines[line_number] = line + line_number += 1 + + # {linenumber: [(count, line_part_1), (other count, line_part_2)]} + segments_dict: SegmentBuffer = defaultdict(list) + segments_dict = _cov_segments_function( + region, lines, segments_dict, feature_model + ) + + # Add rest of file + segments_dict = __cov_fill_buffer( + end_line=len(lines), + end_column=len(lines[len(lines)]) + 1, + count=None, + cov_features=None, + cov_features_set=None, + vara_features=None, + lines=lines, + buffer=segments_dict + ) + + return segments_dict + + +def cov_show( + report: CoverageReport, + base_dir: Path, +) -> str: + """ + Returns the coverage in text form similar to llvm-cov show. + + NOTE: The colored representation differs a bit! + """ + return cov_show_segment_buffer(cov_segments(report, base_dir)) + + +def cov_show_segment_buffer( + file_segments_mapping: FileSegmentBufferMapping, + show_counts: bool = True, + show_coverage_features: bool = False, + show_coverage_feature_set: bool = False, + show_vara_features: bool = False, + save_to_dir: tp.Optional[Path] = None +) -> str: + """Returns the coverage in text form.""" + result = [] + for file in file_segments_mapping: + tmp_values = [_color_str(f"{file}:\n", colors.cyan)] + tmp_values.append( + __table_to_text( + __segments_dict_to_table( + file_segments_mapping[file], color_counts=show_counts + ), + show_counts=show_counts, + show_coverage_features=show_coverage_features, + show_coverage_feature_set=show_coverage_feature_set, + show_vara_features=show_vara_features, + ) + ) + + if not tmp_values[-1].endswith("\n"): + # Add newline if file does not end with one + tmp_values.append("\n") + + tmp_value = "".join(tmp_values) + result.append(tmp_value) + if save_to_dir: + with DisableColor(): + content = __table_to_text( + __segments_dict_to_table( + file_segments_mapping[file], color_counts=show_counts + ), + show_counts=show_counts, + show_coverage_features=show_coverage_features, + show_coverage_feature_set=show_coverage_feature_set, + show_vara_features=show_vara_features, + show_line_numbers=False, + ) + (save_to_dir / file).parent.mkdir(parents=True, exist_ok=True) + (save_to_dir / file).write_text(content, encoding="utf-8") + + return "\n".join(result) + "\n" + + +class TableEntry(tp.NamedTuple): + """Entry for __table_to_text.""" + count: tp.Union[int, str] # type: ignore[assignment] + text: str + coverage_features: str + coverage_features_set: str + vara_features: str + + +def __table_to_text( + table: tp.Dict[int, TableEntry], + show_counts: bool = True, + show_coverage_features: bool = False, + show_coverage_feature_set: bool = False, + show_vara_features: bool = False, + show_line_numbers: bool = True, +) -> str: + output = [] + for line_number, entry in table.items(): + line = [] + if show_line_numbers: + line.append(f"{line_number:>5}") + if show_counts: + line.append(f"{entry.count:>7}") + + # Set tabs to size + text = entry.text.replace("\t", " " * TAB_SIZE) + text = text.replace("\n", "", 1) + if not any([show_coverage_features, show_vara_features]): + line.append(f"{text}") + else: + text = text[:CUTOFF_LENGTH] + line.append(f"{text:<{CUTOFF_LENGTH}}") + if show_coverage_features: + line.append(f"{entry.coverage_features}") + if show_coverage_feature_set: + line.append(f"{entry.coverage_features_set}") + if show_vara_features: + line.append(f"{entry.vara_features}") + output.append("|".join(line)) + return "\n".join(output) + + +def __segments_dict_to_table( # pylint: disable=too-many-locals + segments_dict: SegmentBuffer, + color_counts: bool = False, +) -> tp.Dict[int, TableEntry]: + """Constructs a str from the given segments dictionary.""" + table = {} + for line_number, segments in segments_dict.items(): + if len(segments) > 1: + # Workaround: Ignore counts for last segment with whitespaces + # and single ';' that ends with "\n" + segments[-1] = (None, segments[-1][1], None, None, None + ) if segments[-1][1].endswith("\n") and ( + str.isspace(segments[-1][1].replace(";", "", 1)) + ) else segments[-1] + counts = [segment[0] for segment in segments] + + def filter_out_nones(a: tp.Iterable[tp.Any]) -> tp.Iterator[tp.Any]: + for item in a: + if item is not None: + yield item + + non_none_counts = list(filter_out_nones(counts)) + count: tp.Union[int, str] = "" + if len(non_none_counts) > 0: + count = max(non_none_counts, key=abs) + + texts = [segment[1] for segment in segments] + colored_texts = [] + for x, y in zip(counts, texts): + if not color_counts or x is None or x != 0: + colored_texts.append(y) + elif x == 0: + y_stripped = y.lstrip(f"else){string.whitespace}") + if not y_stripped.startswith("{") and len(y_stripped) != 0: + y_stripped = y + before = y[:len(y) - len(y_stripped)] + y_stripped = y_stripped.rstrip("\n") + after = "" + len_after = len(y) - len(before) - len(y_stripped) + if len_after > 0: + after = y[-len_after:] + middle = _color_str(y_stripped, colors.bg.red) + colored_text = f"{before}{middle}{after}" + colored_texts.append(colored_text) + else: + raise NotImplementedError + + coverage_features = filter_out_nones(segment[2] for segment in segments) + coverage_features_set = filter_out_nones( + segment[3] for segment in segments + ) + vara_features = filter_out_nones(segment[4] for segment in segments) + + table[line_number] = TableEntry( + count, + "".join(colored_texts), + __feature_text([coverage_features]), + __feature_text(coverage_features_set), + __feature_text(vara_features), + ) + + return table + + +def __feature_text(iterable: tp.Iterable[tp.Iterable[str]]) -> str: + feature_buffer = set() + for x in iterable: + for feature in x: + if feature == "": + # Ignore empty buffer entries + continue + if feature.startswith("+"): + feature_buffer.add(_color_str(feature, colors.green)) + elif feature.startswith("-"): + feature_buffer.add(_color_str(feature, colors.red)) + else: + feature_buffer.add(feature) + return ', '.join(sorted(feature_buffer)) + + +def _cov_segments_function( + region: CodeRegion, lines: tp.Dict[int, str], buffer: SegmentBuffer, + feature_model: tp.Optional[Function] +) -> SegmentBuffer: + if not (region.start.line == 1 and region.start.column == 1): + # Add lines before region. + prev_line, prev_column = __get_previous_line_and_column( + region.start.line, region.start.column, lines + ) + buffer = __cov_fill_buffer( + end_line=prev_line, + end_column=prev_column, + count=None, + cov_features=None, + cov_features_set=None, + vara_features=None, + lines=lines, + buffer=buffer + ) + + buffer = _cov_segments_function_inner(region, lines, buffer, feature_model) + + return buffer + + +def _cov_segments_function_inner( + region: CodeRegion, lines: tp.Dict[int, str], buffer: SegmentBuffer, + feature_model: tp.Optional[Function] +) -> SegmentBuffer: + + # Add childs + for child in region.childs: + prev_line, prev_column = __get_previous_line_and_column( + child.start.line, child.start.column, lines + ) + next_line, next_column = __get_next_line_and_column(lines, buffer) + if not ( + next_line > prev_line or + next_line == prev_line and next_column >= prev_column + ): + # There is a gap until the next child begins that must be filled + buffer = __cov_fill_buffer( + end_line=prev_line, + end_column=prev_column, + count=region.count + if region.kind != CodeRegionKind.FILE_ROOT else None, + cov_features=region.coverage_features(feature_model), + cov_features_set=region.coverage_features_set(feature_model), + vara_features=region.vara_features(), + lines=lines, + buffer=buffer + ) + if child.kind in (CodeRegionKind.CODE, CodeRegionKind.EXPANSION): + buffer = _cov_segments_function_inner( + child, lines, buffer, feature_model + ) + elif child.kind == CodeRegionKind.GAP: + #child.count = None # type: ignore + buffer = _cov_segments_function_inner( + child, lines, buffer, feature_model + ) + elif child.kind == CodeRegionKind.SKIPPED: + child.count = None # type: ignore + buffer = _cov_segments_function_inner( + child, lines, buffer, feature_model + ) + else: + raise NotImplementedError + + # Add remaining region + buffer = __cov_fill_buffer( + end_line=region.end.line, + end_column=region.end.column, + count=region.count if region.kind != CodeRegionKind.FILE_ROOT else None, + cov_features=region.coverage_features(feature_model), + cov_features_set=region.coverage_features_set(feature_model), + vara_features=region.vara_features(), + lines=lines, + buffer=buffer + ) + + return buffer + + +def __cov_fill_buffer( + end_line: int, end_column: int, count: Count, + cov_features: CoverageFeatures, cov_features_set: CoverageFeaturesSet, + vara_features: VaraFeatures, lines: tp.Dict[int, str], buffer: SegmentBuffer +) -> SegmentBuffer: + + start_line, start_column = __get_next_line_and_column(lines, buffer) + + assert 1 <= start_line <= len(lines) + assert start_column >= 1 and start_column - 1 <= len(lines[start_line]) + assert 1 <= end_line <= len(lines) and end_line >= start_line + # LLVM coverage json for ect is buggy. + # https://github.com/fhanau/Efficient-Compression-Tool/blob/ + # 8a2a6b2a72a637aea2dad2540cc8d76308711078/src/lodepng/lodepng.cpp#L4370 + # Line 4370 only has length 1, + # but json says it goes until column 31. So ignore it. + # Probably should be line 4371! + if (start_line, start_column, end_line, end_column) != (4369, 4, 4370, 31): + assert end_column >= 1 and end_column - 1 <= len( + lines[end_line] + ), f"{start_line, start_column, end_line, end_column}" + assert (end_column >= start_column if start_line == end_line else True) + + for line_number in range(start_line, end_line + 1): + if line_number == start_line and line_number == end_line: + text = lines[line_number][start_column - 1:end_column - 1] + + elif line_number == start_line: + text = lines[line_number][start_column - 1:] + + elif line_number == end_line: + text = lines[line_number][:end_column - 1] + + else: + text = lines[line_number] + + buffer[line_number].append( + (count, text, cov_features, cov_features_set, vara_features) + ) + + return buffer + + +def __get_next_line_and_column(lines: tp.Dict[int, str], + buffer: SegmentBuffer) -> tp.Tuple[int, int]: + """ + Outputs the next line + column that is not yet in the buffer. + + Max ist last line + last_column of lines. + """ + last_line = len(buffer) + + if last_line == 0: + # Empty buffer, start at first line, first column + return 1, 1 + + len_line = len(lines[last_line]) + last_column = sum(map(lambda x: len(x[1]), buffer[last_line])) + + if last_column >= len_line and last_line < len(lines): + next_line = last_line + 1 + next_column = 1 + else: + next_line = last_line + next_column = min(last_column + 1, len_line) + + return next_line, next_column + + +def __get_previous_line_and_column( + line: int, column: int, lines: tp.Dict[int, str] +) -> tp.Tuple[int, int]: + assert line >= 2 + assert column >= 1 + if column - 1 == 0: + return line - 1, len(lines[line - 1]) + return line, column - 1 + + +ENABLE_COLOR = True + + +def _color_str(a: str, color: Color) -> tp.Any: + """Wraps the string inside the color characters.""" + if ENABLE_COLOR: + return color | a + return a + + +class DisableColor: + """Context manager to disable color temporarily.""" + + def __init__(self) -> None: + self.color_state = ENABLE_COLOR + + def __enter__(self) -> None: + global ENABLE_COLOR # pylint: disable=global-statement + ENABLE_COLOR = False + + def __exit__( + self, exc_type: tp.Optional[tp.Type[BaseException]], + exc_value: tp.Optional[BaseException], + exc_traceback: tp.Optional[TracebackType] + ) -> None: + global ENABLE_COLOR # pylint: disable=global-statement + ENABLE_COLOR = self.color_state diff --git a/varats/varats/experiments/vara/llvm_coverage_experiment.py b/varats/varats/experiments/vara/llvm_coverage_experiment.py new file mode 100644 index 000000000..71876e946 --- /dev/null +++ b/varats/varats/experiments/vara/llvm_coverage_experiment.py @@ -0,0 +1,360 @@ +""""Coverage experiment.""" + +import json +import typing as tp +from copy import deepcopy +from pathlib import Path +from shutil import copy +from tempfile import TemporaryDirectory + +from benchbuild import Project, watch +from benchbuild.command import cleanup, ProjectCommand +from benchbuild.extensions import compiler, run, time +from benchbuild.utils import actions +from benchbuild.utils.cmd import opt +from benchbuild.utils.requirements import Requirement, SlurmMem +from plumbum import local + +from varats.data.reports.llvm_coverage_report import CoverageReport +from varats.experiment.experiment_util import ( + VersionExperiment, + ExperimentHandle, + exec_func_with_pe_error_handler, + get_default_compile_error_wrapped, + create_default_analysis_failure_handler, + create_default_compiler_error_handler, + create_new_success_result_filepath, + wrap_unlimit_stack_size, + ZippedExperimentSteps, + OutputFolderStep, +) +from varats.experiment.wllvm import RunWLLVM, BCFileExtensions, Extract +from varats.experiment.workload_util import ( + workload_commands, + WorkloadCategory, + create_workload_specific_filename, +) +from varats.project.project_util import ProjectBinaryWrapper +from varats.project.varats_project import VProject +from varats.provider.feature.feature_model_provider import ( + FeatureModelNotFound, + FeatureModelProvider, +) +from varats.report.report import ReportSpecification +from varats.utils.config import get_extra_config_options, get_current_config_id + +BC_FILE_EXTENSIONS = [ + BCFileExtensions.NO_OPT, BCFileExtensions.TBAA, BCFileExtensions.FEATURE +] +TIMEOUT = "1h" + + +class SaveBCFiles(actions.ProjectStep): # type: ignore[misc] + """SaveBCFiles experiment.""" + + NAME = "SaveBCFiles" + DESCRIPTION = "Saves the BC files to a temporary directory." + + project: VProject + + def __init__( + self, + project: Project, + tmpdir: TemporaryDirectory[str], + ): + super().__init__(project=project) + self.tmpdir = tmpdir + + def __call__(self) -> actions.StepResult: + return self.analyze() + + def analyze(self) -> actions.StepResult: + """Saves the BC files to a temporary directory.""" + for binary in self.project.binaries: + bc_path = Path(self.project.source_of_primary) / f"{binary.path}.bc" + copy(bc_path, self.tmpdir.name) + + return actions.StepResult.OK + + +class CleanupTmpdir(actions.ProjectStep): # type: ignore[misc] + """SaveBCFiles experiment.""" + + NAME = "CleanupTmpdir" + DESCRIPTION = "Calls cleanup on a tmpdir" + + project: VProject + + def __init__( + self, + project: Project, + tmpdir: TemporaryDirectory[str], + ): + super().__init__(project=project) + self.tmpdir = tmpdir + + def __call__(self) -> actions.StepResult: + return self.analyze() + + def analyze(self) -> actions.StepResult: + self.tmpdir.cleanup() + + return actions.StepResult.OK + + +class GenerateCoverage(OutputFolderStep): # type: ignore[misc] + """GenerateCoverage experiment.""" + + NAME = "GenerateCoverage" + DESCRIPTION = ( + "Runs the instrumented binary file in \ + order to obtain the coverage information." + ) + + project: VProject + + def __init__( + self, + project: Project, + binary: ProjectBinaryWrapper, + workload_cmds: tp.List[ProjectCommand], + feature_model: Path, + bc_path: Path, + _experiment_handle: ExperimentHandle, + ): + super().__init__(project=project) + self.binary = binary + self.__workload_cmds = workload_cmds + self.__experiment_handle = _experiment_handle + self.__feature_model = feature_model + self.__bc_path = bc_path + + def call_with_output_folder(self, tmp_dir: Path) -> actions.StepResult: + return self.analyze(tmp_dir) + + def analyze(self, tmp_dir: Path) -> actions.StepResult: # pylint: disable=too-many-locals + """Runs project and export coverage information + bc files.""" + with local.cwd(self.project.builddir): + if not self.__workload_cmds: + # No workload to execute. + # Fail because we don't get any coverage data + return actions.StepResult.ERROR + extra_args = get_extra_config_options(self.project) + + profile_raw_names = [] + for prj_command in self.__workload_cmds: + cmd = prj_command.command + # seperate args in plumbum command + # otherwise overwrites potentially redirected stdout, stdin + pb_cmd = cmd.as_plumbum(project=self.project) + if hasattr(pb_cmd, "args"): + seperated_args = [] + for arg in pb_cmd.args: + if arg in extra_args: + seperated_args.extend(arg.split(' ', 1)) + else: + seperated_args.append(arg) + pb_cmd.args = seperated_args + + profile_raw_name = tmp_dir / create_workload_specific_filename( + "coverage_report", + prj_command.command, + file_suffix=f".{extra_args}.profraw" + ) + profile_raw_names.append(profile_raw_name) + run_cmd = pb_cmd.with_env(LLVM_PROFILE_FILE=profile_raw_name) + + with cleanup(prj_command): + if self.binary.valid_exit_codes: + # Expect correct return code + run_cmd(retcode=self.binary.valid_exit_codes) + else: + run_cmd() + + # Merge all profraws to profdata file + + profdata_name = ( + tmp_dir / f"coverage_report-llvm-prof.{extra_args}.profdata" + ) + json_name = tmp_dir / f"coverage_report-llvm-cov.{extra_args}.json" + + llvm_profdata = local["llvm-profdata"] + llvm_cov = local["llvm-cov"] + llvm_cov = llvm_cov["export", f"--instr-profile={profdata_name}", + Path(self.project.source_of_primary) / + self.binary.path] + + llvm_profdata("merge", *profile_raw_names, "-o", profdata_name) + (llvm_cov > str(json_name))() + + # Add absolute path to json to compute + # relative filenames later in the report + with open(json_name) as file: + coverage = json.load(file) + + coverage["absolute_path"] = str( + Path(self.project.source_of_primary).resolve() + ) + + with open(json_name, "w") as file: + json.dump(coverage, file) + + # Run Vara for analyzing binary + + ptfdd_report_name = tmp_dir / "coverage_report-vara_opt.ptfdd" + bc_name = tmp_dir / "coverage_report-vara_opt.bc" + copy(self.__bc_path, bc_name) + + # Copy FeatureModel.xml + model_name = tmp_dir / "coverage_report-vara-feature_model.xml" + copy(self.__feature_model, model_name) + + opt_command = opt["-enable-new-pm=0", "-vara-PTFDD", "-vara-FBFD", + "-vara-export-feature-dbg", + #"-vara-view-IRegions", + f"-vara-report-outfile={ptfdd_report_name}", "-S", + self.__bc_path] + + opt_command = wrap_unlimit_stack_size(opt_command) + opt_command = opt_command > f"{ptfdd_report_name}.log" + + exec_func_with_pe_error_handler( + opt_command, + create_default_analysis_failure_handler( + self.__experiment_handle, + self.project, + CoverageReport, + timeout_duration=TIMEOUT + ) + ) + + return actions.StepResult.OK + + +def get_feature_model_path(project: Project) -> Path: + """Return the path to the feature model or raise an exception.""" + # FeatureModelProvider + provider = FeatureModelProvider.create_provider_for_project(project) + if provider is None: + raise FeatureModelNotFound(project, None) + + path = provider.get_feature_model_path(project) + + if path is None or not path.exists(): + raise FeatureModelNotFound(project, path) + return path + + +class GenerateCoverageExperiment(VersionExperiment, shorthand="GenCov"): + """Generates empty report file.""" + + NAME = "GenerateCoverage" + + REPORT_SPEC = ReportSpecification(CoverageReport) + REQUIREMENTS: tp.List[Requirement] = [SlurmMem("20G")] + + def actions_for_project( + self, project: Project + ) -> tp.MutableSequence[actions.Step]: + """Returns the specified steps to run the project(s) specified in the + call in a fixed order.""" + + # Add the required runtime extensions to the project(s). + project.runtime_extension = ( + run.RuntimeExtension(project, self) << time.RunWithTime() + ) + + # Add the required compiler extensions to the project(s). + project.compiler_extension = ( + compiler.RunCompiler(project, self) << RunWLLVM() << + run.WithTimeout() + ) + + project.compile = get_default_compile_error_wrapped( + self.get_handle(), project, self.REPORT_SPEC.main_report + ) + + # Try, to build the project without optimizations to get more precise + # blame annotations. Note: this does not guarantee that a project is + # build without optimizations because the used build tool/script can + # still add optimizations flags after the experiment specified cflags. + #project.cflags += ["-O1", "-Xclang", "-disable-llvm-optzns", "-g"] + project.cflags += ["-O0", "-g", "-fno-exceptions"] + # Fix xz compiling in debian 10 + project.cflags += ["-fuse-ld=lld"] + # Fix ect compiling in debian 10 + project.ldflags += ["-lstdc++fs"] + + # Compile coverage instructions seperate. We don't want them in LLVM IR + project_coverage = deepcopy(project) + + # Activate source-based code coverage: + # https://clang.llvm.org/docs/SourceBasedCodeCoverage.html + project_coverage.cflags += [ + "-fprofile-instr-generate", "-fcoverage-mapping" + ] + + feature_model = get_feature_model_path(project).absolute() + # Get clang to output bc files with feature annotations + project.cflags += [ + "-fvara-feature", + f"-fvara-fm-path={feature_model}", + ] + + tmpdir = TemporaryDirectory() # pylint: disable=consider-using-with + + analysis_actions = [] + analysis_actions.append(actions.Compile(project)) + analysis_actions.append( + Extract( + project, + BC_FILE_EXTENSIONS, + handler=create_default_compiler_error_handler( + self.get_handle(), + project, + self.get_handle().report_spec().main_report, + ) + ) + ) + analysis_actions.append(SaveBCFiles(project, tmpdir)) + analysis_actions.append(actions.Clean(project)) + + project = project_coverage + analysis_actions.append(actions.MakeBuildDir(project)) + analysis_actions.append(actions.ProjectEnvironment(project)) + analysis_actions.append(actions.Compile(project)) + + # Only consider binaries with a workload + for binary in project.binaries: + workload_cmds = workload_commands( + project, + binary, + [WorkloadCategory.JAN] #[WorkloadCategory.JAN_2] + ) + if not workload_cmds: + continue + result_filepath = create_new_success_result_filepath( + self.get_handle(), + self.get_handle().report_spec().main_report, + project, + binary, + get_current_config_id(project), + ) + + analysis_actions.append(actions.Echo(result_filepath)) + bc_path = Path(tmpdir.name) / f"{binary.name}.bc" + analysis_actions.append( + ZippedExperimentSteps( + result_filepath, + [ + GenerateCoverage( + project, binary, workload_cmds, feature_model, + bc_path, self.get_handle() + ) + ], + ) + ) + analysis_actions.append(CleanupTmpdir(project, tmpdir)) + analysis_actions.append(actions.Clean(project)) + + return analysis_actions diff --git a/varats/varats/plots/llvm_coverage_plot.py b/varats/varats/plots/llvm_coverage_plot.py new file mode 100644 index 000000000..668cc09c9 --- /dev/null +++ b/varats/varats/plots/llvm_coverage_plot.py @@ -0,0 +1,1244 @@ +"""Display the coverage data.""" + +from __future__ import annotations + +import gc +import json +import os +import typing as tp +from collections import defaultdict +from concurrent.futures import ProcessPoolExecutor +from copy import deepcopy +from dataclasses import dataclass +from functools import reduce +from multiprocessing import get_context +from pathlib import Path + +import pandas as pd +from dd.autoref import Function # type: ignore [import] + +try: + from dd.cudd import BDD # type: ignore [import] +except ModuleNotFoundError: + from dd.autoref import BDD # type: ignore [import] + +from plumbum import local, ProcessExecutionError + +from varats.base.configuration import ( + Configuration, + PlainCommandlineConfiguration, +) +from varats.data.metrics import ConfusionMatrix +from varats.data.reports.llvm_coverage_report import ( + CodeRegion, + CodeRegionKind, + RegionEnd, + RegionStart, + CoverageReport, + cov_segments, + cov_show_segment_buffer, + create_bdd, + MeasureTime, + FileSegmentBufferMapping, +) +from varats.experiment.experiment_util import ZippedReportFolder +from varats.mapping.configuration_map import ConfigurationMap +from varats.paper.case_study import CaseStudy +from varats.paper.paper_config import get_loaded_paper_config +from varats.paper_mgmt.case_study import get_case_study_file_name_filter +from varats.plot.plot import Plot +from varats.plot.plots import PlotGenerator, PlotConfig +from varats.report.report import ReportFilepath +from varats.revision.revisions import get_processed_revisions_files +from varats.table.table_utils import dataframe_to_table +from varats.table.tables import TableFormat +from varats.ts_utils.click_param_types import ( + REQUIRE_MULTI_EXPERIMENT_TYPE, + REQUIRE_MULTI_CASE_STUDY, +) +from varats.utils.config import load_configuration_map_for_case_study +from varats.utils.git_util import FullCommitHash, RepositoryAtCommit + +ADDITIONAL_FEATURE_OPTION_MAPPING: tp.Dict[str, tp.Union[str, + tp.List[str]]] = {} + +TIMEOUT_SECONDS = 120 + +_IN = tp.TypeVar("_IN") +_OUT = tp.TypeVar("_OUT") + +INGORE_PARSING_CODE = [ + CodeRegion( + start=RegionStart(line=9, column=1), + end=RegionEnd(line=17, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="isFeatureEnabled", + filename="include/fpcsc/perf_util/feature_cmd.h" + ), + CodeRegion( + start=RegionStart(line=42, column=1), + end=RegionEnd(line=49, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="loadConfigFromArgv", + filename="src/SimpleFeatureInteraction/SFImain.cpp" + ), + CodeRegion( + start=RegionStart(line=7, column=1), + end=RegionEnd(line=9, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="enableCppFeature", + filename="src/MultiSharedMultipleRegions/FeatureHeader.cpp" + ), + CodeRegion( + start=RegionStart(line=8, column=1), + end=RegionEnd(line=10, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="enableExternFeature", + filename="src/MultiSharedMultipleRegions/FeatureHeader.h" + ), + CodeRegion( + start=RegionStart(line=11, column=66), + end=RegionEnd(line=13, column=4), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="isFeatureEnabled--slow", + filename="src/MultiSharedMultipleRegions/MSMRmain.cpp" + ), + CodeRegion( + start=RegionStart(line=15, column=68), + end=RegionEnd(line=17, column=4), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="isFeatureEnabled--header", + filename="src/MultiSharedMultipleRegions/MSMRmain.cpp" + ), + CodeRegion( + start=RegionStart(line=19, column=68), + end=RegionEnd(line=21, column=4), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="isFeatureEnabled--extern", + filename="src/MultiSharedMultipleRegions/MSMRmain.cpp" + ), + CodeRegion( + start=RegionStart(line=23, column=65), + end=RegionEnd(line=25, column=4), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="isFeatureEnabled--cpp", + filename="src/MultiSharedMultipleRegions/MSMRmain.cpp" + ), + # BZIP_2 + CodeRegion( + start=RegionStart(line=1838, column=1), + end=RegionEnd(line=1950, column=5), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="main--parsing", + filename="bzip2.c" + ), + # GZIP + CodeRegion( + start=RegionStart(line=469, column=1), + end=RegionEnd(line=630, column=1), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="main--parsing", + filename="gzip.c" + ), + + # PicoSAT + CodeRegion( + start=RegionStart(line=574, column=1), + end=RegionEnd(line=944, column=6), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="main--parsing-argv-for-loop", + filename="app.c" + ), + # XZ + CodeRegion( + start=RegionStart(line=1, column=1), + end=RegionEnd(line=363, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="complete file", + filename="src/xz/options.c" + ), + CodeRegion( + start=RegionStart(line=1, column=1), + end=RegionEnd(line=710, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="complete file", + filename="src/xz/args.c" + ), + # SynthIPRuntime + CodeRegion( + start=RegionStart(line=604, column=1), + end=RegionEnd(line=615, column=4), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="parsing-code", + filename="projects/SynthIPRuntime/main.cpp" + ), + # SynthDARecursion, SynthDADynamicDispatch, SynthOVInsideLoop, + # SynthSAWholeProgram, SynthSAFlowSensitivity, SynthSAContextSensitivity + CodeRegion( + start=RegionStart(line=1, column=1), + end=RegionEnd(line=55, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="complete file", + filename="external/FeaturePerfUtilities/include/fp_util/feature_cmd.h" + ), +] + +IGNORE_FEATURE_DEPENDENT_FUNCTIONS = [ + CodeRegion( + start=RegionStart(line=19, column=1), + end=RegionEnd(line=35, column=2), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="compress+addPadding+encrypt", + filename="src/SimpleFeatureInteraction/SFImain.cpp" + ), + #SynthIPRuntime + CodeRegion( + start=RegionStart(line=28, column=1), + end=RegionEnd(line=349, column=3), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="multiple functions + struct compress_t", + filename="projects/SynthIPRuntime/main.cpp" + ), + CodeRegion( + start=RegionStart(line=351, column=1), + end=RegionEnd(line=570, column=3), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="struct decompress_t", + filename="projects/SynthIPRuntime/main.cpp" + ), + #SynthDARecursion, + CodeRegion( + start=RegionStart(line=20, column=1), + end=RegionEnd(line=30, column=3), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="checkPalindrome", + filename="projects/SynthDARecursion/main.cpp" + ), + # SynthDADynamicDispatch + CodeRegion( + start=RegionStart(line=140, column=1), + end=RegionEnd(line=146, column=4), + count=-1, + kind=CodeRegionKind.FILE_ROOT, + function="parsing-code", + filename="projects/SynthDADynamicDispatch/main.cpp" + ), +] + +# Workaround BDD displaying equivalent but negated formula. +EXCLUDED_OPTIONS = { + # SynthDADynamicDispatch + #"brut-force": ["hashing", "sorting"], + #"hashing": ["brut-force", "sorting"], + #"sorting": ["hashing", "brut-force"], + + # SynthIPRuntime + #"d": ["c"], + #"c": ["d"], + #"1": ["d"], + #"2": ["d"], + + #SynthSAContextSensitivity + #"mem 0": ["mem 1020", "mem 1275", "mem 255", "mem 510", "mem 765"], + #"mem 1020": ["mem 0", "mem 1275", "mem 255", "mem 510", "mem 765"], + #"mem 1275": ["mem 1020", "mem 0", "mem 255", "mem 510", "mem 765"], + #"mem 255": ["mem 1020", "mem 1275", "mem 0", "mem 510", "mem 765"], + #"mem 510": ["mem 1020", "mem 1275", "mem 255", "mem 0", "mem 765"], + #"mem 765": ["mem 1020", "mem 1275", "mem 255", "mem 510", "mem 0"], + + # bzip2 + #"compress": ["decompress", "test"], + #"decompress": ["compress", "test"], + #"test": ["decompress", "compress"], + + # gzip + # No alternative options since compress cannot be explicitly enabled + # through command-line option + + # xz + "compress": ["decompress", "list", "test"], + "list": ["decompress", "compress", "test"], + "test": ["list", "compress"], + "decompress": ["list", "compress"], + "robot": ["compress", "decompress", "test"], + "format=auto": ["format=xz"], + "format=xz": ["format=auto"], +} + + +def _init_process() -> None: + from signal import SIGTERM # pylint: disable=import-outside-toplevel + + from pyprctl import set_pdeathsig # pylint: disable=import-outside-toplevel + + set_pdeathsig(SIGTERM) + gc.enable() + + +def optimized_map( + func: tp.Callable[[_IN], _OUT], + iterable: tp.Iterable[tp.Any], + count: int = os.cpu_count() or 1, + timeout: tp.Optional[int] = TIMEOUT_SECONDS +) -> tp.Iterable[_OUT]: + """Optimized map function.""" + + todo = list(iterable) + todo_len = len(todo) + if todo_len <= 1 or count == 1: + return map(func, todo) + + cpu_count = os.cpu_count() + assert cpu_count + max_workers = min(cpu_count, todo_len) + executor = ProcessPoolExecutor( + max_workers=max_workers, + initializer=_init_process, + mp_context=get_context("forkserver") + ) + result = list( + executor.map( + func, + todo, + timeout=timeout * + (todo_len / min(count, todo_len)) if timeout is not None else None, + ) + ) + executor.shutdown() + del executor + return result + + +def get_option_names(configuration: Configuration) -> tp.Iterable[str]: + return map(lambda option: option.name, configuration.options()) + + +def contains(configuration: Configuration, name: str, value: tp.Any) -> bool: + """Test if a the specified configuration options bool(value) matches + value.""" + for option in configuration.options(): + if option.name == name and bool(option.value) == value: + return True + return False + + +def available_features( + objs: tp.Union[tp.Iterable[CoverageReport], tp.Iterable[Configuration]] +) -> tp.Set[str]: + """Returns available features in all reports.""" + result = set() + for obj in objs: + config = obj if isinstance(obj, Configuration) else obj.configuration + if config is not None: + for feature in get_option_names(config): + result.add(feature) + return result + + +def coverage_missed_features( + features: tp.Set[str], code_region: CodeRegion, feature_model: Function +) -> tp.Set[str]: + return features.difference(code_region.coverage_features_set(feature_model)) + + +def coverage_found_features( + features: tp.Set[str], code_region: CodeRegion, feature_model: Function +) -> bool: + """Are features found by coverage data?""" + if not features: + return False + return len( + coverage_missed_features(features, code_region, feature_model) + ) == 0 + + +def vara_found_features( + features: tp.Set[str], code_region: CodeRegion, threshold: float, + feature_name_map: tp.Dict[str, tp.Set[str]] +) -> bool: + """Are features found by VaRA?""" + if not 0 <= threshold <= 1.0: + raise ValueError("Threshold must be between 0.0 and 1.0.") + if not features: + return False + + _vara_features = set() + for feature in features: + _vara_features.update(feature_name_map[feature]) + return 0 < code_region.features_threshold(_vara_features) >= threshold + + +def vara_features( + region: CodeRegion, feature_name_map: tp.Dict[str, tp.Set[str]], + threshold: float +) -> tp.Set[str]: + """Features found by VaRA.""" + found_vara_features = set() + for feature in region.vara_features(): + if 0 < region.features_threshold([feature]) >= threshold: + found_vara_features.update(feature_name_map[feature]) + return found_vara_features + + +def coverage_vara_features_combined( + region: CodeRegion, feature_name_map: tp.Dict[str, tp.Set[str]], + feature_model: Function, threshold: float +) -> tp.Set[str]: + """Features found by coverage data and VaRA combined.""" + found_vara_features = vara_features(region, feature_name_map, threshold) + return region.coverage_features_set(feature_model + ).union(found_vara_features) + + +def _matrix_analyze_code_region( + feature: str, code_region: CodeRegion, + feature_name_map: tp.Dict[str, tp.Set[str]], feature_model: Function, + threshold: float, file: str, coverage_feature_regions: tp.List[tp.Any], + coverage_normal_regions: tp.List[tp.Any], + vara_feature_regions: tp.List[tp.Any], vara_normal_regions: tp.List[tp.Any] +) -> None: + for region in code_region.iter_breadth_first(): + # Skip ignored regions + if region.ignore: + continue + if feature == "__coverage__": + # Only consider coverage features + features = region.coverage_features_set(feature_model) + elif feature == "__vara__": + # Only consider vara features. + features = vara_features(region, feature_name_map, threshold) + elif feature == "__both__": + # Compare all coverage and all vara features with each other + features = coverage_vara_features_combined( + region, feature_name_map, feature_model, threshold + ) + else: + # Consider only single feature + features = {feature} + + feature_entry = ConfusionEntry( + str(features), file, region.function, region.start.line, + region.start.column, region.end.line, region.end.column, + tuple(str(x) for x in region.vara_instrs) + ) + + if coverage_found_features(features, region, feature_model): + coverage_feature_regions.append(feature_entry) + else: + coverage_normal_regions.append(feature_entry) + if vara_found_features(features, region, threshold, feature_name_map): + vara_feature_regions.append(feature_entry) + else: + vara_normal_regions.append(feature_entry) + + +def _compute_confusion_matrix( + feature: str, + feature_report: CoverageReport, + feature_name_map: tp.Dict[str, tp.Set[str]], + threshold: float = 1.0 +) -> ConfusionMatrix[ConfusionEntry]: + coverage_feature_regions: tp.List[tp.Any] = [] + coverage_normal_regions: tp.List[tp.Any] = [] + vara_feature_regions: tp.List[tp.Any] = [] + vara_normal_regions: tp.List[tp.Any] = [] + + feature_model = feature_report.feature_model + assert feature_model is not None + + for file, code_region in feature_report.tree.items(): + _matrix_analyze_code_region( + feature, code_region, feature_name_map, feature_model, threshold, + file, coverage_feature_regions, coverage_normal_regions, + vara_feature_regions, vara_normal_regions + ) + + return ConfusionMatrix( + actual_positive_values=coverage_feature_regions, + actual_negative_values=coverage_normal_regions, + predicted_positive_values=vara_feature_regions, + predicted_negative_values=vara_normal_regions + ) + + +def _compute_total_confusion_matrix( + features: tp.List[str], + feature_report: CoverageReport, + feature_name_map: tp.Dict[str, tp.Set[str]], + threshold: float = 1.0 +) -> ConfusionMatrix[ConfusionEntry]: + coverage_feature_regions: tp.List[tp.Any] = [] + coverage_normal_regions: tp.List[tp.Any] = [] + vara_feature_regions: tp.List[tp.Any] = [] + vara_normal_regions: tp.List[tp.Any] = [] + + feature_model = feature_report.feature_model + assert feature_model is not None + + for feature in features: + for file, code_region in feature_report.tree.items(): + _matrix_analyze_code_region( + feature, code_region, feature_name_map, feature_model, + threshold, file, coverage_feature_regions, + coverage_normal_regions, vara_feature_regions, + vara_normal_regions + ) + + return ConfusionMatrix( + actual_positive_values=coverage_feature_regions, + actual_negative_values=coverage_normal_regions, + predicted_positive_values=vara_feature_regions, + predicted_negative_values=vara_normal_regions + ) + + +def _extract_feature_option_mapping( + xml_file: Path +) -> tp.Dict[str, tp.Union[str, tp.List[str]]]: + with local.cwd(Path(__file__).parent.parent.parent.parent): + try: + output = local["myscripts/feature_option_mapping.py"](xml_file) + except ProcessExecutionError as err: + # vara-feature probably not installed + print(err) + return {} + return json.loads(output) # type: ignore [no-any-return] + + +def __parse_dnf_str_to_func(dnf: str, bdd: BDD) -> Function: + or_parts = dnf.split("|") + ands = [] + for and_str in or_parts: + and_parts = and_str.strip().lstrip("(").rstrip(")").split("&") + and_expr = [] + for var_str in and_parts: + var = var_str.strip().split("~") + if len(var) == 1: + bdd.declare(var[0]) + variable = bdd.var(var[0]) + and_expr.append(variable) + elif len(var) == 2 and var[0] == "": + bdd.declare(var[1]) + variable = bdd.var(var[1]) + and_expr.append(~variable) + else: + raise ValueError(f"Invalid variable: {var}") + ands.append(reduce(lambda x, y: x & y, and_expr)) + + return reduce(lambda x, y: x | y, ands) + + +def _extract_feature_model_formula(xml_file: Path) -> Function: + bdd = create_bdd() + with local.cwd(Path(__file__).parent.parent.parent.parent): + try: + output = local["myscripts/feature_model_formula.py"]( + xml_file, timeout=TIMEOUT_SECONDS + ) + except ProcessExecutionError as err: + # vara-feature probably not installed + print(err) + return bdd.true + + func = __parse_dnf_str_to_func(output, bdd) + if func == bdd.false: + raise ValueError("Feature model equals false!") + return func + + +def _config_to_func(config: Configuration) -> Function: + bdd = create_bdd() + func = bdd.true + for option in config.options(): + bdd.declare(option.name) + var = bdd.var(option.name) + if option.value: + func &= var + else: + func &= ~var + return func + + +def _annotate_covered( + args: tp.Tuple[CoverageReport, frozenset[str], tp.Dict[str, tp.Set[str]]] +) -> CoverageReport: + report, all_options, feature_option_mapping = args + configuration = report.configuration + assert configuration is not None + + # Set not set features in configuration to false + for option in all_options: + if option not in get_option_names(configuration): + # Exclude options with other values already set + features = list(feature_option_mapping[option]) + if features: + assert len(features) == 1 + options = feature_option_mapping[features[0]] + if len(options) > 1: + continue + if option in EXCLUDED_OPTIONS: + # Check if other excluded options are set. + if set(EXCLUDED_OPTIONS[option] + ).intersection(set(get_option_names(configuration))): + continue + configuration.set_config_option(option, False) + + report.annotate_covered(_config_to_func(configuration)) + + return report + + +class CoverageReports: + """Helper class to work with a list of coverage reports.""" + + def __init__(self, reports: tp.List[CoverageReport]) -> None: + super().__init__() + + # Check if all equal + if not reports: + raise ValueError("No reports given!") + + self.available_features = frozenset(available_features(reports)) + self._feature_model: tp.Optional[Function] = None + self._feature_option_mapping: tp.Optional[tp.Dict[str, + tp.Set[str]]] = None + self._feature_report: tp.Optional[CoverageReport] = None + + # Check all reports have same feature model + self._reports = reports + self._reference = self._reports[0] + for report in self._reports[1:]: + if self._reference.feature_model_xml != report.feature_model_xml: + raise ValueError( + "CoverageReports have different feature models!" + ) + + feature_option_mapping = self.feature_option_mapping() + to_process = [(report, self.available_features, feature_option_mapping) + for report in reports] + + self._reports = list(map( + _annotate_covered, + to_process, + )) + self._reference = self._reports[0] + + def __bidirectional_map( + self, mapping: tp.Dict[str, tp.Union[str, tp.List[str]]] + ) -> tp.Dict[str, tp.Set[str]]: + result = defaultdict(set) + for key, value in list(mapping.items()): + if isinstance(value, list): + for x in value: + result[key].add(x.lstrip("-")) + result[x.lstrip("-")].add(key) + else: + result[key].add(value.lstrip("-")) + result[value.lstrip("-")].add(key) + print(f"Bidirectional FeatureOptionMapping: {result}") + return result + + def feature_option_mapping( + self, + additional_info: tp.Optional[tp.Dict[str, + tp.Union[str, + tp.List[str]]]] = None + ) -> tp.Dict[str, tp.Set[str]]: + """Converts feature model mapping to biderectional mapping.""" + if self._feature_option_mapping is not None and additional_info is None: + return self._feature_option_mapping + + mapping = {} + if additional_info: + mapping.update(additional_info) + + with MeasureTime("FeatureOptionMapping", "Extracting..."): + with self._reference.create_feature_xml() as xml_file: + feature_option_mapping = _extract_feature_option_mapping( + xml_file + ) + + mapping.update(feature_option_mapping) + self._feature_option_mapping = self.__bidirectional_map(mapping) + return self._feature_option_mapping + + def feature_model(self) -> Function: + """Returns feature model for coverage reports.""" + if self._feature_model is not None: + return self._feature_model + + with MeasureTime("FeatureModelFormula", "Extracting..."): + with self._reference.create_feature_xml() as xml_file: + self._feature_model = _extract_feature_model_formula(xml_file) + + return self._feature_model + + def feature_report( + self, + ignore_conditions: bool = True, + ignore_parsing_code: bool = True, + ignore_feature_dependent_functions: bool = True, + ) -> CoverageReport: + """Creates a Coverage Report with all features annotated.""" + if self._feature_report is not None: + result = self._feature_report + else: + with MeasureTime("FeatureReport", "Calculating..."): + result = reduce( + lambda x, y: x.combine_features(y), self._reports + ) + result.feature_model = self.feature_model() + + result.parse_instrs(ignore_conditions) + result.clean_ignored_regions() + + ignore_regions = [] + if ignore_parsing_code: + ignore_regions.extend(INGORE_PARSING_CODE) + if ignore_feature_dependent_functions: + ignore_regions.extend(IGNORE_FEATURE_DEPENDENT_FUNCTIONS) + + if ignore_regions: + result.mark_regions_ignored(ignore_regions) + + if self._feature_report is None: + self._feature_report = result + + return result + + def feature_segments( + self, base_dir: Path, **kwargs: tp.Any + ) -> FileSegmentBufferMapping: + """Returns segments annotated with corresponding feature + combinations.""" + + feature_report = self.feature_report(**kwargs) + assert feature_report.feature_model is not None + + return cov_segments(feature_report, base_dir) + + def confusion_matrices( + self, + feature_name_map: tp.Dict[str, tp.Set[str]], + threshold: float = 1.0, + **kwargs: tp.Any + ) -> tp.Dict[str, ConfusionMatrix[ConfusionEntry]]: + """Returns the confusion matrices.""" + + report = self.feature_report(**kwargs) + + result = {} + # Iterate over feature_report and compare vara to coverage features + features = sorted(self.available_features) + for feature in features: + result[feature] = _compute_confusion_matrix( + feature, report, feature_name_map, threshold + ) + + # Sanity checking all matrices have equal number of code regions + numbers = set() + for matrix in result.values(): + total = 0 + total += matrix.TP + total += matrix.TN + total += matrix.FP + total += matrix.FN + numbers.add(total) + assert len(numbers) == 1 + + result["TOTAL"] = _compute_total_confusion_matrix( + features, report, feature_name_map, threshold + ) + + result["all-coverage"] = _compute_confusion_matrix( + "__coverage__", report, feature_name_map, threshold + ) + + result["all-vara"] = _compute_confusion_matrix( + "__vara__", report, feature_name_map, threshold + ) + + result["all-both"] = _compute_confusion_matrix( + "__both__", report, feature_name_map, threshold + ) + + print(result) + return result + + +@dataclass(frozen=True) +class ConfusionEntry: # pylint: disable=too-many-instance-attributes + """Entry in confusion matrix.""" + feature: str + file: str + function: str + start_line: int + start_column: int + end_line: int + end_column: int + instrs: tp.Optional[tp.Tuple[str, ...]] = None + + +BinaryReportsMapping = tp.NewType( + "BinaryReportsMapping", tp.DefaultDict[str, tp.List[CoverageReport]] +) + + +def _process_report_file( + args: tp.Tuple[ConfigurationMap, ReportFilepath, Path] +) -> tp.Tuple[str, CoverageReport]: + config_map, report_filepath, base_dir = args + + binary = report_filepath.report_filename.binary_name + config_id = report_filepath.report_filename.config_id + if config_id is None: + raise ValueError("config_id is None!") + + with MeasureTime(f"Config ID {config_id}", "Parsing..."): + config = config_map.get_configuration(config_id) + if config is None: + raise ValueError("config is None!") + + coverage_report = CoverageReport.from_report( + report_filepath.full_path(), + config, + base_dir, + ) + coverage_report.parse_instrs(False) + return binary, coverage_report + + +def _save_plot( + reports: CoverageReports, binary_dir: Path, base_dir: Path, + **workarounds: bool +) -> None: + name = "enabled_workarounds" + text = ', '.join( + workaround for workaround, value in workarounds.items() if value + ).replace('_', '-') + + workaround_dir = binary_dir / f"{name}: {text}" + workaround_dir.mkdir(parents=True) + + feature_annotations = \ + workaround_dir / "feature_annotations.txt" + + _plot_coverage_annotations( + reports, base_dir, feature_annotations, workarounds + ) + + print( + cov_show_segment_buffer( + reports.feature_segments(base_dir, **workarounds), + show_counts=False, + show_coverage_features=True, + show_coverage_feature_set=True, + show_vara_features=True + ) + ) + + _plot_confusion_matrix( + reports, + workaround_dir, + workarounds, + columns={ + "TP": "\\ac{TP}", + "FN": "\\ac{FN}", + "FP": "\\ac{FP}", + "TN": "\\ac{TN}", + "accuracy": "_Accuracy (\\%)", + "precision": "\\ac{PPV} (\\%)", + "recall": "\\ac{TPR} (\\%)", + "specificity": "\\ac{TNR} (\\%)", + "balanced_accuracy": "\\ac{BA} (\\%)", + "f1_score": "_F1 Score (\\%)", + } + ) + + +class CoveragePlot(Plot, plot_name="coverage"): + """Plot to visualize coverage diffs.""" + + def __init__( + self, plot_config: PlotConfig, *args: tp.List[tp.Any], **kwargs: tp.Any + ) -> None: + super().__init__(plot_config, *args, **kwargs) + self.workarounds = [ + "ignore_conditions", "ignore_parsing_code", + "ignore_feature_dependent_functions" + ] + + def _get_binary_reports_map( + self, + case_study: CaseStudy, + report_files: tp.List[ReportFilepath], + base_dir: Path, + ) -> tp.Optional[BinaryReportsMapping]: + try: + config_map = load_configuration_map_for_case_study( + get_loaded_paper_config(), case_study, + PlainCommandlineConfiguration + ) + except StopIteration: + return None + + binary_reports_map: BinaryReportsMapping = BinaryReportsMapping( + defaultdict(list) + ) + + to_process = [ + (config_map, report_file, base_dir) for report_file in report_files + ] + + processed = optimized_map( + _process_report_file, + to_process, + ) + for binary, coverage_report in processed: + binary_reports_map[binary].append(coverage_report) + + return binary_reports_map + + def plot(self, view_mode: bool) -> None: + pass + + def save(self, plot_dir: Path, filetype: str = 'zip') -> None: + if len(self.plot_kwargs["experiment_type"]) > 1: + print( + "Plot can currently only handle a single experiment, " + "ignoring everything else." + ) + + case_study = self.plot_kwargs["case_study"] + + project_name = case_study.project_name + + report_files = get_processed_revisions_files( + project_name, + self.plot_kwargs["experiment_type"][0], + CoverageReport, + get_case_study_file_name_filter(case_study), + only_newest=False, + ) + + revisions = defaultdict(list) + for report_file in report_files: + revision = report_file.report_filename.commit_hash + revisions[revision].append(report_file) + + for revision in list(revisions): + zip_file = plot_dir / self.plot_file_name("zip") + with ZippedReportFolder(zip_file) as tmpdir: + with RepositoryAtCommit(project_name, revision) as base_dir: + workarounds = dict( + (workaround, False) for workaround in self.workarounds + ) + # Disable Python's GC to speed up plotting + gc.disable() + binary_reports_map = self._get_binary_reports_map( + case_study, + revisions[revision], + base_dir, + ) + + if not binary_reports_map: + raise ValueError( + "Cannot load configs for case study '" + + case_study.project_name + "'! " + + "Have you set configs in your case study file?" + ) + + tmp_dir = Path(tmpdir) / f"{revision}" + for binary in binary_reports_map: + reports = CoverageReports(binary_reports_map[binary]) + + binary_dir = tmp_dir / binary + for workaround in self.workarounds + [""]: + _save_plot( + reports, binary_dir, base_dir, **workarounds + ) + if workaround: + workarounds[workaround] = True + # Allow binary_reports_map to be freed + del binary_reports_map + gc.enable() + + def calc_missing_revisions( + self, boundary_gradient: float + ) -> tp.Set[FullCommitHash]: + raise NotImplementedError + + +def _plot_coverage_annotations( + reports: CoverageReports, base_dir: Path, outfile: Path, + workarounds: tp.Dict[str, bool] +) -> None: + with outfile.open("w") as output: + output.write( + cov_show_segment_buffer( + reports.feature_segments(base_dir, **workarounds), + show_counts=False, + show_coverage_features=True, + show_coverage_feature_set=True, + show_vara_features=True, + save_to_dir=outfile.with_name("feature_annotations") + ) + ) + + +def _get_matrix_fields( + matrix: ConfusionMatrix[ConfusionEntry], fields: tp.List[str] +) -> tp.List[str]: + result = [] + for field in fields: + attribute = getattr(matrix, field) + if hasattr(attribute, "__call__"): + result.append(attribute() * 100) + else: + result.append(f"${attribute}$") + return result + + +def __threshold_to_text(threshold: float) -> str: + if threshold == 0.0: + return f">{int(threshold*100)}" + return f"{int(threshold*100)}" + + +def __get_df_columns(columns: tp.Dict[str, str]) -> tp.List[str]: + return list(value.lstrip("_") for value in columns.values()) + + +def __plot_confusion_matrix_inner( + reports: CoverageReports, threshold: float, cf_dir: Path, + workarounds: tp.Dict[str, bool], columns: tp.Dict[str, str] +) -> pd.DataFrame: + + feature_option_mapping = reports.feature_option_mapping( + ADDITIONAL_FEATURE_OPTION_MAPPING + ) + + matrix_dict = reports.confusion_matrices( + feature_option_mapping, threshold, **workarounds + ) + + def str_with_instrs(entries: tp.Set[ConfusionEntry]) -> tp.List[str]: + out = [] + for entry in entries: + assert entry.instrs is not None + out.append( + f"ConfusionEntry(feature={entry.feature}, " + f"file={entry.file}, " + f"function={entry.function}, " + f"start_line={entry.start_line}, " + f"start_column={entry.start_column}, " + f"end_line={entry.end_line}, " + f"end_column={entry.end_column}, " + f"instrs:\n{chr(10).join(entry.instrs)})" + ) + return out + + def str_wo_instrs(entries: tp.Set[ConfusionEntry]) -> tp.List[str]: + out = [] + for entry in entries: + out.append( + f"ConfusionEntry(feature={entry.feature}, " + f"file={entry.file}, " + f"function={entry.function}, " + f"start_line={entry.start_line}, " + f"start_column={entry.start_column}, " + f"end_line={entry.end_line}, " + f"end_column={entry.end_column})" + ) + return out + + rows = [] + for feature in matrix_dict: + outfile = cf_dir / f"{feature}.matrix" + matrix = matrix_dict[feature] + with outfile.open("w") as output: + output.write(f"{matrix}\n") + tps = str_wo_instrs(matrix.getTPs()) + output.write(f"True Positives:\n{chr(10).join(sorted(tps))}\n") + tns = str_wo_instrs(matrix.getTNs()) + output.write(f"True Negatives:\n{chr(10).join(sorted(tns))}\n") + fps = str_with_instrs(matrix.getFPs()) + output.write(f"False Positives:\n{chr(10).join(sorted(fps))}\n") + fns = str_with_instrs(matrix.getFNs()) + output.write(f"False Negatives:\n{chr(10).join(sorted(fns))}\n") + + row: tp.List[tp.Union[str, int, float]] = [f"{feature}"] + row.extend(_get_matrix_fields(matrix, list(columns))) + rows.append(row) + + df = pd.DataFrame( + columns=["Feature"] + __get_df_columns(columns), data=rows + ) + df.set_index("Feature", inplace=True) + return df + + +def _plot_confusion_matrix( + reports: CoverageReports, + outdir: Path, + workarounds: tp.Dict[str, bool], + columns: tp.Optional[tp.Dict[str, str]] = None +) -> None: + + if columns is None: + columns = { + "TP": "True Positives (TP)", + "FN": "False Negatives (FN)", + "FP": "False Positives (FP)", + "TN": "True Negatives (TN)" + } + + base_dir = reports.feature_report().base_dir + project_name = base_dir.name if base_dir is not None else 'Unknown' + + dataframes = {} + for threshold in [0.0, 1.0]: + threshold_text = __threshold_to_text(threshold) + cf_dir = outdir / f"threshold: {threshold_text}%" + cf_dir.mkdir() + + df = __plot_confusion_matrix_inner( + reports, threshold, cf_dir, workarounds, columns + ) + + threshold_percent = f"\\qty{{{threshold_text}}}{{\\percent}}" + dataframes[threshold_percent] = df + + table = _dataframe_to_latex( + df, + project_name, + list(columns.values()), + workarounds, + threshold_caption=threshold_percent, + threshold_label=f"_{threshold_text}" + ) + print(table) + + outfile = cf_dir / "cofusion_matrix_table.tex" + outfile.write_text(data=table, encoding="utf-8") + + # Combine different thresholds in one table + thresholds = list(dataframes) + features = list(df.index) + combined_df = pd.DataFrame( + columns=__get_df_columns(columns), + index=pd.MultiIndex.from_product([features, thresholds], + names=["Feature", "Threshold"]) + ) + for feature, threshold_percent in combined_df.index: + for column in combined_df.keys(): + combined_df.loc[feature, threshold_percent][column] = dataframes[ + threshold_percent].loc[feature][column] + column_values = list(columns.values()) + column_values.insert(1, "Threshold") + table = _dataframe_to_latex( + combined_df, project_name, column_values, workarounds + ) + print(table) + + outfile = outdir / "cofusion_matrix_table_threshold_combined.tex" + outfile.write_text(data=table, encoding="utf-8") + + +def _dataframe_to_latex( + df: pd.DataFrame, + project_name: str, + columns: tp.List[str], + workarounds: tp.Dict[str, bool], + threshold_caption: str = "", + threshold_label: str = "" +) -> str: + caption_text = f"{project_name}: " + if workarounds: + text = ', '.join( + workaround for workaround, enabled in workarounds.items() if enabled + ).replace('_', '-') + workaround_text = f"workarounds: {text}" + caption_text += f"{workaround_text}" + if threshold_caption: + caption_text += f", threshold: {threshold_caption}." + + column_format = "l" + for column_text in columns: + if column_text.startswith("_"): + column_format += "H" + elif "%" in column_text: + column_format += "S" + else: + column_format += "c" + table = dataframe_to_table( + df, + table_format=TableFormat.LATEX_BOOKTABS, + style=df.style.format(thousands=r"\,", + precision=2).set_caption(caption_text), + wrap_table=False, + wrap_landscape=False, + hrules=True, + column_format=column_format, + position="htbp", + position_float="centering", + label=f"table:{project_name}:{workaround_text}{threshold_label}", + siunitx=True, + sparse_columns=True, + ) + + # Add midline befor TOTAL and comment rows after total. + table_lines = [] + found_total = False + last_line = "" + for line in table.splitlines(): + if "TOTAL" in line: + found_total = True + table_lines.append("\\midrule") + table_lines.append(line) + else: + if found_total and "&" in line and "TOTAL" not in last_line: + table_lines.append(f"%{line}") + elif "TOTAL" in last_line and not line.startswith(" &"): + table_lines.append(f"%{line}") + else: + table_lines.append(line) + last_line = line + + table_lines.insert(-1, "\\tablelegend") + return "\n".join(table_lines) + + +class CoveragePlotGenerator( + PlotGenerator, + generator_name="coverage", + options=[REQUIRE_MULTI_EXPERIMENT_TYPE, REQUIRE_MULTI_CASE_STUDY], +): + """Generates repo-churn plot(s) for the selected case study(ies).""" + + def generate(self) -> tp.List[Plot]: + result: tp.List[Plot] = [] + for case_study in self.plot_kwargs["case_study"]: + plot_kwargs = deepcopy(self.plot_kwargs) + plot_kwargs["case_study"] = deepcopy(case_study) + result.append(CoveragePlot(self.plot_config, **plot_kwargs)) + return result diff --git a/varats/varats/projects/c_projects/bzip2.py b/varats/varats/projects/c_projects/bzip2.py index 150e364a8..0a8476168 100644 --- a/varats/varats/projects/c_projects/bzip2.py +++ b/varats/varats/projects/c_projects/bzip2.py @@ -11,7 +11,11 @@ from plumbum import local from varats.containers.containers import ImageBase, get_base_image -from varats.experiment.workload_util import RSBinary, WorkloadCategory +from varats.experiment.workload_util import ( + RSBinary, + WorkloadCategory, + ConfigParams, +) from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains from varats.project.project_util import ( @@ -47,6 +51,7 @@ class Bzip2(VProject): limit=None, shallow=False ), + FeatureSource(), HTTPMultiple( local="geo-maps", remote={ @@ -54,9 +59,16 @@ class Bzip2(VProject): "https://github.com/simonepri/geo-maps/releases/" "download/v0.6.0" }, + files=["countries-land-250m.geo.json"] + ), + HTTPMultiple( + local="xz_files", + remote={ + "1.0": + "https://github.com/xz-mirror/xz/releases/download/v5.4.0" + }, files=[ - "countries-land-1m.geo.json", "countries-land-10m.geo.json", - "countries-land-100m.geo.json" + "xz-5.4.0.tar.bz2", ] ), FeatureSource(), @@ -131,6 +143,28 @@ class Bzip2(VProject): requires_all_args={"--decompress"} ) ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("bzip2") / RSBinary("bzip2"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("geo-maps/countries-land-250m.geo.json"), + label="countries-land-250m-compress", + creates=["geo-maps/countries-land-250m.geo.json.bz2"], + consumes=["geo-maps/countries-land-250m.geo.json"], + requires_all_args={"--compress"}, + ), + VCommand( + SourceRoot("bzip2") / RSBinary("bzip2"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("xz_files/xz-5.4.0.tar.bz2"), + label="xz-files-compressed", + creates=["xz_files/xz-5.4.0.tar"], + consumes=["xz_files/xz-5.4.0.tar.bz2"], + requires_any_args={"--decompress", "--test"} + ), + ], } @staticmethod diff --git a/varats/varats/projects/c_projects/gzip.py b/varats/varats/projects/c_projects/gzip.py index f3b2a106d..8b2a7a029 100644 --- a/varats/varats/projects/c_projects/gzip.py +++ b/varats/varats/projects/c_projects/gzip.py @@ -11,10 +11,13 @@ from plumbum import local from varats.containers.containers import get_base_image, ImageBase -from varats.experiment.workload_util import RSBinary, WorkloadCategory -from varats.paper.paper_config import ( +from varats.experiment.workload_util import ( + RSBinary, + WorkloadCategory, + ConfigParams, +) +from varats.paper.paper_config import ( # project_filter_generator, PaperConfigSpecificGit, - project_filter_generator, ) from varats.project.project_domain import ProjectDomains from varats.project.project_util import ( @@ -24,6 +27,8 @@ get_local_project_git_path, verify_binaries, ) +from varats.project.sources import FeatureSource +from varats.project.varats_command import VCommand from varats.project.varats_project import VProject from varats.provider.release.release_provider import ( ReleaseProviderHook, @@ -55,21 +60,22 @@ class Gzip(VProject, ReleaseProviderHook): ])( PaperConfigSpecificGit( project_name="gzip", - remote="https://github.com/vulder/gzip.git", + remote="https://github.com/danjujan/gzip.git", local="gzip", refspec="origin/HEAD", limit=None, shallow=False ) ), - bb.source.GitSubmodule( - remote="https://github.com/coreutils/gnulib.git", - local="gzip/gnulib", - refspec="origin/HEAD", - limit=None, - shallow=False, - version_filter=project_filter_generator("gzip") - ), + #bb.source.GitSubmodule( + # remote="https://github.com/coreutils/gnulib.git", + # local="gzip/gnulib", + # refspec="origin/HEAD", + # limit=None, + # shallow=False, + # version_filter=project_filter_generator("gzip") + #), + FeatureSource(), HTTPMultiple( local="geo-maps", remote={ @@ -77,7 +83,17 @@ class Gzip(VProject, ReleaseProviderHook): "https://github.com/simonepri/geo-maps/releases/" "download/v0.6.0" }, - files=["countries-land-1km.geo.json", "countries-land-1m.geo.json"] + files=["countries-land-250m.geo.json"] + ), + HTTPMultiple( + local="xz_files", + remote={ + "1.0": + "https://github.com/xz-mirror/xz/releases/download/v5.4.0" + }, + files=[ + "xz-5.4.0.tar.gz", + ] ) ] @@ -110,6 +126,28 @@ class Gzip(VProject, ReleaseProviderHook): creates=["geo-maps/countries-land-1m.geo.json.gz"] ) ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("gzip") / RSBinary("gzip"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("geo-maps/countries-land-250m.geo.json"), + label="countries-land-250m-compress", + creates=["geo-maps/countries-land-250m.geo.json.gz"], + consumes=["geo-maps/countries-land-250m.geo.json"], + requires_not_args={"--decompress", "--test", "--list"}, + ), + VCommand( + SourceRoot("gzip") / RSBinary("gzip"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("xz_files/xz-5.4.0.tar.gz"), + label="xz-files-compressed", + creates=["xz_files/xz-5.4.0.tar"], + consumes=["xz_files/xz-5.4.0.tar.gz"], + requires_any_args={"--decompress", "--test", "--list"} + ), + ], } @staticmethod diff --git a/varats/varats/projects/c_projects/picosat.py b/varats/varats/projects/c_projects/picosat.py index 71de307e6..dd34671df 100644 --- a/varats/varats/projects/c_projects/picosat.py +++ b/varats/varats/projects/c_projects/picosat.py @@ -4,13 +4,17 @@ import benchbuild as bb from benchbuild.command import WorkloadSet, Command, SourceRoot -from benchbuild.source import HTTP -from benchbuild.source.http import HTTPUntar +from benchbuild.source import HTTP, HTTPUntar from benchbuild.utils.cmd import make from benchbuild.utils.settings import get_number_of_jobs from plumbum import local -from varats.experiment.workload_util import RSBinary, WorkloadCategory +from varats.containers.containers import ImageBase, get_base_image +from varats.experiment.workload_util import ( + RSBinary, + WorkloadCategory, + ConfigParams, +) from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains from varats.project.project_util import ( @@ -21,6 +25,7 @@ verify_binaries, ) from varats.project.sources import FeatureSource +from varats.project.varats_command import VCommand from varats.project.varats_project import VProject from varats.provider.release.release_provider import ( ReleaseProviderHook, @@ -53,19 +58,21 @@ class PicoSAT(VProject, ReleaseProviderHook): ), FeatureSource(), HTTP( - local="example.cnf", + local="aim-100-1_6-no-1.cnf", remote={ "1.0": - "https://github.com/se-sic/picoSAT-mirror/releases/" - "download/picoSAT-965/example.cnf" + "https://raw.githubusercontent.com/mitchellh/go-sat/" + "fc0e735aff48989326f256121b5ed6fc585858c3/testdata/" + "satlib/file-dimacs-aim/aim-100-1_6-no-1.cnf" } ), - HTTPUntar( - local="abw-N-bcsstk07.mtx-w44.cnf", + HTTP( + local="aim-100-1_6-yes1-1.cnf", remote={ "1.0": - "https://github.com/se-sic/picoSAT-mirror/releases/" - "download/picoSAT-965/abw-N-bcsstk07.mtx-w44.cnf.tar.gz" + "https://raw.githubusercontent.com/mitchellh/go-sat/" + "fc0e735aff48989326f256121b5ed6fc585858c3/testdata/" + "satlib/file-dimacs-aim/aim-100-1_6-yes1-1.cnf" } ), HTTPUntar( @@ -76,26 +83,13 @@ class PicoSAT(VProject, ReleaseProviderHook): "download/picoSAT-965/traffic_kkb_unknown.cnf.tar.gz" } ), - HTTPUntar( - local="UNSAT_H_instances_childsnack_p11.hddl_1.cnf", - remote={ - "1.0": - "https://github.com/se-sic/picoSAT-mirror/releases/" - "download/picoSAT-965/" - "UNSAT_H_instances_childsnack_p11.hddl_1.cnf.tar.gz" - } - ), - HTTPUntar( - local="UNSAT_H_instances_childsnack_p12.hddl_1.cnf", - remote={ - "1.0": - "https://github.com/se-sic/picoSAT-mirror/releases/" - "download/picoSAT-965/" - "UNSAT_H_instances_childsnack_p12.hddl_1.cnf.tar.gz" - } - ), ] + CONTAINER = get_base_image(ImageBase.DEBIAN_10).run( + 'apt', 'install', '-y', 'autoconf', 'autopoint', 'automake', + 'autotools-dev', 'libtool', 'pkg-config' + ) + WORKLOADS = { WorkloadSet(WorkloadCategory.EXAMPLE): [ Command( @@ -137,6 +131,49 @@ class PicoSAT(VProject, ReleaseProviderHook): label="UNSAT-H-instances-childsnack-p12.hddl-1.cnf", ) ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("picosat") / RSBinary("picosat"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("aim-100-1_6-no-1.cnf"), + creates=[ + "coreFileName", "compactTraceFileName", + "extendedTraceFileName", "varFileName", "outputFileName", + "rupFileName" + ], + consumes=["aim-100-1_6-no-1.cnf"], + label="aim-100-1-6-no-1.cnf", + ), + VCommand( + SourceRoot("picosat") / RSBinary("picosat"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("aim-100-1_6-yes1-1.cnf"), + creates=[ + "coreFileName", "compactTraceFileName", + "extendedTraceFileName", "varFileName", "outputFileName", + "rupFileName" + ], + consumes=["aim-100-1_6-yes1-1.cnf"], + label="aim-100-1-6-yes1-1.cnf", + ), + VCommand( + SourceRoot("picosat") / RSBinary("picosat"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot( + "traffic_kkb_unknown.cnf/traffic_kkb_unknown.cnf" + ), + creates=[ + "coreFileName", "compactTraceFileName", + "extendedTraceFileName", "varFileName", "outputFileName", + "rupFileName" + ], + consumes=["traffic_kkb_unknown.cnf/traffic_kkb_unknown.cnf"], + label="traffic-kkb-unknow.cnf", + ), + ], } @staticmethod diff --git a/varats/varats/projects/c_projects/xz.py b/varats/varats/projects/c_projects/xz.py index 3d1a580ed..13d08178b 100644 --- a/varats/varats/projects/c_projects/xz.py +++ b/varats/varats/projects/c_projects/xz.py @@ -6,30 +6,34 @@ from benchbuild.source import HTTPMultiple from benchbuild.utils.cmd import autoreconf, make from benchbuild.utils.revision_ranges import ( - block_revisions, GoodBadSubgraph, RevisionRange, + block_revisions, ) from benchbuild.utils.settings import get_number_of_jobs from plumbum import local -from varats.containers.containers import get_base_image, ImageBase -from varats.experiment.workload_util import RSBinary, WorkloadCategory +from varats.containers.containers import ImageBase, get_base_image +from varats.experiment.workload_util import ( + RSBinary, + WorkloadCategory, + ConfigParams, +) from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains from varats.project.project_util import ( + BinaryType, ProjectBinaryWrapper, get_local_project_git_path, - BinaryType, verify_binaries, ) from varats.project.sources import FeatureSource from varats.project.varats_command import VCommand from varats.project.varats_project import VProject from varats.utils.git_util import ( + RevisionBinaryMap, ShortCommitHash, get_all_revisions_between, - RevisionBinaryMap, ) from varats.utils.settings import bb_cfg @@ -75,6 +79,16 @@ class Xz(VProject): files=[ "countries-land-1km.geo.json", "countries-land-250m.geo.json" ] + ), + HTTPMultiple( + local="xz_files", + remote={ + "1.0": + "https://github.com/xz-mirror/xz/releases/download/v5.4.0" + }, + files=[ + "xz-5.4.0.tar.xz", + ] ) ] @@ -114,6 +128,30 @@ class Xz(VProject): requires_all_args={"--compress"}, ) ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("xz") / RSBinary("xz"), + "--threads=1", + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("geo-maps/countries-land-250m.geo.json"), + label="countries-land-250m-compress", + creates=["geo-maps/countries-land-250m.geo.json.xz"], + consumes=["geo-maps/countries-land-250m.geo.json"], + requires_all_args={"--compress"}, + ), + VCommand( + SourceRoot("xz") / RSBinary("xz"), + "--threads=1", + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("xz_files/xz-5.4.0.tar.xz"), + label="xz-files-compressed", + creates=["xz_files/xz-5.4.0.tar"], + consumes=["xz_files/xz-5.4.0.tar.xz"], + requires_any_args={"--decompress", "--test", "--list"} + ), + ], } @staticmethod diff --git a/varats/varats/projects/cpp_projects/ect.py b/varats/varats/projects/cpp_projects/ect.py index 13f04a1b6..31f05da90 100644 --- a/varats/varats/projects/cpp_projects/ect.py +++ b/varats/varats/projects/cpp_projects/ect.py @@ -2,10 +2,17 @@ import typing as tp import benchbuild as bb +from benchbuild.command import WorkloadSet, SourceRoot +from benchbuild.source import HTTP, HTTPUntar from benchbuild.utils.cmd import make, cmake, mkdir from plumbum import local from varats.containers.containers import get_base_image, ImageBase +from varats.experiment.workload_util import ( + RSBinary, + WorkloadCategory, + ConfigParams, +) from varats.paper.paper_config import PaperConfigSpecificGit from varats.project.project_domain import ProjectDomains from varats.project.project_util import ( @@ -14,6 +21,8 @@ get_local_project_git_path, verify_binaries, ) +from varats.project.sources import FeatureSource +from varats.project.varats_command import VCommand from varats.project.varats_project import VProject from varats.utils.git_util import ShortCommitHash, RevisionBinaryMap @@ -32,25 +41,118 @@ class Ect(VProject): SOURCE = [ PaperConfigSpecificGit( project_name="ect", - remote="https://github.com/fhanau/Efficient-Compression-Tool.git", + remote="https://github.com/danjujan/Efficient-Compression-Tool.git", local="ect", refspec="origin/HEAD", limit=None, shallow=False - ) + ), + FeatureSource(), + HTTP( + local="archlinux.png", + remote={ + "1.0": + "https://upload.wikimedia.org/wikipedia/" + "commons/e/e8/Archlinux-logo-standard-version.png" + } + ), + HTTP( + local="vara.jpg", + remote={ + "1.0": + "https://upload.wikimedia.org/wikipedia/" + "commons/b/bc/VARA_speldje.JPG" + } + ), + HTTP( + local="ect.zip", + remote={ + "1.0": + "https://github.com/fhanau/Efficient-Compression-Tool/" + "archive/refs/tags/v0.9.4.zip" + } + ), + HTTP( + local="ect.tar.gz", + remote={ + "1.0": + "https://github.com/fhanau/Efficient-Compression-Tool/" + "archive/refs/tags/v0.9.4.tar.gz" + } + ), + HTTPUntar( + local="ect_src", + remote={ + "1.0": + "https://github.com/fhanau/Efficient-Compression-Tool/" + "archive/refs/tags/v0.9.4.tar.gz" + } + ), ] CONTAINER = get_base_image( ImageBase.DEBIAN_10 ).run('apt', 'install', '-y', 'nasm', 'git', 'cmake', 'make') + WORKLOADS = { + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("ect") / RSBinary("ect"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("archlinux.png"), + creates=["archlinux.png"], + consumes=["archlinux.png"], + label="png-only", + ), + VCommand( + SourceRoot("ect") / RSBinary("ect"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("vara.jpg"), + creates=["vara.jpg"], + consumes=["vara.jpg"], + label="jpg-only", + ), + VCommand( + SourceRoot("ect") / RSBinary("ect"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("ect.zip"), + creates=["ect.zip"], + consumes=["ect.zip"], + label="zip-only", + ), + VCommand( + SourceRoot("ect") / RSBinary("ect"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("ect.tar.gz"), + creates=["ect.tar.gz"], + consumes=["ect.tar.gz"], + label="gzip-only", + ), + VCommand( + SourceRoot("ect") / RSBinary("ect"), + ConfigParams(), + output_param=["{output}"], + output=SourceRoot("ect_src"), + creates=["ect_src.zip"], + #consumes=["ect_src"], + label="dir-only", + ), + ], + } + @staticmethod def binaries_for_revision( revision: ShortCommitHash ) -> tp.List[ProjectBinaryWrapper]: binary_map = RevisionBinaryMap(get_local_project_git_path(Ect.NAME)) - binary_map.specify_binary("build/ect", BinaryType.EXECUTABLE) + binary_map.specify_binary( + "build/ect", BinaryType.EXECUTABLE, valid_exit_codes=[0, 1] + ) return binary_map[revision] diff --git a/varats/varats/projects/perf_tests/feature_perf_cs_collection.py b/varats/varats/projects/perf_tests/feature_perf_cs_collection.py index 247b7491b..837fda673 100644 --- a/varats/varats/projects/perf_tests/feature_perf_cs_collection.py +++ b/varats/varats/projects/perf_tests/feature_perf_cs_collection.py @@ -83,7 +83,25 @@ class FeaturePerfCSCollection(VProject): FeatureSource() ] + CONTAINER = get_base_image(ImageBase.DEBIAN_10) + WORKLOADS = { + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("FeaturePerfCSCollection") / + RSBinary("SimpleFeatureInteraction"), + ConfigParams(), + label="SFI-no-input" + ) + ], + WorkloadSet(WorkloadCategory.JAN_2): [ + VCommand( + SourceRoot("FeaturePerfCSCollection") / + RSBinary("MultiSharedMultipleRegions"), + ConfigParams(), + label="MSMR-no-input" + ) + ], WorkloadSet(WorkloadCategory.EXAMPLE): [ Command( SourceRoot("FeaturePerfCSCollection") / @@ -116,8 +134,6 @@ class FeaturePerfCSCollection(VProject): ] } - CONTAINER = get_base_image(ImageBase.DEBIAN_12) - @staticmethod def binaries_for_revision( revision: ShortCommitHash # pylint: disable=W0613 @@ -196,6 +212,14 @@ class SynthSAFlowSensitivity(VProject): ConfigParams(), label="FlowSense-no-input" ) + ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("SynthSAFlowSensitivity") / RSBinary("FlowSense"), + ConfigParams(), + "5", + label="FlowSense-no-input", + ) ] } @@ -260,6 +284,15 @@ class SynthSAContextSensitivity(VProject): ConfigParams(), label="ContextSense-no-input" ) + ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("SynthSAContextSensitivity") / + RSBinary("ContextSense"), + ConfigParams(), + "8", + label="ContextSense-no-input" + ) ] } @@ -321,6 +354,15 @@ class SynthSAWholeProgram(VProject): ConfigParams(), label="WholeProgram-no-input" ) + ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("SynthSAWholeProgram") / RSBinary("WholeProgram"), + ConfigParams(), + "AABA", + "AABAACAADAABAABA", + label="WholeProgram-no-input" + ) ] } @@ -384,6 +426,26 @@ class SynthDADynamicDispatch(VProject): ConfigParams(), label="DynamicDispatch-no-input" ) + ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("SynthDADynamicDispatch") / + RSBinary("DynamicDispatch"), + ConfigParams(), + "--sum", + "8", + "1,2,3,5,6,10,23,2,5", + label="DynamicDispatch-first-no-input" + ), + VCommand( + SourceRoot("SynthDADynamicDispatch") / + RSBinary("DynamicDispatch"), + ConfigParams(), + "--sum", + "21", + "1,2,3,5,6,10,23,2,5", + label="DynamicDispatch-second-no-input" + ) ] } @@ -445,6 +507,15 @@ class SynthDARecursion(VProject): ConfigParams(), label="Recursion-no-input" ) + ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("SynthDARecursion") / RSBinary("Recursion"), + ConfigParams(), + "--base", + "AABAACAADAABAABA", + label="Recursion-no-input" + ) ] } @@ -506,6 +577,16 @@ class SynthOVInsideLoop(VProject): ConfigParams(), label="InsideLoop-no-input" ) + ], + WorkloadSet(WorkloadCategory.JAN): [ + VCommand( + SourceRoot("SynthOVInsideLoop") / RSBinary("InsideLoop"), + ConfigParams(), + "--sum", + "24", "1,2,3,4,4,1,2,1,3,1,1,4,2,23,3,2,4,4,5," + "1,2,3,4,4,1,2,1,3,1,1,4,2,23,3,2,4,4,5", + label="InsideLoop-no-input" + ) ] } @@ -731,6 +812,36 @@ def get_ip_workloads(project_source_name: str, binary_name: str) -> Workloads: "countries-land-500m.geo.json" ) ], + WorkloadSet(WorkloadCategory.JAN): [ # SMALL + VCommand( + SourceRoot(project_source_name) / RSBinary(binary_name), + ConfigParams("-c"), + label="countries-land-500m", + creates=[ + SourceRoot("geo-maps") / + "countries-land-500m.geo.json.compressed" + ], + requires_all_args={"-c"}, + redirect_stdin=SourceRoot("geo-maps") / + "countries-land-500m.geo.json", + redirect_stdout=SourceRoot("geo-maps") / + "countries-land-500m.geo.json.compressed" + ), + VCommand( + SourceRoot(project_source_name) / RSBinary(binary_name), + ConfigParams("-d"), + label="countries-land-500m", + creates=[ + SourceRoot("geo-maps-compr") / + "countries-land-500m.geo.json" + ], + requires_all_args={"-d"}, + redirect_stdin=SourceRoot("geo-maps-compr") / + "countries-land-500m.geo.json.compressed", + redirect_stdout=SourceRoot("geo-maps-compr") / + "countries-land-500m.geo.json" + ) + ], WorkloadSet(WorkloadCategory.MEDIUM): [ VCommand( SourceRoot(project_source_name) / RSBinary(binary_name), diff --git a/varats/varats/tools/bb_config.py b/varats/varats/tools/bb_config.py index 482f8ae02..d6aa97ea8 100644 --- a/varats/varats/tools/bb_config.py +++ b/varats/varats/tools/bb_config.py @@ -118,6 +118,7 @@ def update_experiments(bb_cfg: s.Configuration) -> None: 'varats.experiments.vara.feature_tracing_stats', 'varats.experiments.vara.feature_instrumentation_points', 'varats.experiments.vara.instrumentation_verifier', + 'varats.experiments.vara.llvm_coverage_experiment', 'varats.experiments.vara.marker_tester', 'varats.experiments.vara.phasar_fta', 'varats.experiments.vara.feature_region_verifier_experiment',