Skip to content

Commit 960bfdc

Browse files
authored
CVF 1.0: Continuous Verification Framework
The Continuous Verification Framework (CVF) is a toolkit for processing, managing, and analyzing software verification results. It provides built-in support for regression verification, making it easier to track and compare verification outcomes across software versions.
1 parent c152b63 commit 960bfdc

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+847
-6830
lines changed

.github/workflows/deploy.yml

Lines changed: 24 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,6 @@ jobs:
1717
with:
1818
python-version: ${{ matrix.python-version }}
1919

20-
- name: Configure system for container mode
21-
run: |
22-
echo "Enabling unprivileged user namespaces..."
23-
sudo sysctl kernel.unprivileged_userns_clone=1
24-
sudo sysctl -w user.max_user_namespaces=10000
25-
26-
- name: Install system dependencies
27-
run: |
28-
echo "Installing required packages..."
29-
sudo apt-get update
30-
sudo apt-get install -y openjdk-17-jdk
31-
echo "Configuring Java 17 as default..."
32-
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk-amd64/bin/java 1
33-
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac 1
34-
sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
35-
sudo update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac
36-
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV
37-
3820
- name: Install Python dependencies
3921
run: |
4022
python3 -m pip install --upgrade pip
@@ -44,19 +26,8 @@ jobs:
4426
run: |
4527
echo "Building and deploying CV..."
4628
make install -j"$(nproc)" DEPLOY_DIR=build
47-
make install-cif-compiled -j"$(nproc)" DEPLOY_DIR=build
4829
49-
- name: Run integration tests
50-
run: |
51-
echo "Running integration tests..."
52-
cp -r docs/examples/sources/ build/
53-
cd build
54-
python3 ./scripts/launch.py -c configs/it.json
55-
56-
echo "Verifying results..."
57-
grep "it;smg;no_memory_leak_caller;TRUE;SUCCESS" results/report_launches_it_*.csv || exit 1
58-
grep "it;smg;memory_leak_caller;FALSE;SUCCESS" results/report_launches_it_*.csv || exit 1
59-
build-visualizer:
30+
build-witness-visualizer:
6031
runs-on: ubuntu-latest
6132
strategy:
6233
matrix:
@@ -71,12 +42,12 @@ jobs:
7142
run: |
7243
python3 -m pip install --upgrade pip
7344
pip3 install -r requirements.txt
74-
- name: Deployment of Benchmark Visualizer
45+
- name: Deployment of Witness Visualizer
7546
run: |
76-
DEPLOY_DIR=build make install-benchmark-visualizer -j$(nproc)
47+
DEPLOY_DIR=build make install-witness-visualizer -j$(nproc)
7748
cd build
78-
python3 ./scripts/visualize_witnesses.py -r results/ -d ../docs/examples/witnesses/violation/
79-
python3 ./scripts/visualize_witnesses.py -r results/ -d ../docs/examples/witnesses/correctness/
49+
python3 ./cv/witness_visualizer.py -r results/ -d ../docs/examples/witnesses/violation/
50+
python3 ./cv/witness_visualizer.py -r results/ -d ../docs/examples/witnesses/correctness/
8051
build-mea:
8152
runs-on: ubuntu-latest
8253
strategy:
@@ -96,8 +67,8 @@ jobs:
9667
run: |
9768
DEPLOY_DIR=build make install-mea -j$(nproc)
9869
cd build
99-
python3 ./scripts/filter.py -d ../docs/examples/witnesses/violation/
100-
build-frama-c-cil:
70+
python3 ./cv/mea.py -d ../docs/examples/witnesses/violation/
71+
deploy-cvv:
10172
runs-on: ubuntu-latest
10273
strategy:
10374
matrix:
@@ -108,6 +79,21 @@ jobs:
10879
uses: actions/setup-python@v3
10980
with:
11081
python-version: ${{ matrix.python-version }}
111-
- name: Deployment of Frama-C CIL
82+
83+
- name: Install dependencies
84+
run: |
85+
python3 -m pip install --upgrade pip
86+
pip3 install -r requirements.txt
87+
88+
- name: Install system dependencies
89+
run: |
90+
echo "Installing required packages..."
91+
sudo apt-get update
92+
sudo apt-get install -y postgresql libpq-dev gettext
93+
94+
- name: Deployment of CVV
11295
run: |
113-
DEPLOY_DIR=build make install-frama-c-cil -j$(nproc)
96+
DEPLOY_DIR=build make deploy-cvv -j$(nproc)
97+
cd build/cvv
98+
pip3 install requests ujson graphviz django psycopg2 pluggy py attrs six more-itertools ply pytest atomicwrites pycparser psycopg2 sympy pytz
99+
deploys/deployment.sh __cvf_cvv_deploy

.gitignore

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
__pycache__/
2-
work_dir*
2+
work_dir
33
results
4-
tools/
5-
buildbot/
6-
plugin/
4+
tools

.pylintrc

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,18 @@
11
[MESSAGES CONTROL]
22

33
disable=
4-
wildcard-import,
5-
unused-wildcard-import,
64
too-many-instance-attributes,
75
too-many-locals,
86
too-many-arguments,
97
broad-exception-caught,
108
fixme,
119
logging-fstring-interpolation,
1210
too-many-branches,
13-
unused-import,
1411
import-error,
1512
too-many-statements,
1613
too-many-nested-blocks,
1714
import-outside-toplevel,
1815
no-member,
1916
duplicate-code,
2017
too-few-public-methods,
21-
unnecessary-lambda,
22-
no-name-in-module,
2318
line-too-long
24-

.reuse/templates/header.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Continuous Verification Framework - processing and managing verification results.
2+
Repository: https://github.com/ispras/cv
3+
4+
{% for copyright_line in copyright_lines %}
5+
{{ copyright_line }}
6+
{% endfor %}
7+
8+
{% for expression in spdx_expressions %}
9+
SPDX-License-Identifier: {{ expression }}
10+
{% endfor %}

0 commit comments

Comments
 (0)