fm-weck 1.3.0__py3-none-any.whl → 1.4.1__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 (116) hide show
  1. fm_weck/__init__.py +1 -1
  2. fm_weck/cli.py +63 -11
  3. fm_weck/config.py +38 -13
  4. fm_weck/engine.py +52 -11
  5. fm_weck/image_mgr.py +9 -2
  6. fm_weck/resources/__init__.py +2 -2
  7. fm_weck/resources/fm_tools/2ls.yml +14 -0
  8. fm_weck/resources/fm_tools/aise.yml +16 -3
  9. fm_weck/resources/fm_tools/aprove.yml +25 -1
  10. fm_weck/resources/fm_tools/brick.yml +13 -0
  11. fm_weck/resources/fm_tools/bubaak-split.yml +15 -0
  12. fm_weck/resources/fm_tools/bubaak.yml +15 -0
  13. fm_weck/resources/fm_tools/cbmc.yml +10 -0
  14. fm_weck/resources/fm_tools/cetfuzz.yml +12 -1
  15. fm_weck/resources/fm_tools/coastal.yml +11 -0
  16. fm_weck/resources/fm_tools/concurrentwitness2test.yml +21 -2
  17. fm_weck/resources/fm_tools/cooperace.yml +51 -0
  18. fm_weck/resources/fm_tools/coveriteam-verifier-algo-selection.yml +13 -0
  19. fm_weck/resources/fm_tools/coveriteam-verifier-parallel-portfolio.yml +13 -0
  20. fm_weck/resources/fm_tools/coveritest.yml +14 -0
  21. fm_weck/resources/fm_tools/cpa-bam-bnb.yml +11 -0
  22. fm_weck/resources/fm_tools/cpa-bam-smg.yml +11 -0
  23. fm_weck/resources/fm_tools/cpa-lockator.yml +11 -0
  24. fm_weck/resources/fm_tools/cpa-witness2test.yml +9 -0
  25. fm_weck/resources/fm_tools/cpachecker.yml +68 -1
  26. fm_weck/resources/fm_tools/cpv.yml +17 -2
  27. fm_weck/resources/fm_tools/crux.yml +11 -0
  28. fm_weck/resources/fm_tools/cseq.yml +11 -4
  29. fm_weck/resources/fm_tools/dartagnan.yml +22 -0
  30. fm_weck/resources/fm_tools/deagle.yml +27 -1
  31. fm_weck/resources/fm_tools/divine.yml +11 -0
  32. fm_weck/resources/fm_tools/ebf.yml +9 -0
  33. fm_weck/resources/fm_tools/emergentheta.yml +23 -0
  34. fm_weck/resources/fm_tools/esbmc-incr.yml +32 -5
  35. fm_weck/resources/fm_tools/esbmc-kind.yml +33 -1
  36. fm_weck/resources/fm_tools/fdse.yml +9 -0
  37. fm_weck/resources/fm_tools/fizzer.yml +23 -0
  38. fm_weck/resources/fm_tools/frama-c-sv.yml +11 -0
  39. fm_weck/resources/fm_tools/fshell-witness2test.yml +10 -0
  40. fm_weck/resources/fm_tools/fusebmc-ia.yml +9 -0
  41. fm_weck/resources/fm_tools/fusebmc.yml +19 -1
  42. fm_weck/resources/fm_tools/gazer-theta.yml +13 -0
  43. fm_weck/resources/fm_tools/gdart-llvm.yml +10 -0
  44. fm_weck/resources/fm_tools/gdart.yml +31 -0
  45. fm_weck/resources/fm_tools/goblint.yml +50 -2
  46. fm_weck/resources/fm_tools/graves-par.yml +13 -0
  47. fm_weck/resources/fm_tools/graves.yml +12 -0
  48. fm_weck/resources/fm_tools/gwit.yml +9 -0
  49. fm_weck/resources/fm_tools/hornix.yml +55 -0
  50. fm_weck/resources/fm_tools/hybridtiger.yml +11 -0
  51. fm_weck/resources/fm_tools/infer.yml +11 -0
  52. fm_weck/resources/fm_tools/java-ranger.yml +25 -3
  53. fm_weck/resources/fm_tools/jayhorn.yml +12 -0
  54. fm_weck/resources/fm_tools/jbmc.yml +14 -1
  55. fm_weck/resources/fm_tools/jcwit.yml +11 -0
  56. fm_weck/resources/fm_tools/jdart.yml +11 -0
  57. fm_weck/resources/fm_tools/klee.yml +11 -0
  58. fm_weck/resources/fm_tools/kleef.yml +24 -5
  59. fm_weck/resources/fm_tools/korn.yml +16 -0
  60. fm_weck/resources/fm_tools/lazycseq.yml +13 -0
  61. fm_weck/resources/fm_tools/legion-symcc.yml +10 -0
  62. fm_weck/resources/fm_tools/legion.yml +11 -0
  63. fm_weck/resources/fm_tools/lf-checker.yml +10 -0
  64. fm_weck/resources/fm_tools/liv.yml +28 -4
  65. fm_weck/resources/fm_tools/locksmith.yml +10 -0
  66. fm_weck/resources/fm_tools/metaval++.yml +49 -0
  67. fm_weck/resources/fm_tools/metaval.yml +51 -5
  68. fm_weck/resources/fm_tools/mlb.yml +21 -1
  69. fm_weck/resources/fm_tools/mopsa.yml +45 -0
  70. fm_weck/resources/fm_tools/nacpa.yml +51 -0
  71. fm_weck/resources/fm_tools/nitwit.yml +11 -0
  72. fm_weck/resources/fm_tools/owic.yml +11 -0
  73. fm_weck/resources/fm_tools/pesco.yml +12 -0
  74. fm_weck/resources/fm_tools/pichecker.yml +10 -0
  75. fm_weck/resources/fm_tools/pinaka.yml +11 -0
  76. fm_weck/resources/fm_tools/predatorhp.yml +12 -0
  77. fm_weck/resources/fm_tools/proton.yml +20 -0
  78. fm_weck/resources/fm_tools/prtest.yml +9 -0
  79. fm_weck/resources/fm_tools/racerf.yml +48 -0
  80. fm_weck/resources/fm_tools/relay-sv.yml +11 -0
  81. fm_weck/resources/fm_tools/rizzer.yml +9 -0
  82. fm_weck/resources/fm_tools/sikraken.yml +42 -0
  83. fm_weck/resources/fm_tools/spf.yml +11 -0
  84. fm_weck/resources/fm_tools/sv-sanitizers.yml +18 -1
  85. fm_weck/resources/fm_tools/svf-svc.yml +45 -0
  86. fm_weck/resources/fm_tools/swat.yml +9 -0
  87. fm_weck/resources/fm_tools/symbiotic-witch.yml +17 -1
  88. fm_weck/resources/fm_tools/symbiotic.yml +32 -1
  89. fm_weck/resources/fm_tools/testcov.yml +18 -1
  90. fm_weck/resources/fm_tools/theta.yml +24 -0
  91. fm_weck/resources/fm_tools/thorn.yml +46 -0
  92. fm_weck/resources/fm_tools/tracerx-wp.yml +19 -0
  93. fm_weck/resources/fm_tools/tracerx.yml +19 -0
  94. fm_weck/resources/fm_tools/uautomizer.yml +72 -4
  95. fm_weck/resources/fm_tools/ugemcutter.yml +24 -6
  96. fm_weck/resources/fm_tools/ukojak.yml +35 -6
  97. fm_weck/resources/fm_tools/ureferee.yml +82 -0
  98. fm_weck/resources/fm_tools/utaipan.yml +33 -4
  99. fm_weck/resources/fm_tools/utestgen.yml +27 -0
  100. fm_weck/resources/fm_tools/veriabs.yml +28 -1
  101. fm_weck/resources/fm_tools/veriabsl.yml +43 -3
  102. fm_weck/resources/fm_tools/verifuzz.yml +2 -0
  103. fm_weck/resources/fm_tools/verioover.yml +10 -0
  104. fm_weck/resources/fm_tools/wasp-c.yml +12 -0
  105. fm_weck/resources/fm_tools/wit4java.yml +12 -0
  106. fm_weck/resources/fm_tools/witch.yml +16 -1
  107. fm_weck/resources/fm_tools/witnesslint.yml +79 -1
  108. fm_weck/resources/run_with_overlay.sh +22 -4
  109. fm_weck/runexec_mode.py +52 -0
  110. fm_weck/runexec_util.py +7 -3
  111. fm_weck/serve.py +0 -27
  112. {fm_weck-1.3.0.dist-info → fm_weck-1.4.1.dist-info}/METADATA +1 -1
  113. fm_weck-1.4.1.dist-info/RECORD +145 -0
  114. {fm_weck-1.3.0.dist-info → fm_weck-1.4.1.dist-info}/WHEEL +1 -1
  115. fm_weck-1.3.0.dist-info/RECORD +0 -135
  116. {fm_weck-1.3.0.dist-info → fm_weck-1.4.1.dist-info}/entry_points.txt +0 -0
@@ -10,13 +10,24 @@ fmtools_entry_maintainers:
10
10
  - priyankadarke
11
11
 
12
12
  maintainers:
13
- - name: Priyanka Darke
13
+ - orcid: 0000-0001-6104-9033
14
+ name: Priyanka Darke
14
15
  institution: Tata Consultancy Services
15
16
  country: India
16
17
  url: https://www.tcs.com
17
18
 
18
19
 
19
20
  versions:
21
+ - version: "1.6.2"
22
+ doi: 10.5281/zenodo.14030466
23
+ benchexec_toolinfo_options: ['--veriabs']
24
+ required_ubuntu_packages:
25
+ - libc6-dev-i386
26
+ - openjdk-11-jre-headless
27
+ - openjdk-17-jre-headless
28
+ - clang-12
29
+ full_container_images:
30
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2024
20
31
  - version: "svcomp24"
21
32
  doi: 10.5281/zenodo.10243500
22
33
  benchexec_toolinfo_options: ['--sv22']
@@ -32,10 +43,20 @@ versions:
32
43
  - openjdk-11-jre-headless
33
44
 
34
45
  competition_participations:
46
+ - competition: "SV-COMP 2025"
47
+ track: "Verification"
48
+ tool_version: "1.6.2"
49
+ jury_member:
50
+ orcid: 0000-0001-6104-9033
51
+ name: Priyanka Darke
52
+ institution: Tata Consultancy Services
53
+ country: India
54
+ url: null
35
55
  - competition: "SV-COMP 2024"
36
56
  track: "Verification"
37
57
  tool_version: "svcomp24"
38
58
  jury_member:
59
+ orcid: 0000-0001-6104-9033
39
60
  name: Priyanka Darke
40
61
  institution: Tata Consultancy Services
41
62
  country: India
@@ -44,6 +65,7 @@ competition_participations:
44
65
  track: "Verification"
45
66
  tool_version: "svcomp23"
46
67
  jury_member:
68
+ orcid: 0000-0001-6104-9033
47
69
  name: Priyanka Darke
48
70
  institution: Tata Consultancy Services
49
71
  country: India
@@ -64,3 +86,8 @@ frameworks_solvers:
64
86
  - CProver
65
87
  - Z3
66
88
  - MiniSAT
89
+
90
+ literature:
91
+ - doi: 10.1007/978-3-030-72013-1_32
92
+ title: "VeriAbs: A Tool for Scalable Verification by Abstraction"
93
+ year: 2021
@@ -10,19 +10,44 @@ fmtools_entry_maintainers:
10
10
  - priyankadarke
11
11
 
12
12
  maintainers:
13
- - name: Priyanka Darke
13
+ - orcid: 0000-0001-6104-9033
14
+ name: Priyanka Darke
14
15
  institution: Tata Consultancy Services
15
16
  country: India
16
17
  url: https://www.tcs.com
17
18
 
18
19
  versions:
20
+ - version: "1.6.2"
21
+ doi: 10.5281/zenodo.14030454
22
+ benchexec_toolinfo_options: []
23
+ required_ubuntu_packages:
24
+ - libc6-dev-i386
25
+ - openjdk-11-jre-headless
26
+ - openjdk-17-jre-headless
27
+ - python3-absl
28
+ - python3-astunparse
29
+ - python3-flatbuffers
30
+ - python3-gast
31
+ - python3-h5py
32
+ - python3-packaging
33
+ - python3-termcolor
34
+ - python3-wrapt
35
+ - python3-typing-extensions
36
+ - python3-pandas
37
+ - python3-sklearn
38
+ - python3-certifi
39
+ - python3-idna
40
+ - python3-requests
41
+ - python3-urllib3
42
+ - clang-12
43
+ full_container_images:
44
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2024
19
45
  - version: "svcomp24"
20
46
  doi: 10.5281/zenodo.10244458
21
47
  benchexec_toolinfo_options: []
22
48
  required_ubuntu_packages:
23
49
  - libc6-dev-i386
24
50
  - openjdk-11-jre-headless
25
- - python3-pip
26
51
  - python3-absl
27
52
  - python3-astunparse
28
53
  - python3-flatbuffers
@@ -45,7 +70,6 @@ versions:
45
70
  required_ubuntu_packages:
46
71
  - libc6-dev-i386
47
72
  - openjdk-11-jre-headless
48
- - python3-pip
49
73
  - python3-absl
50
74
  - python3-astunparse
51
75
  - python3-flatbuffers
@@ -63,10 +87,20 @@ versions:
63
87
  - python3-urllib3
64
88
 
65
89
  competition_participations:
90
+ - competition: "SV-COMP 2025"
91
+ track: "Verification"
92
+ tool_version: "1.6.2"
93
+ jury_member:
94
+ orcid: 0000-0001-6104-9033
95
+ name: Priyanka Darke
96
+ institution: Tata Consultancy Services
97
+ country: India
98
+ url: null
66
99
  - competition: "SV-COMP 2024"
67
100
  track: "Verification"
68
101
  tool_version: "svcomp24"
69
102
  jury_member:
103
+ orcid: 0000-0001-6104-9033
70
104
  name: Priyanka Darke
71
105
  institution: Tata Consultancy Services
72
106
  country: India
@@ -75,6 +109,7 @@ competition_participations:
75
109
  track: "Verification"
76
110
  tool_version: "svcomp23"
77
111
  jury_member:
112
+ orcid: 0000-0001-6104-9033
78
113
  name: Priyanka Darke
79
114
  institution: Tata Consultancy Services
80
115
  country: India
@@ -95,3 +130,8 @@ frameworks_solvers:
95
130
  - CProver
96
131
  - Z3
97
132
  - MiniSAT
133
+
134
+ literature:
135
+ - doi: 10.1007/978-3-031-30820-8_41
136
+ title: "VeriAbsL: Scalable Verification by Abstraction and Strategy Prediction"
137
+ year: 2023
@@ -27,6 +27,8 @@ versions:
27
27
  - python2
28
28
  - python3-sklearn
29
29
  - python3-pandas
30
+ full_container_images:
31
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2023
30
32
 
31
33
  competition_participations:
32
34
  - competition: "SV-COMP 2023"
@@ -22,8 +22,18 @@ versions:
22
22
  required_ubuntu_packages: []
23
23
 
24
24
  competition_participations:
25
+ - competition: "SV-COMP 2025"
26
+ track: "Verification"
27
+ hors-concours: true
28
+ tool_version: "svcomp23"
29
+ jury_member:
30
+ name: Hors Concours
31
+ institution: --
32
+ country: --
33
+ url: null
25
34
  - competition: "SV-COMP 2024"
26
35
  track: "Verification"
36
+ hors-concours: true
27
37
  tool_version: "svcomp23"
28
38
  jury_member:
29
39
  name: Hors Concours
@@ -24,10 +24,22 @@ versions:
24
24
  - make
25
25
  - python3
26
26
  - python3-lxml
27
+ full_container_images:
28
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2024
27
29
 
28
30
  competition_participations:
31
+ - competition: "Test-Comp 2025"
32
+ track: "Test Generation"
33
+ hors-concours: true
34
+ tool_version: "testcomp23"
35
+ jury_member:
36
+ name: Hors Concours
37
+ institution: --
38
+ country: --
39
+ url: null
29
40
  - competition: "Test-Comp 2024"
30
41
  track: "Test Generation"
42
+ hors-concours: true
31
43
  tool_version: "testcomp23"
32
44
  jury_member:
33
45
  name: Hors Concours
@@ -21,10 +21,22 @@ versions:
21
21
  benchexec_toolinfo_options: []
22
22
  required_ubuntu_packages:
23
23
  - python3-networkx
24
+ full_container_images:
25
+ - registry.gitlab.com/sosy-lab/benchmarking/competition-scripts/user:2024
24
26
 
25
27
  competition_participations:
28
+ - competition: "SV-COMP 2025"
29
+ track: "Validation of Violation Witnesses 1.0"
30
+ hors-concours: true
31
+ tool_version: "svcomp23"
32
+ jury_member:
33
+ name: Hors Concours
34
+ institution: --
35
+ country: --
36
+ url: null
26
37
  - competition: "SV-COMP 2024"
27
38
  track: "Validation of Violation Witnesses 1.0"
39
+ hors-concours: true
28
40
  tool_version: "svcomp23"
29
41
  jury_member:
30
42
  name: Hors Concours
@@ -3,7 +3,7 @@ input_languages:
3
3
  - C
4
4
  project_url: https://github.com/ayazip/witch-klee
5
5
  repository_url: https://github.com/ayazip/witch-klee
6
- spdx_license_identifier: "LGPL-3.0-or-later"
6
+ spdx_license_identifier: "MIT"
7
7
  benchexec_toolinfo_module: "symbiotic-witch.py"
8
8
  fmtools_format_version: "2.0"
9
9
  fmtools_entry_maintainers:
@@ -17,6 +17,12 @@ maintainers:
17
17
  url: null
18
18
 
19
19
  versions:
20
+ - version: "svcomp25"
21
+ benchexec_toolinfo_options: ['--sv-comp']
22
+ required_ubuntu_packages:
23
+ - python3
24
+ - llvm-14
25
+ doi: "10.5281/zenodo.14161544"
20
26
  - version: "svcomp24"
21
27
  benchexec_toolinfo_options: ['--sv-comp']
22
28
  required_ubuntu_packages:
@@ -24,6 +30,15 @@ versions:
24
30
  doi: "10.5281/zenodo.10064512"
25
31
 
26
32
  competition_participations:
33
+ - competition: "SV-COMP 2025"
34
+ track: "Validation of Violation Witnesses 2.0"
35
+ tool_version: "svcomp25"
36
+ jury_member:
37
+ orcid: 0000-0003-1072-8137
38
+ name: Paulína Ayaziová
39
+ institution: Masaryk University, Brno
40
+ country: Czechia
41
+ url: null
27
42
  - competition: "SV-COMP 2024"
28
43
  track: "Validation of Violation Witnesses 2.0"
29
44
  tool_version: "svcomp24"
@@ -9,15 +9,49 @@ benchexec_toolinfo_module: benchexec.tools.witnesslint
9
9
  fmtools_format_version: "2.0"
10
10
  fmtools_entry_maintainers:
11
11
  - dbeyer
12
- - masp
12
+ - Marianl
13
+ - PhilippWendler
13
14
 
14
15
  maintainers:
15
16
  - name: Marian Lingsch-Rosenfeld
17
+ orcid: 0000-0002-8172-3184
16
18
  institution: LMU Munich
17
19
  country: Germany
18
20
  url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
19
21
 
20
22
  versions:
23
+ - version: "svcomp25-correctness-graphml"
24
+ doi: 10.5281/zenodo.13988752
25
+ benchexec_toolinfo_options: ["--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
26
+ required_ubuntu_packages:
27
+ - python3-lxml
28
+ - python3-jsonschema
29
+ - python3-yaml
30
+ - python3-pycparser
31
+ - version: "svcomp25-violation-graphml"
32
+ doi: 10.5281/zenodo.13988752
33
+ benchexec_toolinfo_options: ["--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
34
+ required_ubuntu_packages:
35
+ - python3-lxml
36
+ - python3-jsonschema
37
+ - python3-yaml
38
+ - python3-pycparser
39
+ - version: "svcomp25-correctness-yaml"
40
+ doi: 10.5281/zenodo.13988752
41
+ benchexec_toolinfo_options: ["--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
42
+ required_ubuntu_packages:
43
+ - python3-lxml
44
+ - python3-jsonschema
45
+ - python3-yaml
46
+ - python3-pycparser
47
+ - version: "svcomp25-violation-yaml"
48
+ doi: 10.5281/zenodo.13988752
49
+ benchexec_toolinfo_options: ["--expectViolationWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "2.0"]
50
+ required_ubuntu_packages:
51
+ - python3-lxml
52
+ - python3-jsonschema
53
+ - python3-yaml
54
+ - python3-pycparser
21
55
  - version: "svcomp24-correctness-graphml"
22
56
  doi: 10.5281/zenodo.10213801
23
57
  benchexec_toolinfo_options: ["--expectCorrectnessWitness", "--ignoreSelfLoops", "--expectedWitnessVersion", "1.0"]
@@ -52,10 +86,47 @@ versions:
52
86
  - python3-pycparser
53
87
 
54
88
  competition_participations:
89
+ - competition: "SV-COMP 2025"
90
+ track: "Validation of Correctness Witnesses 1.0"
91
+ tool_version: "svcomp25-correctness-graphml"
92
+ jury_member:
93
+ orcid: 0000-0002-8172-3184
94
+ name: Marian Lingsch-Rosenfeld
95
+ institution: LMU Munich
96
+ country: Germany
97
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
98
+ - competition: "SV-COMP 2025"
99
+ track: "Validation of Correctness Witnesses 2.0"
100
+ tool_version: "svcomp25-correctness-yaml"
101
+ jury_member:
102
+ orcid: 0000-0002-8172-3184
103
+ name: Marian Lingsch-Rosenfeld
104
+ institution: LMU Munich
105
+ country: Germany
106
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
107
+ - competition: "SV-COMP 2025"
108
+ track: "Validation of Violation Witnesses 1.0"
109
+ tool_version: "svcomp25-violation-graphml"
110
+ jury_member:
111
+ orcid: 0000-0002-8172-3184
112
+ name: Marian Lingsch-Rosenfeld
113
+ institution: LMU Munich
114
+ country: Germany
115
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
116
+ - competition: "SV-COMP 2025"
117
+ track: "Validation of Violation Witnesses 2.0"
118
+ tool_version: "svcomp25-violation-yaml"
119
+ jury_member:
120
+ orcid: 0000-0002-8172-3184
121
+ name: Marian Lingsch-Rosenfeld
122
+ institution: LMU Munich
123
+ country: Germany
124
+ url: https://www.sosy-lab.org/people/lingsch-rosenfeld/
55
125
  - competition: "SV-COMP 2024"
56
126
  track: "Validation of Correctness Witnesses 1.0"
57
127
  tool_version: "svcomp24-correctness-graphml"
58
128
  jury_member:
129
+ orcid: 0000-0002-8172-3184
59
130
  name: Marian Lingsch-Rosenfeld
60
131
  institution: LMU Munich
61
132
  country: Germany
@@ -64,6 +135,7 @@ competition_participations:
64
135
  track: "Validation of Correctness Witnesses 2.0"
65
136
  tool_version: "svcomp24-correctness-yaml"
66
137
  jury_member:
138
+ orcid: 0000-0002-8172-3184
67
139
  name: Marian Lingsch-Rosenfeld
68
140
  institution: LMU Munich
69
141
  country: Germany
@@ -72,6 +144,7 @@ competition_participations:
72
144
  track: "Validation of Violation Witnesses 1.0"
73
145
  tool_version: "svcomp24-violation-graphml"
74
146
  jury_member:
147
+ orcid: 0000-0002-8172-3184
75
148
  name: Marian Lingsch-Rosenfeld
76
149
  institution: LMU Munich
77
150
  country: Germany
@@ -80,6 +153,7 @@ competition_participations:
80
153
  track: "Validation of Violation Witnesses 2.0"
81
154
  tool_version: "svcomp24-violation-yaml"
82
155
  jury_member:
156
+ orcid: 0000-0002-8172-3184
83
157
  name: Marian Lingsch-Rosenfeld
84
158
  institution: LMU Munich
85
159
  country: Germany
@@ -88,3 +162,7 @@ competition_participations:
88
162
  techniques: []
89
163
 
90
164
  frameworks_solvers: []
165
+
166
+ used_actors: []
167
+
168
+ literature: []
@@ -20,10 +20,28 @@ cp -r "/home/fm-weck_cache/$TOOL_DIR" /tmp/overlay/
20
20
  # Assume the user $PWD is mounted to home/cwd
21
21
  #Mount the overlay
22
22
  mount -t overlay overlay -o lowerdir=/home/cwd:/tmp/overlay/"$TOOL_DIR",upperdir=/tmp/overlay/upper,workdir=/tmp/overlay/work /home/_cwd
23
- cd /home/_cwd && "$@"
24
23
 
25
- # Fm-Weck mounts a tempdir to /home/output
26
- # Test if upper is empty
27
- if [ ! -z "$(ls -A /tmp/overlay/upper)" ]; then
24
+ # Change directory and execute the command
25
+ cd /home/_cwd || exit 1
26
+
27
+ "$@" &
28
+ PID=$!
29
+
30
+ # Handle signals and delegate to the process
31
+ trap 'kill -TERM $PID' INT TERM
32
+
33
+ # Wait for the process and handle its termination correctly
34
+ wait $PID
35
+ trap - TERM INT
36
+ wait $PID # wait for JVM to exit after signal delegation
37
+ EXIT_STATUS=$?
38
+
39
+ # Check if upper directory has data to copy to output
40
+ if [ -n "$(ls -A /tmp/overlay/upper)" ]; then
28
41
  cp -r /tmp/overlay/upper/* /home/output
29
42
  fi
43
+
44
+ # Clean up mounted filesystems
45
+ umount /tmp/overlay
46
+
47
+ exit $EXIT_STATUS
@@ -0,0 +1,52 @@
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 logging
9
+ import shutil
10
+ from pathlib import Path
11
+ from typing import Optional
12
+
13
+ from fm_weck.resources import BENCHEXEC_WHL
14
+ from fm_weck.runexec_util import mountable_absolute_paths_of_command
15
+
16
+ from .config import Config
17
+ from .engine import CACHE_MOUNT_LOCATION, Engine
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+
22
+ def run_runexec(
23
+ benchexec_package: Optional[Path],
24
+ use_image: Optional[str],
25
+ configuration: Config,
26
+ extra_container_args: list[list[str]],
27
+ command: list[str],
28
+ ):
29
+ if use_image is not None:
30
+ configuration.set_default_image(use_image)
31
+
32
+ engine = Engine.from_config(configuration)
33
+ engine.add_benchexec_capabilities = True
34
+
35
+ if benchexec_package is not None:
36
+ engine.mount(benchexec_package.parent.absolute(), "/home/__fm_weck_benchexec")
37
+ engine.env["PYTHONPATH"] = f"/home/__fm_weck_benchexec/{benchexec_package.name}"
38
+ else:
39
+ # Default to the bundled benchexec package
40
+ benchexec_package = configuration.get_shelve_path_for_benchexec()
41
+ shutil.copyfile(BENCHEXEC_WHL, benchexec_package)
42
+ engine.env["PYTHONPATH"] = f"{CACHE_MOUNT_LOCATION}/.lib/benchexec.whl"
43
+
44
+ for path in mountable_absolute_paths_of_command(Path.cwd().absolute(), command):
45
+ engine.mount(path, str(path) + ":ro")
46
+
47
+ for arg in extra_container_args:
48
+ engine.add_container_long_opt(arg)
49
+
50
+ configuration.make_runexec_script_available()
51
+
52
+ engine.run(f"{CACHE_MOUNT_LOCATION}/.scripts/runexec", *command)
fm_weck/runexec_util.py CHANGED
@@ -12,19 +12,23 @@ from typing import Iterable, List
12
12
  from fm_weck.engine import RESERVED_LOCATIONS
13
13
 
14
14
 
15
- def mountable_absolute_paths_of_command(command: List[str]) -> Iterable[Path]:
15
+ def mountable_absolute_paths_of_command(cwd: Path, command: List[str]) -> Iterable[Path]:
16
16
  """
17
17
  Iterate over all arguments in command and find those that are paths.
18
18
  The paths are returned as absolute paths, that already exist on the host.
19
19
  """
20
20
 
21
- no_mount = {"/", "/dev", "/proc", "/sys"}
21
+ # FIXME: Disallowing home is a temporary solution to get this to work in the BenchCloud.
22
+ # The benchcloud will eventually hide /home, so it can be omitted in this case. But potential users should be aware of this.
23
+ no_mount = {"/", "/dev", "/proc", "/sys", "/home"}
22
24
 
23
25
  command_iter = (arg for arg in command if arg not in no_mount)
26
+ seen = set()
24
27
  for arg in command_iter:
25
28
  if arg in RESERVED_LOCATIONS:
26
29
  logging.warning("Ignoring reserved path %s. This path is internally used and mounted by fm-weck.", arg)
27
30
 
28
31
  path = Path(arg)
29
- if path.exists() and path.is_absolute():
32
+ if path not in seen and path.is_absolute() and path.exists() and not path.is_relative_to(cwd):
30
33
  yield path
34
+ seen.add(path)
fm_weck/serve.py CHANGED
@@ -16,9 +16,6 @@ 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.resources import BENCHEXEC_WHL
20
- from fm_weck.runexec_util import mountable_absolute_paths_of_command
21
-
22
19
  from .config import Config, parse_fm_data
23
20
  from .engine import CACHE_MOUNT_LOCATION, Engine
24
21
 
@@ -149,27 +146,3 @@ def run_manual(
149
146
  logger.debug("Using executable %s", executable)
150
147
  logger.debug("Assembled command %s", [executable, *command])
151
148
  engine.run(executable, *command)
152
-
153
-
154
- def run_runexec(benchexec_package: Optional[Path], use_image: Optional[str], configuration: Config, command: list[str]):
155
- if use_image is not None:
156
- configuration.set_default_image(use_image)
157
-
158
- engine = Engine.from_config(configuration)
159
- engine.add_benchexec_capabilities = True
160
-
161
- if benchexec_package is not None:
162
- engine.mount(benchexec_package, "/home/__fm_weck_benchexec")
163
- engine.env["PYTHONPATH"] = "/home/__fm_weck_benchexec"
164
- else:
165
- # Default to the bundled benchexec package
166
- benchexec_package = configuration.get_shelve_path_for_benchexec()
167
- shutil.copyfile(BENCHEXEC_WHL, benchexec_package)
168
- engine.env["PYTHONPATH"] = f"{CACHE_MOUNT_LOCATION}/.lib/benchexec.whl"
169
-
170
- for path in mountable_absolute_paths_of_command(command):
171
- engine.mount(path, path)
172
-
173
- configuration.make_runexec_script_available()
174
-
175
- engine.run(f"{CACHE_MOUNT_LOCATION}/.scripts/runexec", *command)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fm-weck
3
- Version: 1.3.0
3
+ Version: 1.4.1
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