fm-weck 1.4.4__py3-none-any.whl → 1.4.6__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/__main__.py +1 -0
- fm_weck/cache_mgr.py +47 -0
- fm_weck/cli.py +120 -11
- fm_weck/engine.py +86 -17
- fm_weck/exceptions.py +1 -0
- fm_weck/resources/{BenchExec-3.25-py3-none-any.whl → BenchExec-3.27-py3-none-any.whl} +0 -0
- fm_weck/resources/__init__.py +1 -1
- fm_weck/resources/fm_tools/2ls.yml +32 -7
- fm_weck/resources/fm_tools/aise.yml +6 -1
- fm_weck/resources/fm_tools/aprove.yml +73 -72
- fm_weck/resources/fm_tools/blast.yml +58 -0
- fm_weck/resources/fm_tools/brick.yml +4 -4
- fm_weck/resources/fm_tools/bubaak-split.yml +3 -3
- fm_weck/resources/fm_tools/bubaak.yml +4 -4
- fm_weck/resources/fm_tools/cadp.yml +95 -0
- fm_weck/resources/fm_tools/cbmc.yml +8 -4
- fm_weck/resources/fm_tools/cetfuzz.yml +4 -3
- fm_weck/resources/fm_tools/coastal.yml +13 -8
- fm_weck/resources/fm_tools/concurrentwitness2test.yml +4 -1
- fm_weck/resources/fm_tools/cooperace.yml +7 -6
- fm_weck/resources/fm_tools/coveriteam-verifier-algo-selection.yml +9 -20
- fm_weck/resources/fm_tools/coveriteam-verifier-parallel-portfolio.yml +9 -20
- fm_weck/resources/fm_tools/coveritest.yml +27 -6
- fm_weck/resources/fm_tools/cpa-bam-bnb.yml +13 -9
- fm_weck/resources/fm_tools/cpa-bam-smg.yml +12 -7
- fm_weck/resources/fm_tools/cpa-lockator.yml +13 -9
- fm_weck/resources/fm_tools/cpa-witness2test.yml +13 -3
- fm_weck/resources/fm_tools/cpachecker.yml +6 -3
- fm_weck/resources/fm_tools/cpv.yml +2 -0
- fm_weck/resources/fm_tools/crux.yml +20 -8
- fm_weck/resources/fm_tools/cseq.yml +9 -4
- fm_weck/resources/fm_tools/dartagnan.yml +12 -1
- fm_weck/resources/fm_tools/deagle.yml +5 -0
- fm_weck/resources/fm_tools/divine.yml +20 -11
- fm_weck/resources/fm_tools/ebf.yml +8 -5
- fm_weck/resources/fm_tools/emergentheta.yml +9 -2
- fm_weck/resources/fm_tools/esbmc-incr.yml +13 -10
- fm_weck/resources/fm_tools/esbmc-kind.yml +12 -11
- fm_weck/resources/fm_tools/fdse.yml +1 -1
- fm_weck/resources/fm_tools/fizzer.yml +16 -25
- fm_weck/resources/fm_tools/frama-c-sv.yml +3 -2
- fm_weck/resources/fm_tools/fshell-witness2test.yml +9 -6
- fm_weck/resources/fm_tools/fusebmc-ia.yml +6 -3
- fm_weck/resources/fm_tools/fusebmc.yml +26 -6
- fm_weck/resources/fm_tools/gazer-theta.yml +10 -7
- fm_weck/resources/fm_tools/gdart-llvm.yml +8 -4
- fm_weck/resources/fm_tools/gdart.yml +3 -0
- fm_weck/resources/fm_tools/goblint.yml +7 -2
- fm_weck/resources/fm_tools/graves-par.yml +9 -14
- fm_weck/resources/fm_tools/graves.yml +10 -4
- fm_weck/resources/fm_tools/gwit.yml +10 -4
- fm_weck/resources/fm_tools/hornix.yml +12 -7
- fm_weck/resources/fm_tools/hybridtiger.yml +12 -7
- fm_weck/resources/fm_tools/infer.yml +12 -7
- fm_weck/resources/fm_tools/java-ranger.yml +6 -3
- fm_weck/resources/fm_tools/jayhorn.yml +6 -4
- fm_weck/resources/fm_tools/jbmc.yml +11 -2
- fm_weck/resources/fm_tools/jcwit.yml +9 -5
- fm_weck/resources/fm_tools/jdart.yml +12 -7
- fm_weck/resources/fm_tools/klee.yml +13 -8
- fm_weck/resources/fm_tools/kleef.yml +3 -3
- fm_weck/resources/fm_tools/korn.yml +11 -1
- fm_weck/resources/fm_tools/lazycseq.yml +10 -7
- fm_weck/resources/fm_tools/legion-symcc.yml +6 -12
- fm_weck/resources/fm_tools/legion.yml +9 -14
- fm_weck/resources/fm_tools/lf-checker.yml +10 -6
- fm_weck/resources/fm_tools/liv.yml +19 -4
- fm_weck/resources/fm_tools/locksmith.yml +10 -6
- fm_weck/resources/fm_tools/metaval++.yml +19 -3
- fm_weck/resources/fm_tools/metaval.yml +21 -3
- fm_weck/resources/fm_tools/mlb.yml +6 -6
- fm_weck/resources/fm_tools/mopsa.yml +9 -7
- fm_weck/resources/fm_tools/nacpa.yml +7 -1
- fm_weck/resources/fm_tools/nitwit.yml +5 -3
- fm_weck/resources/fm_tools/owic.yml +4 -3
- fm_weck/resources/fm_tools/pesco.yml +10 -4
- fm_weck/resources/fm_tools/pichecker.yml +10 -6
- fm_weck/resources/fm_tools/pinaka.yml +13 -8
- fm_weck/resources/fm_tools/predatorhp.yml +6 -4
- fm_weck/resources/fm_tools/prism.yml +67 -0
- fm_weck/resources/fm_tools/proton.yml +6 -6
- fm_weck/resources/fm_tools/prtest.yml +22 -6
- fm_weck/resources/fm_tools/racerf.yml +14 -5
- fm_weck/resources/fm_tools/relay-sv.yml +8 -13
- fm_weck/resources/fm_tools/rizzer.yml +8 -12
- fm_weck/resources/fm_tools/schema.yml +60 -3
- fm_weck/resources/fm_tools/sikraken.yml +3 -3
- fm_weck/resources/fm_tools/spf.yml +13 -8
- fm_weck/resources/fm_tools/svf-svc.yml +15 -6
- fm_weck/resources/fm_tools/symbiotic-witch.yml +9 -5
- fm_weck/resources/fm_tools/symbiotic.yml +8 -4
- fm_weck/resources/fm_tools/testcov.yml +63 -5
- fm_weck/resources/fm_tools/theta.yml +8 -4
- fm_weck/resources/fm_tools/thorn.yml +3 -1
- fm_weck/resources/fm_tools/tracerx-wp.yml +11 -2
- fm_weck/resources/fm_tools/tracerx.yml +5 -1
- fm_weck/resources/fm_tools/uautomizer.yml +7 -12
- fm_weck/resources/fm_tools/ugemcutter.yml +8 -2
- fm_weck/resources/fm_tools/ukojak.yml +5 -2
- fm_weck/resources/fm_tools/ureferee.yml +3 -4
- fm_weck/resources/fm_tools/utaipan.yml +8 -2
- fm_weck/resources/fm_tools/utestgen.yml +11 -3
- fm_weck/resources/fm_tools/vercors.yml +94 -0
- fm_weck/resources/fm_tools/veriabs.yml +11 -9
- fm_weck/resources/fm_tools/veriabsl.yml +10 -8
- fm_weck/resources/fm_tools/verifuzz.yml +16 -266
- fm_weck/resources/fm_tools/verioover.yml +10 -6
- fm_weck/resources/fm_tools/wasp-c.yml +6 -4
- fm_weck/resources/fm_tools/wit4java.yml +20 -13
- fm_weck/resources/fm_tools/witch.yml +8 -4
- fm_weck/resources/fm_tools/witnesslint.yml +37 -9
- fm_weck/resources/fm_tools/witnessmap.yml +16 -2
- fm_weck/run_result.py +38 -0
- fm_weck/runexec_mode.py +7 -2
- fm_weck/serve.py +66 -12
- fm_weck/version_listing.py +25 -0
- {fm_weck-1.4.4.dist-info → fm_weck-1.4.6.dist-info}/METADATA +4 -2
- fm_weck-1.4.6.dist-info/RECORD +153 -0
- {fm_weck-1.4.4.dist-info → fm_weck-1.4.6.dist-info}/WHEEL +1 -1
- fm_weck-1.4.4.dist-info/RECORD +0 -146
- /fm_weck/resources/{BenchExec-3.25-py3-none-any.whl.license → BenchExec-3.27-py3-none-any.whl.license} +0 -0
- {fm_weck-1.4.4.dist-info → fm_weck-1.4.6.dist-info}/entry_points.txt +0 -0
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
id: witnesslint
|
|
2
2
|
name: WitnessLint
|
|
3
|
+
description: |
|
|
4
|
+
WitnessLint is a simple witness validator that
|
|
5
|
+
rejects only witnesses that do not adhere to the witness format specification.
|
|
6
|
+
It does this through syntactic checks of the verification witnesses.
|
|
7
|
+
It is used by the competition SV-COMP to 'desk-reject' witnesses
|
|
8
|
+
that do not adhere to the format specification,
|
|
9
|
+
such that invalid witnesses do not yield points in the competition.
|
|
3
10
|
input_languages:
|
|
4
11
|
- C
|
|
5
12
|
- Java
|
|
@@ -14,6 +21,11 @@ fmtools_entry_maintainers:
|
|
|
14
21
|
- PhilippWendler
|
|
15
22
|
|
|
16
23
|
maintainers:
|
|
24
|
+
- orcid: 0000-0003-4832-7662
|
|
25
|
+
name: Dirk Beyer
|
|
26
|
+
institution: LMU Munich
|
|
27
|
+
country: Germany
|
|
28
|
+
url: https://www.sosy-lab.org/people/dbeyer/
|
|
17
29
|
- name: Marian Lingsch-Rosenfeld
|
|
18
30
|
orcid: 0000-0002-8172-3184
|
|
19
31
|
institution: LMU Munich
|
|
@@ -22,32 +34,32 @@ maintainers:
|
|
|
22
34
|
|
|
23
35
|
versions:
|
|
24
36
|
- version: "svcomp25-correctness-graphml"
|
|
25
|
-
doi: 10.5281/zenodo.
|
|
26
|
-
benchexec_toolinfo_options: ["--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
|
|
37
|
+
doi: 10.5281/zenodo.15050742
|
|
38
|
+
benchexec_toolinfo_options: ["--witness", "${witness}", "--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
|
|
27
39
|
required_ubuntu_packages:
|
|
28
40
|
- python3-lxml
|
|
29
41
|
- python3-jsonschema
|
|
30
42
|
- python3-yaml
|
|
31
43
|
- python3-pycparser
|
|
32
44
|
- version: "svcomp25-violation-graphml"
|
|
33
|
-
doi: 10.5281/zenodo.
|
|
34
|
-
benchexec_toolinfo_options: ["--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
|
|
45
|
+
doi: 10.5281/zenodo.15050742
|
|
46
|
+
benchexec_toolinfo_options: ["--witness", "${witness}", "--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
|
|
35
47
|
required_ubuntu_packages:
|
|
36
48
|
- python3-lxml
|
|
37
49
|
- python3-jsonschema
|
|
38
50
|
- python3-yaml
|
|
39
51
|
- python3-pycparser
|
|
40
52
|
- version: "svcomp25-correctness-yaml"
|
|
41
|
-
doi: 10.5281/zenodo.
|
|
42
|
-
benchexec_toolinfo_options: ["--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
|
|
53
|
+
doi: 10.5281/zenodo.15050742
|
|
54
|
+
benchexec_toolinfo_options: ["--witness", "${witness}", "--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
|
|
43
55
|
required_ubuntu_packages:
|
|
44
56
|
- python3-lxml
|
|
45
57
|
- python3-jsonschema
|
|
46
58
|
- python3-yaml
|
|
47
59
|
- python3-pycparser
|
|
48
60
|
- version: "svcomp25-violation-yaml"
|
|
49
|
-
doi: 10.5281/zenodo.
|
|
50
|
-
benchexec_toolinfo_options: ["--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
|
|
61
|
+
doi: 10.5281/zenodo.15050742
|
|
62
|
+
benchexec_toolinfo_options: ["--witness", "${witness}", "--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
|
|
51
63
|
required_ubuntu_packages:
|
|
52
64
|
- python3-lxml
|
|
53
65
|
- python3-jsonschema
|
|
@@ -89,6 +101,8 @@ versions:
|
|
|
89
101
|
competition_participations:
|
|
90
102
|
- competition: "SV-COMP 2025"
|
|
91
103
|
track: "Validation of Correctness Witnesses 1.0"
|
|
104
|
+
label:
|
|
105
|
+
- auxiliary
|
|
92
106
|
tool_version: "svcomp25-correctness-graphml"
|
|
93
107
|
jury_member:
|
|
94
108
|
orcid: 0000-0002-8172-3184
|
|
@@ -98,6 +112,8 @@ competition_participations:
|
|
|
98
112
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
99
113
|
- competition: "SV-COMP 2025"
|
|
100
114
|
track: "Validation of Correctness Witnesses 2.0"
|
|
115
|
+
label:
|
|
116
|
+
- auxiliary
|
|
101
117
|
tool_version: "svcomp25-correctness-yaml"
|
|
102
118
|
jury_member:
|
|
103
119
|
orcid: 0000-0002-8172-3184
|
|
@@ -107,6 +123,8 @@ competition_participations:
|
|
|
107
123
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
108
124
|
- competition: "SV-COMP 2025"
|
|
109
125
|
track: "Validation of Violation Witnesses 1.0"
|
|
126
|
+
label:
|
|
127
|
+
- auxiliary
|
|
110
128
|
tool_version: "svcomp25-violation-graphml"
|
|
111
129
|
jury_member:
|
|
112
130
|
orcid: 0000-0002-8172-3184
|
|
@@ -116,6 +134,8 @@ competition_participations:
|
|
|
116
134
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
117
135
|
- competition: "SV-COMP 2025"
|
|
118
136
|
track: "Validation of Violation Witnesses 2.0"
|
|
137
|
+
label:
|
|
138
|
+
- auxiliary
|
|
119
139
|
tool_version: "svcomp25-violation-yaml"
|
|
120
140
|
jury_member:
|
|
121
141
|
orcid: 0000-0002-8172-3184
|
|
@@ -125,6 +145,8 @@ competition_participations:
|
|
|
125
145
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
126
146
|
- competition: "SV-COMP 2024"
|
|
127
147
|
track: "Validation of Correctness Witnesses 1.0"
|
|
148
|
+
label:
|
|
149
|
+
- auxiliary
|
|
128
150
|
tool_version: "svcomp24-correctness-graphml"
|
|
129
151
|
jury_member:
|
|
130
152
|
orcid: 0000-0002-8172-3184
|
|
@@ -134,6 +156,8 @@ competition_participations:
|
|
|
134
156
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
135
157
|
- competition: "SV-COMP 2024"
|
|
136
158
|
track: "Validation of Correctness Witnesses 2.0"
|
|
159
|
+
label:
|
|
160
|
+
- auxiliary
|
|
137
161
|
tool_version: "svcomp24-correctness-yaml"
|
|
138
162
|
jury_member:
|
|
139
163
|
orcid: 0000-0002-8172-3184
|
|
@@ -143,6 +167,8 @@ competition_participations:
|
|
|
143
167
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
144
168
|
- competition: "SV-COMP 2024"
|
|
145
169
|
track: "Validation of Violation Witnesses 1.0"
|
|
170
|
+
label:
|
|
171
|
+
- auxiliary
|
|
146
172
|
tool_version: "svcomp24-violation-graphml"
|
|
147
173
|
jury_member:
|
|
148
174
|
orcid: 0000-0002-8172-3184
|
|
@@ -152,6 +178,8 @@ competition_participations:
|
|
|
152
178
|
url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
|
|
153
179
|
- competition: "SV-COMP 2024"
|
|
154
180
|
track: "Validation of Violation Witnesses 2.0"
|
|
181
|
+
label:
|
|
182
|
+
- auxiliary
|
|
155
183
|
tool_version: "svcomp24-violation-yaml"
|
|
156
184
|
jury_member:
|
|
157
185
|
orcid: 0000-0002-8172-3184
|
|
@@ -166,4 +194,4 @@ frameworks_solvers: []
|
|
|
166
194
|
|
|
167
195
|
used_actors: []
|
|
168
196
|
|
|
169
|
-
literature: []
|
|
197
|
+
literature: []
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
id: witnessmap
|
|
2
2
|
name: WitnessMap
|
|
3
|
+
description: |
|
|
4
|
+
WitnessMap is a simple tool with the same input and output as a verifier that
|
|
5
|
+
only copies witnesses contained in validation tasks
|
|
6
|
+
to its output folder.
|
|
7
|
+
It is used by SV-COMP to place existing verification witnesses
|
|
8
|
+
at the location where the competition infrastructure expects them
|
|
9
|
+
(this way, the witness is technically 'produced' by a tool
|
|
10
|
+
with the same interface as a verifier).
|
|
3
11
|
input_languages:
|
|
4
12
|
- C
|
|
5
|
-
- Java
|
|
6
13
|
project_url: https://gitlab.com/sosy-lab/software/witnessmap
|
|
7
14
|
repository_url: https://gitlab.com/sosy-lab/software/witnessmap
|
|
8
15
|
spdx_license_identifier: Apache-2.0
|
|
@@ -14,6 +21,11 @@ fmtools_entry_maintainers:
|
|
|
14
21
|
- PhilippWendler
|
|
15
22
|
|
|
16
23
|
maintainers:
|
|
24
|
+
- orcid: 0000-0003-4832-7662
|
|
25
|
+
name: Dirk Beyer
|
|
26
|
+
institution: LMU Munich
|
|
27
|
+
country: Germany
|
|
28
|
+
url: https://www.sosy-lab.org/people/dbeyer/
|
|
17
29
|
- name: Marian Lingsch-Rosenfeld
|
|
18
30
|
orcid: 0000-0002-8172-3184
|
|
19
31
|
institution: LMU Munich
|
|
@@ -23,13 +35,15 @@ maintainers:
|
|
|
23
35
|
versions:
|
|
24
36
|
- version: "svcomp25"
|
|
25
37
|
doi: 10.5281/zenodo.14205153
|
|
26
|
-
benchexec_toolinfo_options: [
|
|
38
|
+
benchexec_toolinfo_options: []
|
|
27
39
|
required_ubuntu_packages:
|
|
28
40
|
- python3-yaml
|
|
29
41
|
|
|
30
42
|
competition_participations:
|
|
31
43
|
- competition: "SV-COMP 2025"
|
|
32
44
|
track: "Verification"
|
|
45
|
+
label:
|
|
46
|
+
- auxiliary
|
|
33
47
|
tool_version: "svcomp25"
|
|
34
48
|
jury_member:
|
|
35
49
|
orcid: 0000-0002-8172-3184
|
fm_weck/run_result.py
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# This file is part of fm-weck: executing fm-tools in containerized environments.
|
|
2
|
+
# https://gitlab.com/sosy-lab/software/fm-weck
|
|
3
|
+
#
|
|
4
|
+
# SPDX-FileCopyrightText: 2024 Dirk Beyer <https://www.sosy-lab.org>
|
|
5
|
+
#
|
|
6
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
|
|
8
|
+
from dataclasses import dataclass
|
|
9
|
+
from functools import singledispatchmethod
|
|
10
|
+
|
|
11
|
+
from benchexec.tools.template import BaseTool2
|
|
12
|
+
from benchexec.util import ProcessExitCode
|
|
13
|
+
from fm_tools import FmData
|
|
14
|
+
from fm_tools.run import get_tool_info
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@dataclass(frozen=True)
|
|
18
|
+
class RunResult:
|
|
19
|
+
command: tuple[str, ...]
|
|
20
|
+
exit_code: int
|
|
21
|
+
raw_output: str
|
|
22
|
+
|
|
23
|
+
def as_benchexec_run(self):
|
|
24
|
+
return BaseTool2.Run(
|
|
25
|
+
cmdline=self.command,
|
|
26
|
+
exit_code=ProcessExitCode.from_raw(self.exit_code),
|
|
27
|
+
output=BaseTool2.RunOutput(self.raw_output.splitlines(keepends=True)),
|
|
28
|
+
termination_reason=False, # TODO: We do not know about this
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
@singledispatchmethod
|
|
32
|
+
def determine_result(self, tool: BaseTool2) -> str:
|
|
33
|
+
return tool.determine_result(self.as_benchexec_run())
|
|
34
|
+
|
|
35
|
+
@determine_result.register
|
|
36
|
+
def _(self, tool: FmData) -> str:
|
|
37
|
+
tool = get_tool_info(tool)
|
|
38
|
+
return self.determine_result(tool)
|
fm_weck/runexec_mode.py
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import logging
|
|
9
9
|
import shutil
|
|
10
10
|
from pathlib import Path
|
|
11
|
-
from typing import Optional
|
|
11
|
+
from typing import TYPE_CHECKING, Optional
|
|
12
12
|
|
|
13
13
|
from fm_weck.resources import BENCHEXEC_WHL
|
|
14
14
|
from fm_weck.runexec_util import mountable_absolute_paths_of_command
|
|
@@ -18,6 +18,9 @@ from .engine import CACHE_MOUNT_LOCATION, Engine
|
|
|
18
18
|
|
|
19
19
|
logger = logging.getLogger(__name__)
|
|
20
20
|
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
from fm_weck.run_result import RunResult
|
|
23
|
+
|
|
21
24
|
|
|
22
25
|
def run_runexec(
|
|
23
26
|
benchexec_package: Optional[Path],
|
|
@@ -25,7 +28,7 @@ def run_runexec(
|
|
|
25
28
|
configuration: Config,
|
|
26
29
|
extra_container_args: list[list[str]],
|
|
27
30
|
command: list[str],
|
|
28
|
-
):
|
|
31
|
+
) -> "RunResult":
|
|
29
32
|
if use_image is not None:
|
|
30
33
|
configuration.set_default_image(use_image)
|
|
31
34
|
|
|
@@ -50,4 +53,6 @@ def run_runexec(
|
|
|
50
53
|
|
|
51
54
|
configuration.make_runexec_script_available()
|
|
52
55
|
|
|
56
|
+
engine.handle_io = False
|
|
57
|
+
|
|
53
58
|
return engine.run(f"{CACHE_MOUNT_LOCATION}/.scripts/runexec", *command)
|
fm_weck/serve.py
CHANGED
|
@@ -16,6 +16,8 @@ from typing import Optional, Tuple, Union
|
|
|
16
16
|
from fm_tools import FmData
|
|
17
17
|
from fm_tools.benchexec_helper import DataModel
|
|
18
18
|
|
|
19
|
+
from fm_weck.run_result import RunResult
|
|
20
|
+
|
|
19
21
|
from .config import Config, parse_fm_data
|
|
20
22
|
from .engine import CACHE_MOUNT_LOCATION, Engine
|
|
21
23
|
|
|
@@ -58,7 +60,10 @@ def update_checksum(shelve_space: Path, checksum: str, config: Config):
|
|
|
58
60
|
|
|
59
61
|
|
|
60
62
|
def setup_fm_tool(
|
|
61
|
-
fm_tool: Union[Path, FmData],
|
|
63
|
+
fm_tool: Union[Path, FmData],
|
|
64
|
+
version: Optional[str],
|
|
65
|
+
configuration: Config,
|
|
66
|
+
offline_mode: bool = False,
|
|
62
67
|
) -> Tuple[FmData, Path]:
|
|
63
68
|
# Don't explicitly disallow non-FmData here; Pythonic Users might want to exchange the FmData object
|
|
64
69
|
# by a class with the same interface
|
|
@@ -66,8 +71,9 @@ def setup_fm_tool(
|
|
|
66
71
|
|
|
67
72
|
shelve_space = configuration.get_shelve_space_for(fm_data)
|
|
68
73
|
logger.debug("Using shelve space %s", shelve_space)
|
|
74
|
+
skip_download = offline_mode
|
|
69
75
|
|
|
70
|
-
if (not
|
|
76
|
+
if (not offline_mode) and shelve_space.exists() and shelve_space.is_dir():
|
|
71
77
|
logger.debug("Shelve space already exists, testing checksum")
|
|
72
78
|
checksum = fm_data.archive_location.checksum()
|
|
73
79
|
skip_download = check_cache_entry(shelve_space, checksum, configuration)
|
|
@@ -77,7 +83,17 @@ def setup_fm_tool(
|
|
|
77
83
|
checksum = fm_data.archive_location.checksum()
|
|
78
84
|
update_checksum(shelve_space, checksum, configuration)
|
|
79
85
|
|
|
80
|
-
fm_data.get_toolinfo_module()
|
|
86
|
+
tool_info_module = fm_data.get_toolinfo_module()
|
|
87
|
+
|
|
88
|
+
if (not offline_mode) or tool_info_module._trivially_resolved():
|
|
89
|
+
tool_info_module.resolve(target_dir=shelve_space)
|
|
90
|
+
else:
|
|
91
|
+
file_name = tool_info_module.raw.rpartition("/")[-1]
|
|
92
|
+
tool_info_module._target_location = target = shelve_space / file_name
|
|
93
|
+
tool_info_module.resolved = "." + target.stem
|
|
94
|
+
|
|
95
|
+
if tool_info_module._target_location:
|
|
96
|
+
sys.path.insert(0, str(tool_info_module._target_location.parent))
|
|
81
97
|
|
|
82
98
|
return fm_data, shelve_space
|
|
83
99
|
|
|
@@ -89,11 +105,14 @@ def run_guided(
|
|
|
89
105
|
prop: Optional[Path],
|
|
90
106
|
program_files: list[Path],
|
|
91
107
|
additional_args: list[str],
|
|
108
|
+
witness: Optional[Path] = None,
|
|
92
109
|
data_model: Optional[DataModel] = None,
|
|
93
|
-
|
|
110
|
+
offline_mode: bool = False,
|
|
94
111
|
log_output_to: Optional[Path] = None,
|
|
95
112
|
output_files_to: Optional[Path] = None,
|
|
96
|
-
|
|
113
|
+
timeout_sec: Optional[float] = None,
|
|
114
|
+
print_tool_output_to_console: bool = True,
|
|
115
|
+
) -> RunResult:
|
|
97
116
|
property_path = None
|
|
98
117
|
if prop is not None:
|
|
99
118
|
try:
|
|
@@ -104,11 +123,11 @@ def run_guided(
|
|
|
104
123
|
shutil.copyfile(source_property_path, property_path)
|
|
105
124
|
except KeyError:
|
|
106
125
|
logger.error("Unknown property %s", prop)
|
|
107
|
-
return 1
|
|
126
|
+
return 1, None
|
|
108
127
|
|
|
109
128
|
configuration.make_script_available()
|
|
110
129
|
|
|
111
|
-
fm_data, shelve_space = setup_fm_tool(fm_tool, version, configuration,
|
|
130
|
+
fm_data, shelve_space = setup_fm_tool(fm_tool, version, configuration, offline_mode)
|
|
112
131
|
engine = Engine.from_config(fm_data, configuration)
|
|
113
132
|
|
|
114
133
|
if log_output_to is not None:
|
|
@@ -116,6 +135,7 @@ def run_guided(
|
|
|
116
135
|
|
|
117
136
|
if output_files_to is not None:
|
|
118
137
|
engine.set_output_files_dir(output_files_to)
|
|
138
|
+
engine.print_output_to_stdout = print_tool_output_to_console
|
|
119
139
|
|
|
120
140
|
current_dir = Path.cwd().resolve()
|
|
121
141
|
os.chdir(shelve_space)
|
|
@@ -130,9 +150,22 @@ def run_guided(
|
|
|
130
150
|
)
|
|
131
151
|
os.chdir(current_dir)
|
|
132
152
|
|
|
153
|
+
# There are two ways to pass the witness
|
|
154
|
+
# 1. Through the task options in BenchExec using {"witness": filename} and adding the witness to the input files
|
|
155
|
+
# 2. Replacing the placeholder in FM-Data "${witness}" with the correct path
|
|
156
|
+
#
|
|
157
|
+
# We are using the second approach here, in order to avoid modifying FM-Data
|
|
158
|
+
if witness is not None:
|
|
159
|
+
assert any(c == "${witness}" for c in command), "The version given does not support witness files"
|
|
160
|
+
command = [witness if c == "${witness}" else c for c in command]
|
|
161
|
+
|
|
133
162
|
logger.debug("Assembled command from fm-tools: %s", command)
|
|
134
163
|
|
|
135
|
-
|
|
164
|
+
execution_result = engine.run(
|
|
165
|
+
f"{CACHE_MOUNT_LOCATION}/.scripts/run_with_overlay.sh", shelve_space.name, *command, timeout_sec=timeout_sec
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
return execution_result
|
|
136
169
|
|
|
137
170
|
|
|
138
171
|
def run_manual(
|
|
@@ -140,12 +173,33 @@ def run_manual(
|
|
|
140
173
|
version: Optional[str],
|
|
141
174
|
configuration: Config,
|
|
142
175
|
command: list[str],
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
176
|
+
offline_mode: bool = False,
|
|
177
|
+
log_output_to: Optional[Path] = None,
|
|
178
|
+
output_files_to: Optional[Path] = None,
|
|
179
|
+
timeout_sec: Optional[float] = None,
|
|
180
|
+
print_tool_output_to_console: bool = True,
|
|
181
|
+
) -> RunResult:
|
|
182
|
+
fm_data, shelve_space = setup_fm_tool(fm_tool, version, configuration, offline_mode)
|
|
146
183
|
engine = Engine.from_config(fm_data, configuration)
|
|
147
184
|
|
|
185
|
+
if log_output_to is not None:
|
|
186
|
+
engine.set_output_log(log_output_to)
|
|
187
|
+
|
|
188
|
+
if output_files_to is not None:
|
|
189
|
+
engine.set_output_files_dir(output_files_to)
|
|
190
|
+
|
|
148
191
|
executable = fm_data.get_executable_path(shelve_space)
|
|
149
192
|
logger.debug("Using executable %s", executable)
|
|
150
193
|
logger.debug("Assembled command %s", [executable, *command])
|
|
151
|
-
|
|
194
|
+
|
|
195
|
+
if log_output_to is not None:
|
|
196
|
+
engine.set_output_log(log_output_to)
|
|
197
|
+
|
|
198
|
+
if output_files_to is not None:
|
|
199
|
+
engine.set_output_files_dir(output_files_to)
|
|
200
|
+
|
|
201
|
+
engine.print_output_to_stdout = print_tool_output_to_console
|
|
202
|
+
|
|
203
|
+
execution_result = engine.run(executable, *command, timeout_sec=timeout_sec)
|
|
204
|
+
|
|
205
|
+
return execution_result
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This file is part of fm-weck: executing fm-tools in containerized environments.
|
|
2
|
+
# https://gitlab.com/sosy-lab/software/fm-weck
|
|
3
|
+
#
|
|
4
|
+
# SPDX-FileCopyrightText: 2024 Dirk Beyer <https://www.sosy-lab.org>
|
|
5
|
+
#
|
|
6
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
|
|
8
|
+
import yaml
|
|
9
|
+
from tabulate import tabulate
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class VersionListing:
|
|
13
|
+
tool_and_version: dict[str, list] = {}
|
|
14
|
+
|
|
15
|
+
def __init__(self, tool_paths: list):
|
|
16
|
+
for tool_path in tool_paths:
|
|
17
|
+
with open(tool_path) as stream:
|
|
18
|
+
tool_data = yaml.safe_load(stream)
|
|
19
|
+
|
|
20
|
+
versions = [version_data["version"] for version_data in tool_data["versions"]]
|
|
21
|
+
self.tool_and_version[tool_data["name"]] = versions
|
|
22
|
+
|
|
23
|
+
def print_versions(self):
|
|
24
|
+
data_list = list(self.tool_and_version.items())
|
|
25
|
+
print(tabulate(data_list, headers=["TOOL", "VERSIONS"], tablefmt="fancy_grid"))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: fm-weck
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.6
|
|
4
4
|
Author-email: Henrik Wachowitz <henrik.wachowitz@ifi.lmu.de>
|
|
5
5
|
Maintainer-email: Henrik Wachowitz <henrik.wachowitz@ifi.lmu.de>
|
|
6
6
|
Classifier: Development Status :: 4 - Beta
|
|
@@ -10,8 +10,10 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.11
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.12
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
|
+
Requires-Dist: argcomplete
|
|
13
14
|
Requires-Dist: fm-tools>=0.3.3
|
|
14
15
|
Requires-Dist: pyyaml>=6.0
|
|
16
|
+
Requires-Dist: tabulate
|
|
15
17
|
Requires-Dist: tomli>=2.0; python_version <= '3.10'
|
|
16
18
|
Requires-Dist: yaspin>=3.0
|
|
17
19
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
fm_weck/__init__.py,sha256=DV5C4Bm7M37AnsKAzMOPeyxn9kt_BMFQM69KKWhiOos,351
|
|
2
|
+
fm_weck/__main__.py,sha256=IfNDAqM6MK6P7KsQoW3wOHPOscB8evdVlS9C7R4wd_0,391
|
|
3
|
+
fm_weck/cache_mgr.py,sha256=3-OQFmCeswazXmX08ND4oEHFOR07ZDCwWzjmFTDkOSE,1373
|
|
4
|
+
fm_weck/cli.py,sha256=3XfzaMqh2Bl_Es3n_7Kv80LScJmQdI6et0tcEI_Z2W4,17069
|
|
5
|
+
fm_weck/config.py,sha256=AAp5qPZfx2Gh-43jySzfHzHOEmbduHJalA7guV9SIzI,7340
|
|
6
|
+
fm_weck/engine.py,sha256=PfcjtN-szlpinSFtv1uE0zs_w__GvR8BSlqbz0u6lII,16742
|
|
7
|
+
fm_weck/exceptions.py,sha256=xXxbYK-FZW6YksBtaN79KaA4fGnFCBO-wc0QMqtq3Og,282
|
|
8
|
+
fm_weck/image_mgr.py,sha256=f1RlmQPBiMrsqPyH1Rtfb8WMp2YBq-7z-Rto_kCfS7U,1861
|
|
9
|
+
fm_weck/run_result.py,sha256=b7t_g6qN2GFGPW6cCoLX_BWMSQ_Q-1cca3Fw3lmIB9M,1207
|
|
10
|
+
fm_weck/runexec_mode.py,sha256=vV90CfxwvoR1ApwL4BXq2q_7f8wjSFsS5XQyugDFWMQ,1909
|
|
11
|
+
fm_weck/runexec_util.py,sha256=YBvVIPpmEousZVxbZ5NS8jzpKPLyws31kIFE2z3Ki2E,1370
|
|
12
|
+
fm_weck/serve.py,sha256=JaaOi2ipJbPiATHVcpjXOoE8XyuoWXSFlrKtdfkqjU8,7342
|
|
13
|
+
fm_weck/version_listing.py,sha256=caaoC3n9R-Ao2sEQ_ngOVO3bnKr7cNVeH6EiA8jO5Sc,864
|
|
14
|
+
fm_weck/resources/BenchExec-3.27-py3-none-any.whl,sha256=g-db8LM8HfqLhbnl7n5lvUbMnF2tZ4MHAVOxTGxqO8w,732849
|
|
15
|
+
fm_weck/resources/BenchExec-3.27-py3-none-any.whl.license,sha256=Nq2Mwgn_pyr6ZZrTT095QPtFP3hr15ZeIRIaY0B7eC8,201
|
|
16
|
+
fm_weck/resources/Containerfile,sha256=MltxP1of9klsQFNR8WyngRTJrPwxQTF4C9ennRxVqSo,391
|
|
17
|
+
fm_weck/resources/__init__.py,sha256=XRQiBOncbVvTqZkJ6vSuvu5SUYd3zEV-dGHZTmmLsEM,1023
|
|
18
|
+
fm_weck/resources/run_with_overlay.sh,sha256=v1gV_6kMQ0v9BQ3chgDqI1MAOLHbPWeeTC52aCqVpEM,1162
|
|
19
|
+
fm_weck/resources/runexec,sha256=ogIBO38HLu9C9kDTTANBgAqVnH-UIF1bSJ9d3DSjyF4,462
|
|
20
|
+
fm_weck/resources/properties/coverage-branches.prp,sha256=Gl2r1cgBFoh4M2laa8dVGhteHkL04oiBRLzxz_hbkEU,56
|
|
21
|
+
fm_weck/resources/properties/coverage-branches.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
22
|
+
fm_weck/resources/properties/coverage-conditions.prp,sha256=tj307UJBhj-PZqRxjijeNb0foWe2hWIc8CQP54gIUao,57
|
|
23
|
+
fm_weck/resources/properties/coverage-conditions.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
24
|
+
fm_weck/resources/properties/coverage-error-call.prp,sha256=ZHzqgYPHix1PINIcpvq2X0QGEKeB9C0fitoV_OPy9IE,61
|
|
25
|
+
fm_weck/resources/properties/coverage-error-call.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
26
|
+
fm_weck/resources/properties/coverage-statements.prp,sha256=drb8JyyDwwZ-cxbOyuzzapYIkl3r7sTlooBCavarYl4,59
|
|
27
|
+
fm_weck/resources/properties/coverage-statements.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
28
|
+
fm_weck/resources/properties/def-behavior.prp,sha256=MpuBzFOzJA2OpwJFS8HFuSo7E199LOKJNTTwr64Bis0,44
|
|
29
|
+
fm_weck/resources/properties/def-behavior.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
30
|
+
fm_weck/resources/properties/no-data-race.prp,sha256=Md-Kd2iEOHeJ00f7w4mpjK7qL8_wdV8jKmoi2gncjLs,43
|
|
31
|
+
fm_weck/resources/properties/no-data-race.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
32
|
+
fm_weck/resources/properties/no-overflow.prp,sha256=6C9SIsRmR2zEVWX8OecxGdhRLeYlhDkOsMMFHz1O5gI,42
|
|
33
|
+
fm_weck/resources/properties/no-overflow.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
34
|
+
fm_weck/resources/properties/termination.prp,sha256=Hp7ZRB6fd2hRaVeot25TyU6nF7ROZS7e_Gz0tT5ZMfk,35
|
|
35
|
+
fm_weck/resources/properties/termination.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
36
|
+
fm_weck/resources/properties/unreach-call.prp,sha256=DGqQz8OtRUUiWgU33cN7ihHqWje5BsBTuymLdI-BAVA,53
|
|
37
|
+
fm_weck/resources/properties/unreach-call.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
38
|
+
fm_weck/resources/properties/valid-memcleanup.prp,sha256=2oOe4eCP56QonUGOAeTQ0BCetbT4V31epndKobRxg54,48
|
|
39
|
+
fm_weck/resources/properties/valid-memcleanup.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
40
|
+
fm_weck/resources/properties/valid-memsafety.prp,sha256=TUbXRp2ksBzMYK8uZb5mXukRBluuyak3YjwYzWAKc_4,129
|
|
41
|
+
fm_weck/resources/properties/valid-memsafety.prp.license,sha256=KzWZF1bpljIbdvwfzfWoP4DLMq6W1jXNN6WXWF0fxY0,214
|
|
42
|
+
fm_weck/resources/fm_tools/2ls.yml,sha256=39BtjMhYN5wQbGGqJ1Ds1tYISLvTD_r7RYxMtDN-7dA,3916
|
|
43
|
+
fm_weck/resources/fm_tools/aise.yml,sha256=zuzzrM-XuRt1RlsjWeupqN2ydYSiR7PJQSF7Hhfw4Y0,1888
|
|
44
|
+
fm_weck/resources/fm_tools/aprove.yml,sha256=vbYUUb_YCHayyiS1oPCZAwMQyB0RVNzlupbBT1Segas,2431
|
|
45
|
+
fm_weck/resources/fm_tools/blast.yml,sha256=zwPhJN0PfNJo_ZM4a5DNTxKCqc_b0CDaADRf8RlmrVw,1689
|
|
46
|
+
fm_weck/resources/fm_tools/brick.yml,sha256=7mWXlRdc-XiFR2c2wohhuoWHCznmEcnr1i1aLCtcZTk,2007
|
|
47
|
+
fm_weck/resources/fm_tools/bubaak-split.yml,sha256=7hmY5CYgIdQJAXYrpcGwR-3tqDFnQNTemFUforrDojQ,1886
|
|
48
|
+
fm_weck/resources/fm_tools/bubaak.yml,sha256=pcJCljIHYmgEMOdeMp8YQxAURO0WlLQ-FpYlYktQHLw,2171
|
|
49
|
+
fm_weck/resources/fm_tools/cadp.yml,sha256=nJsmaBl4qwLsP_ZKujCY7Gbjc0qWV6FbmErpPPw1f2c,3352
|
|
50
|
+
fm_weck/resources/fm_tools/cbmc.yml,sha256=QfgJxq7aBhRcuQpR1_26wKvumM0H4JH7u3SQ_oXYyBM,2095
|
|
51
|
+
fm_weck/resources/fm_tools/cetfuzz.yml,sha256=4JULcR2E0rM_RhgaFv9x8J34loMwB1uiluIKKcQninw,1808
|
|
52
|
+
fm_weck/resources/fm_tools/coastal.yml,sha256=ebKhmUoTdlCTw6W4jIllpAJ-CSoFfGvaB004fDg17nY,1650
|
|
53
|
+
fm_weck/resources/fm_tools/concurrentwitness2test.yml,sha256=5BwfhoWUjB73W0VBgm56C7chj4jo4QoXhZmRHO59tYQ,2263
|
|
54
|
+
fm_weck/resources/fm_tools/cooperace.yml,sha256=oI5G2GeEHZjAZnkg2rJH0NP4NvV5fLioz2KPd1K7YHo,1136
|
|
55
|
+
fm_weck/resources/fm_tools/coveriteam-verifier-algo-selection.yml,sha256=iTEZlnzfVtDUg-cfDgnebIF9VaJ03m188WIbUt_VcAQ,2159
|
|
56
|
+
fm_weck/resources/fm_tools/coveriteam-verifier-parallel-portfolio.yml,sha256=YaO7dPlUV-ctpHm0jHag39_rWySfQQVUAlqKAUuVUuQ,2143
|
|
57
|
+
fm_weck/resources/fm_tools/coveritest.yml,sha256=BJMeWvHQ1RddlPyaUGnXib7-NzhjQUKvnQcD4naGqbk,3223
|
|
58
|
+
fm_weck/resources/fm_tools/cpa-bam-bnb.yml,sha256=oN3noRPVE68xYeDN1LnvyROypuBEO0ex-GghPp9uMh8,1693
|
|
59
|
+
fm_weck/resources/fm_tools/cpa-bam-smg.yml,sha256=0b-5s1W6jzlVx9b2WXbqhW0yPuYVV5SLpLIi4vFRAk8,1743
|
|
60
|
+
fm_weck/resources/fm_tools/cpa-lockator.yml,sha256=y3PSzB0aQZKB8tID1dxif-EtWNE5s8I3Rmmd-wONjmE,1721
|
|
61
|
+
fm_weck/resources/fm_tools/cpa-witness2test.yml,sha256=5YyhBtMH_-3W9jCOJRpSKM4m-jyXb90XWPVtcP5UqY0,3626
|
|
62
|
+
fm_weck/resources/fm_tools/cpachecker.yml,sha256=RUJKnLrEbmKpWNx8PFqvsbMhHFBQ7myChdYoMiQY0Xk,10708
|
|
63
|
+
fm_weck/resources/fm_tools/cpv.yml,sha256=Q0wlS5l3CYRhNfsZNZDMAgBGZ3bTmdwKc8BhDU5ZZcQ,2481
|
|
64
|
+
fm_weck/resources/fm_tools/crux.yml,sha256=pSWP_AK7E5VZGrq02Unpt_1OCVY8Sf7g4XFPajqubLE,1640
|
|
65
|
+
fm_weck/resources/fm_tools/cseq.yml,sha256=IjAo-HFz-ME7CcY6BtrBeUwHcEY05OQWZzPmqmbnE5U,2025
|
|
66
|
+
fm_weck/resources/fm_tools/dartagnan.yml,sha256=ahDvBL9hUYeo6NCabqL4xAiqUmG4kprftutDhEVV3Oo,4022
|
|
67
|
+
fm_weck/resources/fm_tools/deagle.yml,sha256=f_uEhcm1OOp3ySnbc_KBCKve_3HpAwra9vYVl_s3xNs,2673
|
|
68
|
+
fm_weck/resources/fm_tools/divine.yml,sha256=R_KPU3biFnNzqV6U9GhWMFGQ0FwUCIYB-7ucp-JggE4,1549
|
|
69
|
+
fm_weck/resources/fm_tools/ebf.yml,sha256=nC2YfE6wveiWzaxIb1F_QXnJprKKDJIycZbZ7yogoB4,1661
|
|
70
|
+
fm_weck/resources/fm_tools/emergentheta.yml,sha256=l9iDthVia5XGa7lr51pw7LQyarnzVKgUVaxFWNn9X0I,2360
|
|
71
|
+
fm_weck/resources/fm_tools/esbmc-incr.yml,sha256=ZQzJSvdzVOTsE-ACtfS1bb2OpTSo4pkmoUJz9UorVf0,2326
|
|
72
|
+
fm_weck/resources/fm_tools/esbmc-kind.yml,sha256=3il2Cl3MePUYItGcrS3lEvPHxbVjwRPe4vs-QPUxaUc,3008
|
|
73
|
+
fm_weck/resources/fm_tools/fdse.yml,sha256=VPm7Uu-3JGdo5vCmpFBVH9oIuNktOoss3csZNygteN4,1694
|
|
74
|
+
fm_weck/resources/fm_tools/fizzer.yml,sha256=0T_NLV9cQ_H8aDjRFDHsDWNSAqbKEAQ7zoe5tQke58E,2433
|
|
75
|
+
fm_weck/resources/fm_tools/frama-c-sv.yml,sha256=riDGXuM161kkDKEGXW4EpEpvJ6jD4PLOFClsUg_tk-U,1941
|
|
76
|
+
fm_weck/resources/fm_tools/fshell-witness2test.yml,sha256=evJ_9oCIB4Vzt3Az7jynL7BADaV9U1fKHDKutLyn6EQ,1719
|
|
77
|
+
fm_weck/resources/fm_tools/fusebmc-ia.yml,sha256=lHfdXOdab6QbViEoZVCOpDWmnDmCVruA7QFhByypD2M,2375
|
|
78
|
+
fm_weck/resources/fm_tools/fusebmc.yml,sha256=nZf4dydFZ9rcgg5NUPHxN5QbpzehcTzFd8rywTDWIJk,3502
|
|
79
|
+
fm_weck/resources/fm_tools/gazer-theta.yml,sha256=zsDpcQCTkAbptL_GPsoom95BruxPj7X5LILJgKPM11c,1879
|
|
80
|
+
fm_weck/resources/fm_tools/gdart-llvm.yml,sha256=A1Pn8G0jbGmMRhiGVfpQIe179HJlrV3YGBWSOT8Zjk0,1442
|
|
81
|
+
fm_weck/resources/fm_tools/gdart.yml,sha256=UuZmWONU5kMJtYmq2qgIE4RxnYZwUW62Ym1fW2DqO2E,2656
|
|
82
|
+
fm_weck/resources/fm_tools/goblint.yml,sha256=B5Q43v6nyLodx88XiOgSenKzperRZYeb1nZ97KT37sQ,4182
|
|
83
|
+
fm_weck/resources/fm_tools/graves-par.yml,sha256=GLoBUwv16gQBzrtg5dota5-wbls8Dd_JQWCHKeqsLlE,1462
|
|
84
|
+
fm_weck/resources/fm_tools/graves.yml,sha256=adyp-k_7moQ9pgSeCtEauPOGFIufWoRlQydIRjn0yi0,2269
|
|
85
|
+
fm_weck/resources/fm_tools/gwit.yml,sha256=31k4Js4d3nCqW2uJDQnnfuqJcqfK77C0PuGBhdKMC98,1848
|
|
86
|
+
fm_weck/resources/fm_tools/hornix.yml,sha256=zfJZg09qiueTtyDcZLpWEQDK8GhwfvjfbLI1G_tzUUM,1532
|
|
87
|
+
fm_weck/resources/fm_tools/hybridtiger.yml,sha256=Zh9z-CQwB0tjF94_s4Yw9wnTblYAvumiwPk30-qfe_I,1833
|
|
88
|
+
fm_weck/resources/fm_tools/infer.yml,sha256=sRIzRShUOhY_Y624Oiwdk5MR-c1ligXJdAgLdt-20qk,1884
|
|
89
|
+
fm_weck/resources/fm_tools/java-ranger.yml,sha256=3T1Vq3v_7dBZl3oIgjZjoZVkPK-OGeFzoaxzpn8h4sE,1989
|
|
90
|
+
fm_weck/resources/fm_tools/jayhorn.yml,sha256=4-R_2eBD_RvbY2f6Wsrp0ObssHdEsJT29aYCngYnozY,1994
|
|
91
|
+
fm_weck/resources/fm_tools/jbmc.yml,sha256=4TiAVbUPbccoChPBLmpXxRE1H6NBxqqGUTFt0kMbE_8,2735
|
|
92
|
+
fm_weck/resources/fm_tools/jcwit.yml,sha256=eJ4w5yGTIb_T-n4g5vki8L9Q_OeKHPYE-T4NLm0QZ7k,1297
|
|
93
|
+
fm_weck/resources/fm_tools/jdart.yml,sha256=sxH0f_FOF7xAVOosFvRcaiRwQ6qnELRUo_czqw1Jons,1516
|
|
94
|
+
fm_weck/resources/fm_tools/key.yml,sha256=wse7rCv33m2z8nbm9Dk-jAipkMaF8S0LINGCzfNfpfE,2478
|
|
95
|
+
fm_weck/resources/fm_tools/klee.yml,sha256=XCNXsPLH-AQPw-iDoJBY2QvByUV3QEf4ZipGwBCMu_o,1576
|
|
96
|
+
fm_weck/resources/fm_tools/kleef.yml,sha256=wheoFgTUTk6HzSPKOqHx8mWeVN9HnWupaP9QtPSKyOQ,1634
|
|
97
|
+
fm_weck/resources/fm_tools/korn.yml,sha256=Y4DyRuUJyoMbacDey22GxbTNWuoOonRmiegtFRp3iPw,2829
|
|
98
|
+
fm_weck/resources/fm_tools/lazycseq.yml,sha256=cS3fe0Pmu73iIx7TTs22l3oeH898WvKoDCrP4y0dQXE,1492
|
|
99
|
+
fm_weck/resources/fm_tools/legion-symcc.yml,sha256=mtobhu1AAXXXIGD0ebl9iD96VTauCkdL_ZFJEWrnaY8,1483
|
|
100
|
+
fm_weck/resources/fm_tools/legion.yml,sha256=ClD8_UEJq8wHIEp9_ifhTNKJuNmzvekaQx1BFOj4vlA,1675
|
|
101
|
+
fm_weck/resources/fm_tools/lf-checker.yml,sha256=lV4-GzzNvzWW505FFtYAUHlSG4gxOn-LL4xT8Tpyvq0,1386
|
|
102
|
+
fm_weck/resources/fm_tools/liv.yml,sha256=t0-Rfs0Ot3VPn7DD_pt3VAbyfpUOP8kdYV3E7uN3qGI,3260
|
|
103
|
+
fm_weck/resources/fm_tools/locksmith.yml,sha256=c3wNvIzQ_PZaYv6Mm15QH-Rm4oTuNzILNJs1fssESYQ,1397
|
|
104
|
+
fm_weck/resources/fm_tools/metaval++.yml,sha256=KAOcvftDNLvuHzIKaUoebekeOxBE6DVS2Acq2VbL1Dg,2006
|
|
105
|
+
fm_weck/resources/fm_tools/metaval.yml,sha256=aclr5cfGDuCduSrlk9kLOcK8GaUQAzPtDAxIJHgHs44,4668
|
|
106
|
+
fm_weck/resources/fm_tools/mlb.yml,sha256=S_ykc9ThLHBbMSXOgYIvk81r96cEwXbAXI5lPRDxJ4s,1907
|
|
107
|
+
fm_weck/resources/fm_tools/mopsa.yml,sha256=lOVxyLPoxsyeLhgFGm9X3D4cGrhC6X2jTO4MmyCBHbE,4172
|
|
108
|
+
fm_weck/resources/fm_tools/nacpa.yml,sha256=b59jqHyQGffRCTzGhyEL4zNUGz_Ss-eRw_s7W7MefaY,1417
|
|
109
|
+
fm_weck/resources/fm_tools/nitwit.yml,sha256=pAJXUtI35HqocZhseTqwkYOVis9Iv16C-UstDId4Juo,2097
|
|
110
|
+
fm_weck/resources/fm_tools/owic.yml,sha256=m0fcxyLurCLVFNmfiI0M6giSmsSEOHBdcyYyGbswiG0,1562
|
|
111
|
+
fm_weck/resources/fm_tools/pesco.yml,sha256=s5OOJUMTpoZEAgodj1q5kPrNcgGhQY5Tsk0Vw-4aAyo,2317
|
|
112
|
+
fm_weck/resources/fm_tools/pichecker.yml,sha256=ZNVlm230PlcbYttxwzE0oUUkxSFj_DLlpd7hLZZHr90,1646
|
|
113
|
+
fm_weck/resources/fm_tools/pinaka.yml,sha256=M-2Up2dKb3IJChpjsd1uWbX69bmEN_T4lM5NF0t77t4,1677
|
|
114
|
+
fm_weck/resources/fm_tools/predatorhp.yml,sha256=JjUWrV1u-XSw8bKJ5t371HG4yeAhuXPmZrtjpD3z5Yw,2513
|
|
115
|
+
fm_weck/resources/fm_tools/prism.yml,sha256=ruAG7Yvb_x6BlHzmadNX8M5DsL8ObsOz493g0kKCwL4,2320
|
|
116
|
+
fm_weck/resources/fm_tools/proton.yml,sha256=2iigAhBelOxN8we6NPPBuoGXPIllv6tzNQm1qqG5iM4,1629
|
|
117
|
+
fm_weck/resources/fm_tools/prtest.yml,sha256=ro1WPEA-FjumAOzGqN-5v6qOpx732x2Og4DerD04yEg,2250
|
|
118
|
+
fm_weck/resources/fm_tools/racerf.yml,sha256=6ck8P7i7QC_9Quq-nJxXeP_12ACKJzgV7CJfDT_hfdg,1747
|
|
119
|
+
fm_weck/resources/fm_tools/relay-sv.yml,sha256=rN4kf0EO_xVqzpPlFtWqdNjICjOjU4Uo7_YX9E6OPlo,1237
|
|
120
|
+
fm_weck/resources/fm_tools/rizzer.yml,sha256=ZmVL72-mBTzmMY29I3x5HmSCtQTMbJ0vw2Ucx_xSfnM,1523
|
|
121
|
+
fm_weck/resources/fm_tools/schema.yml,sha256=_SqJzwFGxM0EuuLgcMF-S_hUtoGxaFKraGTfQDUyILY,22945
|
|
122
|
+
fm_weck/resources/fm_tools/sikraken.yml,sha256=WnLxKyl-4zZ8rvXWqLuuqaC8b9GGQDg-jB3798SeK6M,1067
|
|
123
|
+
fm_weck/resources/fm_tools/spf.yml,sha256=6-7306izjPHKcLZ1veQRmGWOVQcsFJbNyL_55JYVQXA,1692
|
|
124
|
+
fm_weck/resources/fm_tools/sv-sanitizers.yml,sha256=tisvbuYRXutJuk-rsqzRJ-3NSMBL29hHjym3eqE4MAI,1431
|
|
125
|
+
fm_weck/resources/fm_tools/svf-svc.yml,sha256=gQ12F7_7uis7fVgsTiNdleKBgydi-BOgS4ne-dRyHvk,1591
|
|
126
|
+
fm_weck/resources/fm_tools/swat.yml,sha256=gsvsFBeItbspzdXVVQ8TFWulbdYHzIHSmcKlWkWxGk0,1684
|
|
127
|
+
fm_weck/resources/fm_tools/symbiotic-witch.yml,sha256=6ND-WISFvJEeyEB3Q-Xu71dZrc_ayr1kAnEzfV3TA84,2421
|
|
128
|
+
fm_weck/resources/fm_tools/symbiotic.yml,sha256=cM7x0UIziMazq355CyZ9qBF0pEOuy4wjE9rmb_QSYE4,5796
|
|
129
|
+
fm_weck/resources/fm_tools/testcov.yml,sha256=UqI_uR1kYckBqiRArFP7sU_HLfu7jUq-GEsJOWgLu0s,5147
|
|
130
|
+
fm_weck/resources/fm_tools/theta.yml,sha256=nZFzCtxfCEATlctK4CAyj_zRnzqlqO_HfsC94df_Lt0,2894
|
|
131
|
+
fm_weck/resources/fm_tools/thorn.yml,sha256=2UuyPi1dKRjXObOVxj7x0joYxPmqDa-e3DZYjfKyweE,1326
|
|
132
|
+
fm_weck/resources/fm_tools/tracerx-wp.yml,sha256=LAfAd3f1u-6ZQ00fNvruqrlmvFVpK_rJV4HWYz7G4DE,2016
|
|
133
|
+
fm_weck/resources/fm_tools/tracerx.yml,sha256=I3r02dWrMEbcXyH2Nvn4skf5cKXjKESrA9boPaSw3ok,2370
|
|
134
|
+
fm_weck/resources/fm_tools/uautomizer.yml,sha256=CwwbVbtbKr5ri4PZ-g1WwUIsDWcnOyeYvRfVNSgrZi0,7604
|
|
135
|
+
fm_weck/resources/fm_tools/ugemcutter.yml,sha256=0APiSLnEt3_kfVHulAker97m4VvFMVFbb7o-fuObBpk,3318
|
|
136
|
+
fm_weck/resources/fm_tools/ukojak.yml,sha256=SRA0xSCBKdDeRDFhhWUDht6FK3MXMQyVzd-dtduHvi8,3041
|
|
137
|
+
fm_weck/resources/fm_tools/ureferee.yml,sha256=eNk0m1x36WSG9Y9-EtobRNoDmdFkAizEACfGAWFv2YY,2391
|
|
138
|
+
fm_weck/resources/fm_tools/utaipan.yml,sha256=oxAUMHHXRv4TWcGoOqkzyKtzKkPhJDBQAdmn1sLW_Gs,3565
|
|
139
|
+
fm_weck/resources/fm_tools/utestgen.yml,sha256=_mefwNOoW2Foa5IytA2fUpIg4gmqbmaXxUgFdiLmOkQ,2457
|
|
140
|
+
fm_weck/resources/fm_tools/vercors.yml,sha256=b7vEyzW61lQ6Dp9od65sUVYRbrQWtosN5p3-MjTXEvg,3190
|
|
141
|
+
fm_weck/resources/fm_tools/veriabs.yml,sha256=N4zCdZnrV8duOjcw1wzavp5oZtz21WShP_Z38tnIsTs,2490
|
|
142
|
+
fm_weck/resources/fm_tools/veriabsl.yml,sha256=4mj2IxMnTFNO7vQzSp5XBT7p32HhRW67Ip1BgZpCzAk,3581
|
|
143
|
+
fm_weck/resources/fm_tools/verifuzz.yml,sha256=1HHtZMkMhUyXxd20R7yXVEqyqOVo_O3G_j3zdSx3z9k,1845
|
|
144
|
+
fm_weck/resources/fm_tools/verioover.yml,sha256=Gjnxl3GYXDmes_nA_J1Jucc6DjfOX8Uz3DjTXiHeerg,1362
|
|
145
|
+
fm_weck/resources/fm_tools/wasp-c.yml,sha256=e2rureVEfS1wClCVknRg1MlatrL3x0fUhYV8A_eUAM8,1595
|
|
146
|
+
fm_weck/resources/fm_tools/wit4java.yml,sha256=ylfze2XbV4zKkVUH57Veqn7G49gW0Byxd5qFRnzs_bw,1861
|
|
147
|
+
fm_weck/resources/fm_tools/witch.yml,sha256=wwe6lrI2sxGKVZbLeipa38rPhB2pcSUFi9uVngtXGUQ,1795
|
|
148
|
+
fm_weck/resources/fm_tools/witnesslint.yml,sha256=EvMBcm5fx6lgSLRmHSKXSxXIJKZ-BrxLwTXI4GQ6FMs,6812
|
|
149
|
+
fm_weck/resources/fm_tools/witnessmap.yml,sha256=FyZtEloxpWBBjLn9kyqoen2kPjOkH2r4fxAj5gfV8Bg,1692
|
|
150
|
+
fm_weck-1.4.6.dist-info/METADATA,sha256=lZPOGSSc4OeZvJ0m5VGGbo25DdX0twG-9rCEfYGE2A0,2822
|
|
151
|
+
fm_weck-1.4.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
152
|
+
fm_weck-1.4.6.dist-info/entry_points.txt,sha256=toWpKCSY1u593MPnI_xW5gnwlnkerP4AvmPQ1s2nPgY,50
|
|
153
|
+
fm_weck-1.4.6.dist-info/RECORD,,
|