fm-weck 1.5.2__py3-none-any.whl → 1.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. fm_weck/__init__.py +1 -1
  2. fm_weck/capture.py +1 -1
  3. fm_weck/cli.py +113 -4
  4. fm_weck/config.py +3 -6
  5. fm_weck/engine.py +31 -4
  6. fm_weck/exceptions.py +4 -0
  7. fm_weck/image_mgr.py +66 -0
  8. fm_weck/resources/__init__.py +4 -4
  9. fm_weck/resources/fm_tools/2ls.yml +22 -0
  10. fm_weck/resources/fm_tools/afltc.yml +59 -0
  11. fm_weck/resources/fm_tools/aise.yml +28 -1
  12. fm_weck/resources/fm_tools/aprove.yml +25 -0
  13. fm_weck/resources/fm_tools/brick.yml +25 -1
  14. fm_weck/resources/fm_tools/bubaak-split.yml +18 -0
  15. fm_weck/resources/fm_tools/bubaak.yml +10 -0
  16. fm_weck/resources/fm_tools/cbmc.yml +12 -0
  17. fm_weck/resources/fm_tools/cetfuzz.yml +21 -6
  18. fm_weck/resources/fm_tools/coastal.yml +12 -0
  19. fm_weck/resources/fm_tools/concurrentwitness2test.yml +25 -2
  20. fm_weck/resources/fm_tools/cooperace.yml +39 -0
  21. fm_weck/resources/fm_tools/coveritest.yml +22 -0
  22. fm_weck/resources/fm_tools/cpa-bam-bnb.yml +16 -1
  23. fm_weck/resources/fm_tools/cpa-bam-smg.yml +17 -1
  24. fm_weck/resources/fm_tools/cpa-lockator.yml +17 -1
  25. fm_weck/resources/fm_tools/cpa-witness2test.yml +13 -3
  26. fm_weck/resources/fm_tools/cpachecker.yml +150 -10
  27. fm_weck/resources/fm_tools/cpv.yml +48 -0
  28. fm_weck/resources/fm_tools/crux.yml +12 -0
  29. fm_weck/resources/fm_tools/cseq.yml +36 -9
  30. fm_weck/resources/fm_tools/dartagnan.yml +63 -3
  31. fm_weck/resources/fm_tools/dasa.yml +70 -0
  32. fm_weck/resources/fm_tools/deagle.yml +19 -1
  33. fm_weck/resources/fm_tools/divine.yml +13 -0
  34. fm_weck/resources/fm_tools/ebf.yml +17 -2
  35. fm_weck/resources/fm_tools/emergentheta.yml +51 -5
  36. fm_weck/resources/fm_tools/esbmc-incr.yml +59 -2
  37. fm_weck/resources/fm_tools/esbmc-kind.yml +59 -2
  38. fm_weck/resources/fm_tools/fdse.yml +31 -0
  39. fm_weck/resources/fm_tools/fizzer.yml +32 -3
  40. fm_weck/resources/fm_tools/frama-c-sv.yml +21 -2
  41. fm_weck/resources/fm_tools/fshell-witness2test.yml +13 -3
  42. fm_weck/resources/fm_tools/function-res.yml +64 -0
  43. fm_weck/resources/fm_tools/fusebmc-ia.yml +20 -6
  44. fm_weck/resources/fm_tools/fusebmc.yml +25 -4
  45. fm_weck/resources/fm_tools/gazer-theta.yml +16 -3
  46. fm_weck/resources/fm_tools/gdart-llvm.yml +16 -1
  47. fm_weck/resources/fm_tools/gdart.yml +49 -2
  48. fm_weck/resources/fm_tools/goblint-par.yml +66 -0
  49. fm_weck/resources/fm_tools/goblint.yml +239 -12
  50. fm_weck/resources/fm_tools/goblitch.yml +77 -0
  51. fm_weck/resources/fm_tools/graves-par.yml +4 -1
  52. fm_weck/resources/fm_tools/graves.yml +20 -5
  53. fm_weck/resources/fm_tools/gwit.yml +13 -3
  54. fm_weck/resources/fm_tools/hornix.yml +26 -4
  55. fm_weck/resources/fm_tools/hybridtiger.yml +12 -1
  56. fm_weck/resources/fm_tools/iekke.yml +73 -0
  57. fm_weck/resources/fm_tools/infer.yml +12 -0
  58. fm_weck/resources/fm_tools/java-ranger.yml +18 -0
  59. fm_weck/resources/fm_tools/jayhorn.yml +50 -4
  60. fm_weck/resources/fm_tools/jbmc.yml +17 -1
  61. fm_weck/resources/fm_tools/jcwit.yml +12 -2
  62. fm_weck/resources/fm_tools/jdart.yml +16 -1
  63. fm_weck/resources/fm_tools/jlisa.yml +105 -0
  64. fm_weck/resources/fm_tools/klee.yml +12 -1
  65. fm_weck/resources/fm_tools/kleef.yml +18 -0
  66. fm_weck/resources/fm_tools/korn.yml +23 -1
  67. fm_weck/resources/fm_tools/lazycseq.yml +16 -1
  68. fm_weck/resources/fm_tools/legion-symcc.yml +5 -1
  69. fm_weck/resources/fm_tools/legion.yml +7 -4
  70. fm_weck/resources/fm_tools/lf-checker.yml +16 -1
  71. fm_weck/resources/fm_tools/liv.yml +48 -3
  72. fm_weck/resources/fm_tools/locksmith.yml +16 -1
  73. fm_weck/resources/fm_tools/metaval++.yml +1 -1
  74. fm_weck/resources/fm_tools/metaval.yml +121 -6
  75. fm_weck/resources/fm_tools/mlb.yml +23 -1
  76. fm_weck/resources/fm_tools/mopsa.yml +100 -7
  77. fm_weck/resources/fm_tools/muval.yml +120 -0
  78. fm_weck/resources/fm_tools/nacpa.yml +57 -2
  79. fm_weck/resources/fm_tools/nitwit.yml +13 -3
  80. fm_weck/resources/fm_tools/ogchecker.yml +47 -0
  81. fm_weck/resources/fm_tools/owic.yml +16 -2
  82. fm_weck/resources/fm_tools/pesco.yml +19 -1
  83. fm_weck/resources/fm_tools/pichecker.yml +16 -1
  84. fm_weck/resources/fm_tools/pinaka.yml +14 -1
  85. fm_weck/resources/fm_tools/predatorhp.yml +12 -0
  86. fm_weck/resources/fm_tools/proton.yml +26 -1
  87. fm_weck/resources/fm_tools/prtest.yml +23 -0
  88. fm_weck/resources/fm_tools/pysvlib-linter.yml +77 -0
  89. fm_weck/resources/fm_tools/pysvlib-validator.yml +76 -0
  90. fm_weck/resources/fm_tools/racerf.yml +27 -4
  91. fm_weck/resources/fm_tools/re3ver.yml +78 -0
  92. fm_weck/resources/fm_tools/rizzer.yml +11 -1
  93. fm_weck/resources/fm_tools/schema.yml +185 -4
  94. fm_weck/resources/fm_tools/seal.yml +67 -0
  95. fm_weck/resources/fm_tools/sikraken.yml +25 -1
  96. fm_weck/resources/fm_tools/spf.yml +14 -1
  97. fm_weck/resources/fm_tools/sv-sanitizers.yml +46 -3
  98. fm_weck/resources/fm_tools/svf-svc.yml +33 -1
  99. fm_weck/resources/fm_tools/svlibchecker.yml +82 -0
  100. fm_weck/resources/fm_tools/swat.yml +30 -0
  101. fm_weck/resources/fm_tools/symbiotic-witch.yml +31 -6
  102. fm_weck/resources/fm_tools/symbiotic.yml +64 -1
  103. fm_weck/resources/fm_tools/testcoca.yml +53 -0
  104. fm_weck/resources/fm_tools/testcov.yml +97 -0
  105. fm_weck/resources/fm_tools/theta.yml +100 -2
  106. fm_weck/resources/fm_tools/thorn.yml +22 -1
  107. fm_weck/resources/fm_tools/tracerx-wp.yml +18 -0
  108. fm_weck/resources/fm_tools/tracerx.yml +22 -0
  109. fm_weck/resources/fm_tools/uautomizer.yml +186 -19
  110. fm_weck/resources/fm_tools/ugemcutter.yml +97 -9
  111. fm_weck/resources/fm_tools/ukojak.yml +55 -9
  112. fm_weck/resources/fm_tools/uparalizer.yml +78 -0
  113. fm_weck/resources/fm_tools/ureferee.yml +83 -13
  114. fm_weck/resources/fm_tools/utaipan.yml +61 -9
  115. fm_weck/resources/fm_tools/utestgen.yml +36 -0
  116. fm_weck/resources/fm_tools/veriabs.yml +12 -0
  117. fm_weck/resources/fm_tools/veriabsl.yml +16 -0
  118. fm_weck/resources/fm_tools/verioover.yml +16 -1
  119. fm_weck/resources/fm_tools/wasp-c.yml +16 -1
  120. fm_weck/resources/fm_tools/wit4java.yml +36 -4
  121. fm_weck/resources/fm_tools/witch.yml +29 -4
  122. fm_weck/resources/fm_tools/witnesslint.yml +111 -8
  123. fm_weck/resources/fm_tools/witnessmap.yml +29 -1
  124. fm_weck/run_result.py +15 -11
  125. fm_weck/runexec_mode.py +37 -7
  126. fm_weck/smoke_test_mode.py +6 -10
  127. fm_weck/zenodo.py +381 -0
  128. {fm_weck-1.5.2.dist-info → fm_weck-1.6.0.dist-info}/METADATA +2 -1
  129. fm_weck-1.6.0.dist-info/RECORD +188 -0
  130. {fm_weck-1.5.2.dist-info → fm_weck-1.6.0.dist-info}/WHEEL +1 -1
  131. fm_weck-1.5.2.dist-info/RECORD +0 -171
  132. {fm_weck-1.5.2.dist-info → fm_weck-1.6.0.dist-info}/entry_points.txt +0 -0
@@ -11,7 +11,8 @@ fmtools_entry_maintainers:
11
11
  - hobooe
12
12
 
13
13
  maintainers:
14
- - name: HaiPeng Qu
14
+ - orcid: 0000-0000-0000-0000
15
+ name: HaiPeng Qu
15
16
  institution: Ocean University of China
16
17
  country: China
17
18
  url:
@@ -20,11 +21,23 @@ versions:
20
21
  - version: "svcomp23"
21
22
  doi: 10.5281/zenodo.10407457
22
23
  benchexec_toolinfo_options: []
24
+ base_container_images:
25
+ - docker.io/ubuntu:22.04
23
26
  required_ubuntu_packages: []
24
27
  full_container_images:
25
28
  - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2023
26
29
 
27
30
  competition_participations:
31
+ - competition: "SV-COMP 2026"
32
+ track: "Verification"
33
+ label:
34
+ - inactive
35
+ tool_version: "svcomp23"
36
+ jury_member:
37
+ name: Hors Concours
38
+ institution: --
39
+ country: --
40
+ url:
28
41
  - competition: "SV-COMP 2025"
29
42
  track: "Verification"
30
43
  label:
@@ -57,3 +70,5 @@ competition_participations:
57
70
  techniques: []
58
71
 
59
72
  frameworks_solvers: []
73
+
74
+ literature: []
@@ -11,7 +11,8 @@ fmtools_entry_maintainers:
11
11
  - filipeom
12
12
 
13
13
  maintainers:
14
- - name: Filipe Marques
14
+ - orcid: 0000-0000-0000-0000
15
+ name: Filipe Marques
15
16
  institution: INESC-ID, Lisbon
16
17
  country: Portugal
17
18
  url: https://filipeom.github.io/
@@ -20,6 +21,8 @@ versions:
20
21
  - version: "testcomp23"
21
22
  doi: 10.5281/zenodo.10412766
22
23
  benchexec_toolinfo_options: ['--smt-assume', '--policy', 'breadth', '--test-comp']
24
+ base_container_images:
25
+ - docker.io/ubuntu:22.04
23
26
  required_ubuntu_packages:
24
27
  - gcc
25
28
  - make
@@ -29,6 +32,16 @@ versions:
29
32
  - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2024
30
33
 
31
34
  competition_participations:
35
+ - competition: "Test-Comp 2026"
36
+ track: "Test Generation"
37
+ label:
38
+ - inactive
39
+ tool_version: "testcomp23"
40
+ jury_member:
41
+ name: Hors Concours
42
+ institution: --
43
+ country: --
44
+ url:
32
45
  - competition: "Test-Comp 2025"
33
46
  track: "Test Generation"
34
47
  label:
@@ -64,3 +77,5 @@ techniques:
64
77
  - Symbolic Execution
65
78
 
66
79
  frameworks_solvers: []
80
+
81
+ literature: []
@@ -1,5 +1,7 @@
1
1
  id: wit4java
2
2
  name: Wit4Java
3
+ description: |
4
+ Wit4java is a violation witness validator for java verifiers.
3
5
  input_languages:
4
6
  - Java
5
7
  project_url: https://github.com/Anthonysdu/wit4java
@@ -18,21 +20,50 @@ maintainers:
18
20
  url:
19
21
 
20
22
  versions:
23
+ - version: "svcomp26"
24
+ doi: 10.5281/zenodo.18001116
25
+ benchexec_toolinfo_options: ["--witness", "${witness}", "--local-dir"]
26
+ base_container_images:
27
+ - docker.io/ubuntu:24.04
28
+ required_ubuntu_packages:
29
+ - openjdk-8-jdk-headless
30
+ - python3-setuptools
31
+ full_container_images:
32
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/10.5281/zenodo.18001433
33
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2026-wit4java
34
+
21
35
  - version: "svcomp25"
22
36
  doi: 10.5281/zenodo.14261105
23
37
  benchexec_toolinfo_options: ["--witness", "${witness}", "--local-dir"]
38
+ base_container_images:
39
+ - docker.io/ubuntu:24.04
24
40
  required_ubuntu_packages: []
41
+
25
42
  - version: "svcomp23"
26
43
  doi: 10.5281/zenodo.10206747
27
44
  benchexec_toolinfo_options: []
45
+ base_container_images:
46
+ - docker.io/ubuntu:22.04
28
47
  required_ubuntu_packages:
29
48
  - python3-networkx
30
49
  full_container_images:
31
50
  - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2024
32
51
 
33
52
  competition_participations:
53
+ - competition: "SV-COMP 2026"
54
+ track: "Validation of Violation Witnesses v1"
55
+ tool_version: "svcomp26"
56
+ jury_member:
57
+ orcid: 0000-0002-0986-4150
58
+ name: Tong Wu
59
+ institution: University of Manchester
60
+ country: UK
61
+ url:
62
+ participants:
63
+ - orcid: 0000-0002-0986-4150
64
+ name: Tong Wu
34
65
  - competition: "SV-COMP 2025"
35
- track: "Validation of Violation Witnesses 1.0"
66
+ track: "Validation of Violation Witnesses v1"
36
67
  tool_version: "svcomp25"
37
68
  jury_member:
38
69
  orcid: 0000-0002-0986-4150
@@ -41,7 +72,7 @@ competition_participations:
41
72
  country: UK
42
73
  url:
43
74
  - competition: "SV-COMP 2024"
44
- track: "Validation of Violation Witnesses 1.0"
75
+ track: "Validation of Violation Witnesses v1"
45
76
  label:
46
77
  - inactive
47
78
  tool_version: "svcomp23"
@@ -51,7 +82,7 @@ competition_participations:
51
82
  country: --
52
83
  url:
53
84
  - competition: "SV-COMP 2023"
54
- track: "Validation of Violation Witnesses 1.0"
85
+ track: "Validation of Violation Witnesses v1"
55
86
  tool_version: "svcomp23"
56
87
  jury_member:
57
88
  orcid: 0000-0002-0986-4150
@@ -60,7 +91,8 @@ competition_participations:
60
91
  country: UK
61
92
  url:
62
93
 
63
- techniques: []
94
+ techniques:
95
+ - Targeted Input Generation
64
96
 
65
97
  frameworks_solvers: []
66
98
 
@@ -6,8 +6,8 @@ description: |
6
6
  name: Witch
7
7
  input_languages:
8
8
  - C
9
- project_url: https://github.com/ayazip/witch-klee
10
- repository_url: https://github.com/ayazip/witch-klee
9
+ project_url: https://github.com/ayazip/witch
10
+ repository_url: https://github.com/ayazip/witch
11
11
  spdx_license_identifier: "MIT"
12
12
  benchexec_toolinfo_module: "symbiotic-witch.py"
13
13
  fmtools_format_version: "2.0"
@@ -22,12 +22,23 @@ maintainers:
22
22
  url:
23
23
 
24
24
  versions:
25
+ - version: "svcomp26"
26
+ benchexec_toolinfo_options: ['--sv-comp', '--witness-check', "${witness}"]
27
+ required_ubuntu_packages:
28
+ - python3
29
+ - python3-yaml
30
+ - llvm-14
31
+ doi: "10.5281/zenodo.17697224"
32
+ base_container_images:
33
+ - docker.io/ubuntu:24.04
25
34
  - version: "svcomp25"
26
35
  benchexec_toolinfo_options: ['--sv-comp', '--witness-check', "${witness}"]
27
36
  required_ubuntu_packages:
28
37
  - python3
29
38
  - llvm-14
30
39
  doi: "10.5281/zenodo.14207188"
40
+ base_container_images:
41
+ - docker.io/ubuntu:24.04
31
42
  - version: "svcomp24"
32
43
  benchexec_toolinfo_options: ['--sv-comp']
33
44
  required_ubuntu_packages:
@@ -35,8 +46,22 @@ versions:
35
46
  doi: "10.5281/zenodo.10064512"
36
47
 
37
48
  competition_participations:
49
+ - competition: "SV-COMP 2026"
50
+ track: "Validation of Violation Witnesses v2"
51
+ tool_version: "svcomp26"
52
+ jury_member:
53
+ orcid: 0000-0003-1072-8137
54
+ name: Paulína Ayaziová
55
+ institution: Masaryk University, Brno
56
+ country: Czechia
57
+ url:
58
+ participants:
59
+ - orcid: 0000-0003-1072-8137
60
+ name: Paulína Ayaziová
61
+ - orcid: 0000-0001-5873-403X
62
+ name: Jan Strejček
38
63
  - competition: "SV-COMP 2025"
39
- track: "Validation of Violation Witnesses 2.0"
64
+ track: "Validation of Violation Witnesses v2"
40
65
  tool_version: "svcomp25"
41
66
  jury_member:
42
67
  orcid: 0000-0003-1072-8137
@@ -45,7 +70,7 @@ competition_participations:
45
70
  country: Czechia
46
71
  url:
47
72
  - competition: "SV-COMP 2024"
48
- track: "Validation of Violation Witnesses 2.0"
73
+ track: "Validation of Violation Witnesses v2"
49
74
  tool_version: "svcomp24"
50
75
  jury_member:
51
76
  orcid: 0000-0003-1072-8137
@@ -33,6 +33,43 @@ maintainers:
33
33
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
34
34
 
35
35
  versions:
36
+ - version: "2.1.2-correctness-witnesses-v2"
37
+ doi: 10.5281/zenodo.17792484
38
+ benchexec_toolinfo_options: ["--witness", "${witness}", "--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2"]
39
+ required_ubuntu_packages:
40
+ - python3-lxml
41
+ - python3-jsonschema
42
+ - python3-yaml
43
+ - python3-pycparser
44
+ - python3-clang
45
+ - version: "2.1.2-violation-witnesses-v2"
46
+ doi: 10.5281/zenodo.17792484
47
+ benchexec_toolinfo_options: ["--witness", "${witness}", "--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2"]
48
+ required_ubuntu_packages:
49
+ - python3-lxml
50
+ - python3-jsonschema
51
+ - python3-yaml
52
+ - python3-pycparser
53
+ - python3-clang
54
+ - version: "2.1.2-correctness-witnesses-v1"
55
+ doi: 10.5281/zenodo.17792484
56
+ benchexec_toolinfo_options: ["--witness", "${witness}", "--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1"]
57
+ required_ubuntu_packages:
58
+ - python3-lxml
59
+ - python3-jsonschema
60
+ - python3-yaml
61
+ - python3-pycparser
62
+ - python3-clang
63
+ - version: "2.1.2-violation-witnesses-v1"
64
+ doi: 10.5281/zenodo.17792484
65
+ benchexec_toolinfo_options: ["--witness", "${witness}", "--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1"]
66
+ required_ubuntu_packages:
67
+ - python3-lxml
68
+ - python3-jsonschema
69
+ - python3-yaml
70
+ - python3-pycparser
71
+ - python3-clang
72
+
36
73
  - version: "svcomp25-correctness-graphml"
37
74
  doi: 10.5281/zenodo.15050742
38
75
  benchexec_toolinfo_options: ["--witness", "${witness}", "--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
@@ -41,6 +78,8 @@ versions:
41
78
  - python3-jsonschema
42
79
  - python3-yaml
43
80
  - python3-pycparser
81
+ base_container_images:
82
+ - docker.io/ubuntu:24.04
44
83
  - version: "svcomp25-violation-graphml"
45
84
  doi: 10.5281/zenodo.15050742
46
85
  benchexec_toolinfo_options: ["--witness", "${witness}", "--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
@@ -49,6 +88,8 @@ versions:
49
88
  - python3-jsonschema
50
89
  - python3-yaml
51
90
  - python3-pycparser
91
+ base_container_images:
92
+ - docker.io/ubuntu:24.04
52
93
  - version: "svcomp25-correctness-yaml"
53
94
  doi: 10.5281/zenodo.15050742
54
95
  benchexec_toolinfo_options: ["--witness", "${witness}", "--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
@@ -57,6 +98,8 @@ versions:
57
98
  - python3-jsonschema
58
99
  - python3-yaml
59
100
  - python3-pycparser
101
+ base_container_images:
102
+ - docker.io/ubuntu:24.04
60
103
  - version: "svcomp25-violation-yaml"
61
104
  doi: 10.5281/zenodo.15050742
62
105
  benchexec_toolinfo_options: ["--witness", "${witness}", "--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
@@ -65,6 +108,9 @@ versions:
65
108
  - python3-jsonschema
66
109
  - python3-yaml
67
110
  - python3-pycparser
111
+ base_container_images:
112
+ - docker.io/ubuntu:24.04
113
+
68
114
  - version: "svcomp24-correctness-graphml"
69
115
  doi: 10.5281/zenodo.10213801
70
116
  benchexec_toolinfo_options: ["--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
@@ -99,8 +145,65 @@ versions:
99
145
  - python3-pycparser
100
146
 
101
147
  competition_participations:
148
+ - competition: "SV-COMP 2026"
149
+ track: "Validation of Correctness Witnesses v2"
150
+ label:
151
+ - auxiliary
152
+ tool_version: "2.1.2-correctness-witnesses-v2"
153
+ jury_member:
154
+ orcid: 0000-0002-8172-3184
155
+ name: Marian Lingsch-Rosenfeld
156
+ institution: LMU Munich
157
+ country: Germany
158
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
159
+ participants:
160
+ - orcid: 0000-0002-8172-3184
161
+ name: Marian Lingsch-Rosenfeld
162
+ - competition: "SV-COMP 2026"
163
+ track: "Validation of Correctness Witnesses v1"
164
+ label:
165
+ - auxiliary
166
+ tool_version: "2.1.2-correctness-witnesses-v1"
167
+ jury_member:
168
+ orcid: 0000-0002-8172-3184
169
+ name: Marian Lingsch-Rosenfeld
170
+ institution: LMU Munich
171
+ country: Germany
172
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
173
+ participants:
174
+ - orcid: 0000-0002-8172-3184
175
+ name: Marian Lingsch-Rosenfeld
176
+ - competition: "SV-COMP 2026"
177
+ track: "Validation of Violation Witnesses v2"
178
+ label:
179
+ - auxiliary
180
+ tool_version: "2.1.2-violation-witnesses-v2"
181
+ jury_member:
182
+ orcid: 0000-0002-8172-3184
183
+ name: Marian Lingsch-Rosenfeld
184
+ institution: LMU Munich
185
+ country: Germany
186
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
187
+ participants:
188
+ - orcid: 0000-0002-8172-3184
189
+ name: Marian Lingsch-Rosenfeld
190
+ - competition: "SV-COMP 2026"
191
+ track: "Validation of Violation Witnesses v1"
192
+ label:
193
+ - auxiliary
194
+ tool_version: "2.1.2-violation-witnesses-v1"
195
+ jury_member:
196
+ orcid: 0000-0002-8172-3184
197
+ name: Marian Lingsch-Rosenfeld
198
+ institution: LMU Munich
199
+ country: Germany
200
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
201
+ participants:
202
+ - orcid: 0000-0002-8172-3184
203
+ name: Marian Lingsch-Rosenfeld
204
+
102
205
  - competition: "SV-COMP 2025"
103
- track: "Validation of Correctness Witnesses 1.0"
206
+ track: "Validation of Correctness Witnesses v1"
104
207
  label:
105
208
  - auxiliary
106
209
  tool_version: "svcomp25-correctness-graphml"
@@ -111,7 +214,7 @@ competition_participations:
111
214
  country: Germany
112
215
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
113
216
  - competition: "SV-COMP 2025"
114
- track: "Validation of Correctness Witnesses 2.0"
217
+ track: "Validation of Correctness Witnesses v2"
115
218
  label:
116
219
  - auxiliary
117
220
  tool_version: "svcomp25-correctness-yaml"
@@ -122,7 +225,7 @@ competition_participations:
122
225
  country: Germany
123
226
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
124
227
  - competition: "SV-COMP 2025"
125
- track: "Validation of Violation Witnesses 1.0"
228
+ track: "Validation of Violation Witnesses v1"
126
229
  label:
127
230
  - auxiliary
128
231
  tool_version: "svcomp25-violation-graphml"
@@ -133,7 +236,7 @@ competition_participations:
133
236
  country: Germany
134
237
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
135
238
  - competition: "SV-COMP 2025"
136
- track: "Validation of Violation Witnesses 2.0"
239
+ track: "Validation of Violation Witnesses v2"
137
240
  label:
138
241
  - auxiliary
139
242
  tool_version: "svcomp25-violation-yaml"
@@ -144,7 +247,7 @@ competition_participations:
144
247
  country: Germany
145
248
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
146
249
  - competition: "SV-COMP 2024"
147
- track: "Validation of Correctness Witnesses 1.0"
250
+ track: "Validation of Correctness Witnesses v1"
148
251
  label:
149
252
  - auxiliary
150
253
  tool_version: "svcomp24-correctness-graphml"
@@ -155,7 +258,7 @@ competition_participations:
155
258
  country: Germany
156
259
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
157
260
  - competition: "SV-COMP 2024"
158
- track: "Validation of Correctness Witnesses 2.0"
261
+ track: "Validation of Correctness Witnesses v2"
159
262
  label:
160
263
  - auxiliary
161
264
  tool_version: "svcomp24-correctness-yaml"
@@ -166,7 +269,7 @@ competition_participations:
166
269
  country: Germany
167
270
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
168
271
  - competition: "SV-COMP 2024"
169
- track: "Validation of Violation Witnesses 1.0"
272
+ track: "Validation of Violation Witnesses v1"
170
273
  label:
171
274
  - auxiliary
172
275
  tool_version: "svcomp24-violation-graphml"
@@ -177,7 +280,7 @@ competition_participations:
177
280
  country: Germany
178
281
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
179
282
  - competition: "SV-COMP 2024"
180
- track: "Validation of Violation Witnesses 2.0"
283
+ track: "Validation of Violation Witnesses v2"
181
284
  label:
182
285
  - auxiliary
183
286
  tool_version: "svcomp24-violation-yaml"
@@ -33,13 +33,41 @@ maintainers:
33
33
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
34
34
 
35
35
  versions:
36
+ - version: "0.0.2"
37
+ doi: 10.5281/zenodo.17769876
38
+ benchexec_toolinfo_options: []
39
+ required_ubuntu_packages:
40
+ - python3-yaml
41
+ base_container_images:
42
+ - docker.io/ubuntu:24.04
43
+ full_container_images:
44
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2026
36
45
  - version: "svcomp25"
37
46
  doi: 10.5281/zenodo.14205153
38
47
  benchexec_toolinfo_options: []
39
48
  required_ubuntu_packages:
40
49
  - python3-yaml
41
-
50
+ base_container_images:
51
+ - docker.io/ubuntu:24.04
52
+ full_container_images:
53
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2026
42
54
  competition_participations:
55
+ - competition: "SV-COMP 2026"
56
+ track: "Verification"
57
+ label:
58
+ - auxiliary
59
+ tool_version: "0.0.2"
60
+ jury_member:
61
+ orcid: 0000-0002-8172-3184
62
+ name: Marian Lingsch-Rosenfeld
63
+ institution: LMU Munich
64
+ country: Germany
65
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
66
+ participants:
67
+ - orcid: 0000-0003-4832-7662
68
+ name: Dirk Beyer
69
+ - orcid: 0000-0002-8172-3184
70
+ name: Marian Lingsch-Rosenfeld
43
71
  - competition: "SV-COMP 2025"
44
72
  track: "Verification"
45
73
  label:
fm_weck/run_result.py CHANGED
@@ -6,12 +6,11 @@
6
6
  # SPDX-License-Identifier: Apache-2.0
7
7
 
8
8
  from dataclasses import dataclass
9
- from functools import singledispatchmethod
9
+ from typing import TYPE_CHECKING
10
10
 
11
- from benchexec.tools.template import BaseTool2
12
- from benchexec.util import ProcessExitCode
13
- from fm_tools.fmtoolversion import FmToolVersion
14
- from fm_tools.run import get_tool_info
11
+ if TYPE_CHECKING:
12
+ from benchexec.tools.template import BaseTool2
13
+ from fm_tools.fmtoolversion import FmToolVersion
15
14
 
16
15
 
17
16
  @dataclass(frozen=True)
@@ -21,6 +20,9 @@ class RunResult:
21
20
  raw_output: str
22
21
 
23
22
  def as_benchexec_run(self):
23
+ from benchexec.tools.template import BaseTool2
24
+ from benchexec.util import ProcessExitCode
25
+
24
26
  return BaseTool2.Run(
25
27
  cmdline=self.command,
26
28
  exit_code=ProcessExitCode.create(value=self.exit_code),
@@ -28,11 +30,13 @@ class RunResult:
28
30
  termination_reason=False, # TODO: We do not know about this
29
31
  )
30
32
 
31
- @singledispatchmethod
32
- def determine_result(self, tool: BaseTool2) -> str:
33
- return tool.determine_result(self.as_benchexec_run())
33
+ def determine_result(self, tool: "BaseTool2 | FmToolVersion") -> str:
34
+ from benchexec.tools.template import BaseTool2
35
+
36
+ if isinstance(tool, BaseTool2):
37
+ return tool.determine_result(self.as_benchexec_run())
38
+
39
+ from fm_tools.run import get_tool_info
34
40
 
35
- @determine_result.register
36
- def _(self, tool: FmToolVersion) -> str:
37
41
  tool_ = get_tool_info(tool)
38
- return self.determine_result(tool_)
42
+ return tool_.determine_result(self.as_benchexec_run())
fm_weck/runexec_mode.py CHANGED
@@ -7,11 +7,13 @@
7
7
 
8
8
  import importlib.resources as pkg_resources
9
9
  import logging
10
+ import os
10
11
  import shutil
11
12
  from pathlib import Path
13
+ from tempfile import NamedTemporaryFile
12
14
  from typing import TYPE_CHECKING, Optional
13
15
 
14
- from fm_weck.resources import BENCHEXEC_WHL
16
+ from fm_weck.resources import BENCHEXEC_WHL, RUNEXEC_SCRIPT
15
17
  from fm_weck.runexec_util import mountable_absolute_paths_of_command
16
18
 
17
19
  from .config import Config
@@ -20,16 +22,38 @@ from .engine import CACHE_MOUNT_LOCATION, Engine
20
22
  logger = logging.getLogger(__name__)
21
23
 
22
24
  if TYPE_CHECKING:
25
+ from tempfile import _TemporaryFileWrapper
26
+
23
27
  from fm_weck.run_result import RunResult
24
28
 
25
29
 
30
+ def _setup_script_in_cache(target: "_TemporaryFileWrapper[bytes]") -> Path:
31
+ # When running multiple instances in parallel it can happen, that two processes interfere
32
+ # when copying the script causing a "Text file is busy" error.
33
+ # Using a temp file avoids this problem.
34
+ # The cleaner solution would be to use a direct bind mount from the package resource, but this does not
35
+ # work on the benchcloud right now.
36
+
37
+ with pkg_resources.path("fm_weck.resources", RUNEXEC_SCRIPT) as source_path:
38
+ shutil.copy(source_path, target.name)
39
+
40
+ target_path = Path(target.name)
41
+ mode = target_path.stat().st_mode
42
+ # make the temp file executable
43
+ target_path.chmod(mode | os.X_OK)
44
+ target.flush()
45
+ target.close()
46
+
47
+ return target_path
48
+
49
+
26
50
  def run_runexec(
27
51
  benchexec_package: Optional[Path],
28
52
  use_image: Optional[str],
29
53
  configuration: Config,
30
54
  extra_container_args: list[list[str]],
31
55
  command: list[str],
32
- ) -> "RunResult":
56
+ ) -> "RunResult| None":
33
57
  if use_image is not None:
34
58
  configuration.set_default_image(use_image)
35
59
 
@@ -38,7 +62,7 @@ def run_runexec(
38
62
  engine.add_mounting_capabilities = False
39
63
 
40
64
  if benchexec_package is not None:
41
- engine.mount(benchexec_package.parent.absolute(), "/home/__fm_weck_benchexec")
65
+ engine.mount(str(benchexec_package.parent.absolute()), "/home/__fm_weck_benchexec")
42
66
  engine.env["PYTHONPATH"] = f"/home/__fm_weck_benchexec/{benchexec_package.name}"
43
67
  else:
44
68
  # Default to the bundled benchexec package
@@ -52,13 +76,19 @@ def run_runexec(
52
76
  return None
53
77
 
54
78
  for path in mountable_absolute_paths_of_command(Path.cwd().absolute(), command):
55
- engine.mount(path, str(path) + ":ro")
79
+ engine.mount(str(path), str(path) + ":ro")
56
80
 
57
81
  for arg in extra_container_args:
58
82
  engine.add_container_long_opt(arg)
59
83
 
60
- configuration.make_runexec_script_available()
61
-
62
84
  engine.handle_io = False
63
85
 
64
- return engine.run(f"{CACHE_MOUNT_LOCATION}/.scripts/runexec", *command)
86
+ with (
87
+ NamedTemporaryFile(
88
+ prefix="runexec_", dir=str(configuration.cache_location / ".scripts"), delete=True, delete_on_close=False
89
+ ) as tmp_file,
90
+ ):
91
+ script_path = _setup_script_in_cache(tmp_file)
92
+
93
+ rel_path = script_path.relative_to(configuration.cache_location)
94
+ return engine.run(f"{CACHE_MOUNT_LOCATION}/{rel_path}", *command)
@@ -48,7 +48,7 @@ class SmokeTestFileIsNotExecutableError(SmokeTestError):
48
48
 
49
49
 
50
50
  def locate_and_check_smoke_test_file(shelve_space: Path) -> str:
51
- """Check if the smoke test file exists and is not empty.
51
+ """Check if the smoke test file exists, is executable, and is not empty.
52
52
 
53
53
  Args:
54
54
  shelve_space: Path to the shelve space directory.
@@ -59,15 +59,11 @@ def locate_and_check_smoke_test_file(shelve_space: Path) -> str:
59
59
  Raises:
60
60
  NoSmokeTestFileError: If the smoke test file does not exist.
61
61
  SmokeTestFileIsEmptyError: If the smoke test file is empty.
62
+ SmokeTestFileIsNotExecutableError: If the smoke test file is not executable.
62
63
  """
63
- if not (shelve_space / "smoketest.sh").exists() and not (shelve_space / "smoke_test.sh").exists():
64
- raise NoSmokeTestFileError(f"Smoke test file not found in: {shelve_space}")
65
-
66
- if (shelve_space / "smoketest.sh").exists():
67
- file_path = shelve_space / "smoketest.sh"
68
- else:
69
- # Since we checked for existence above, this must exist
70
- file_path = shelve_space / "smoke_test.sh"
64
+ file_path = shelve_space / "smoketest.sh"
65
+ if not file_path.exists():
66
+ raise NoSmokeTestFileError(f"Smoke test file 'smoketest.sh' not found in: {shelve_space}")
71
67
 
72
68
  if not file_path.stat().st_mode & os.X_OK:
73
69
  raise SmokeTestFileIsNotExecutableError(file_path.relative_to(shelve_space))
@@ -100,7 +96,7 @@ def run_smoke_test_gitlab_ci(fm_data: FmToolVersion, tool_dir: Path):
100
96
 
101
97
  Args:
102
98
  fm_data: The FmToolVersion object containing tool information
103
- tool_dir: The directory containing the tool's smoke_test.sh script
99
+ tool_dir: The directory containing the tool's smoketest.sh script
104
100
  """
105
101
  # Get required packages from fm_data
106
102
  required_packages = fm_data.get_images().required_packages