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.
- fm_weck/__init__.py +1 -1
- fm_weck/capture.py +1 -1
- fm_weck/cli.py +113 -4
- fm_weck/config.py +3 -6
- fm_weck/engine.py +31 -4
- fm_weck/exceptions.py +4 -0
- fm_weck/image_mgr.py +66 -0
- fm_weck/resources/__init__.py +4 -4
- fm_weck/resources/fm_tools/2ls.yml +22 -0
- fm_weck/resources/fm_tools/afltc.yml +59 -0
- fm_weck/resources/fm_tools/aise.yml +28 -1
- fm_weck/resources/fm_tools/aprove.yml +25 -0
- fm_weck/resources/fm_tools/brick.yml +25 -1
- fm_weck/resources/fm_tools/bubaak-split.yml +18 -0
- fm_weck/resources/fm_tools/bubaak.yml +10 -0
- fm_weck/resources/fm_tools/cbmc.yml +12 -0
- fm_weck/resources/fm_tools/cetfuzz.yml +21 -6
- fm_weck/resources/fm_tools/coastal.yml +12 -0
- fm_weck/resources/fm_tools/concurrentwitness2test.yml +25 -2
- fm_weck/resources/fm_tools/cooperace.yml +39 -0
- fm_weck/resources/fm_tools/coveritest.yml +22 -0
- fm_weck/resources/fm_tools/cpa-bam-bnb.yml +16 -1
- fm_weck/resources/fm_tools/cpa-bam-smg.yml +17 -1
- fm_weck/resources/fm_tools/cpa-lockator.yml +17 -1
- fm_weck/resources/fm_tools/cpa-witness2test.yml +13 -3
- fm_weck/resources/fm_tools/cpachecker.yml +150 -10
- fm_weck/resources/fm_tools/cpv.yml +48 -0
- fm_weck/resources/fm_tools/crux.yml +12 -0
- fm_weck/resources/fm_tools/cseq.yml +36 -9
- fm_weck/resources/fm_tools/dartagnan.yml +63 -3
- fm_weck/resources/fm_tools/dasa.yml +70 -0
- fm_weck/resources/fm_tools/deagle.yml +19 -1
- fm_weck/resources/fm_tools/divine.yml +13 -0
- fm_weck/resources/fm_tools/ebf.yml +17 -2
- fm_weck/resources/fm_tools/emergentheta.yml +51 -5
- fm_weck/resources/fm_tools/esbmc-incr.yml +59 -2
- fm_weck/resources/fm_tools/esbmc-kind.yml +59 -2
- fm_weck/resources/fm_tools/fdse.yml +31 -0
- fm_weck/resources/fm_tools/fizzer.yml +32 -3
- fm_weck/resources/fm_tools/frama-c-sv.yml +21 -2
- fm_weck/resources/fm_tools/fshell-witness2test.yml +13 -3
- fm_weck/resources/fm_tools/function-res.yml +64 -0
- fm_weck/resources/fm_tools/fusebmc-ia.yml +20 -6
- fm_weck/resources/fm_tools/fusebmc.yml +25 -4
- fm_weck/resources/fm_tools/gazer-theta.yml +16 -3
- fm_weck/resources/fm_tools/gdart-llvm.yml +16 -1
- fm_weck/resources/fm_tools/gdart.yml +49 -2
- fm_weck/resources/fm_tools/goblint-par.yml +66 -0
- fm_weck/resources/fm_tools/goblint.yml +239 -12
- fm_weck/resources/fm_tools/goblitch.yml +77 -0
- fm_weck/resources/fm_tools/graves-par.yml +4 -1
- fm_weck/resources/fm_tools/graves.yml +20 -5
- fm_weck/resources/fm_tools/gwit.yml +13 -3
- fm_weck/resources/fm_tools/hornix.yml +26 -4
- fm_weck/resources/fm_tools/hybridtiger.yml +12 -1
- fm_weck/resources/fm_tools/iekke.yml +73 -0
- fm_weck/resources/fm_tools/infer.yml +12 -0
- fm_weck/resources/fm_tools/java-ranger.yml +18 -0
- fm_weck/resources/fm_tools/jayhorn.yml +50 -4
- fm_weck/resources/fm_tools/jbmc.yml +17 -1
- fm_weck/resources/fm_tools/jcwit.yml +12 -2
- fm_weck/resources/fm_tools/jdart.yml +16 -1
- fm_weck/resources/fm_tools/jlisa.yml +105 -0
- fm_weck/resources/fm_tools/klee.yml +12 -1
- fm_weck/resources/fm_tools/kleef.yml +18 -0
- fm_weck/resources/fm_tools/korn.yml +23 -1
- fm_weck/resources/fm_tools/lazycseq.yml +16 -1
- fm_weck/resources/fm_tools/legion-symcc.yml +5 -1
- fm_weck/resources/fm_tools/legion.yml +7 -4
- fm_weck/resources/fm_tools/lf-checker.yml +16 -1
- fm_weck/resources/fm_tools/liv.yml +48 -3
- fm_weck/resources/fm_tools/locksmith.yml +16 -1
- fm_weck/resources/fm_tools/metaval++.yml +1 -1
- fm_weck/resources/fm_tools/metaval.yml +121 -6
- fm_weck/resources/fm_tools/mlb.yml +23 -1
- fm_weck/resources/fm_tools/mopsa.yml +100 -7
- fm_weck/resources/fm_tools/muval.yml +120 -0
- fm_weck/resources/fm_tools/nacpa.yml +57 -2
- fm_weck/resources/fm_tools/nitwit.yml +13 -3
- fm_weck/resources/fm_tools/ogchecker.yml +47 -0
- fm_weck/resources/fm_tools/owic.yml +16 -2
- fm_weck/resources/fm_tools/pesco.yml +19 -1
- fm_weck/resources/fm_tools/pichecker.yml +16 -1
- fm_weck/resources/fm_tools/pinaka.yml +14 -1
- fm_weck/resources/fm_tools/predatorhp.yml +12 -0
- fm_weck/resources/fm_tools/proton.yml +26 -1
- fm_weck/resources/fm_tools/prtest.yml +23 -0
- fm_weck/resources/fm_tools/pysvlib-linter.yml +77 -0
- fm_weck/resources/fm_tools/pysvlib-validator.yml +76 -0
- fm_weck/resources/fm_tools/racerf.yml +27 -4
- fm_weck/resources/fm_tools/re3ver.yml +78 -0
- fm_weck/resources/fm_tools/rizzer.yml +11 -1
- fm_weck/resources/fm_tools/schema.yml +185 -4
- fm_weck/resources/fm_tools/seal.yml +67 -0
- fm_weck/resources/fm_tools/sikraken.yml +25 -1
- fm_weck/resources/fm_tools/spf.yml +14 -1
- fm_weck/resources/fm_tools/sv-sanitizers.yml +46 -3
- fm_weck/resources/fm_tools/svf-svc.yml +33 -1
- fm_weck/resources/fm_tools/svlibchecker.yml +82 -0
- fm_weck/resources/fm_tools/swat.yml +30 -0
- fm_weck/resources/fm_tools/symbiotic-witch.yml +31 -6
- fm_weck/resources/fm_tools/symbiotic.yml +64 -1
- fm_weck/resources/fm_tools/testcoca.yml +53 -0
- fm_weck/resources/fm_tools/testcov.yml +97 -0
- fm_weck/resources/fm_tools/theta.yml +100 -2
- fm_weck/resources/fm_tools/thorn.yml +22 -1
- fm_weck/resources/fm_tools/tracerx-wp.yml +18 -0
- fm_weck/resources/fm_tools/tracerx.yml +22 -0
- fm_weck/resources/fm_tools/uautomizer.yml +186 -19
- fm_weck/resources/fm_tools/ugemcutter.yml +97 -9
- fm_weck/resources/fm_tools/ukojak.yml +55 -9
- fm_weck/resources/fm_tools/uparalizer.yml +78 -0
- fm_weck/resources/fm_tools/ureferee.yml +83 -13
- fm_weck/resources/fm_tools/utaipan.yml +61 -9
- fm_weck/resources/fm_tools/utestgen.yml +36 -0
- fm_weck/resources/fm_tools/veriabs.yml +12 -0
- fm_weck/resources/fm_tools/veriabsl.yml +16 -0
- fm_weck/resources/fm_tools/verioover.yml +16 -1
- fm_weck/resources/fm_tools/wasp-c.yml +16 -1
- fm_weck/resources/fm_tools/wit4java.yml +36 -4
- fm_weck/resources/fm_tools/witch.yml +29 -4
- fm_weck/resources/fm_tools/witnesslint.yml +111 -8
- fm_weck/resources/fm_tools/witnessmap.yml +29 -1
- fm_weck/run_result.py +15 -11
- fm_weck/runexec_mode.py +37 -7
- fm_weck/smoke_test_mode.py +6 -10
- fm_weck/zenodo.py +381 -0
- {fm_weck-1.5.2.dist-info → fm_weck-1.6.0.dist-info}/METADATA +2 -1
- fm_weck-1.6.0.dist-info/RECORD +188 -0
- {fm_weck-1.5.2.dist-info → fm_weck-1.6.0.dist-info}/WHEEL +1 -1
- fm_weck-1.5.2.dist-info/RECORD +0 -171
- {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
|
-
-
|
|
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
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
10
|
-
repository_url: https://github.com/ayazip/witch
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
9
|
+
from typing import TYPE_CHECKING
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
from benchexec.
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
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
|
-
|
|
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)
|
fm_weck/smoke_test_mode.py
CHANGED
|
@@ -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
|
-
|
|
64
|
-
|
|
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
|
|
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
|