Skip to content

jamartis/aufover-benchmark

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

179 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aufover-benchmark
=================
A unified set of automated tests for multiple formal verification tools
(cbmc, symbiotic, divine) as well as static analysis tools (gcc, clang,
cppcheck).


How to run existing tests?
--------------------------
- enable yum/dnf repositories from `aufover` COPRs:
    $ sudo dnf copr enable -y @aufover/csdiff
    $ sudo dnf copr enable -y @aufover/divine
    $ sudo dnf copr enable -y @aufover/predator
    $ sudo dnf copr enable -y @aufover/symbiotic

- install required/optional dependencies of the benchmark on the system:
    $ make install-deps

- configure the benchmark:
    $ make

- run the tests:
    $ make check

- look for Label Time Summary in the output, it will tell you:
    - which tools actually ran
    - how many tests each of them analyzed (you need to divide the numbers by 4)
    - how much time it took for each of the tools


Alternative ways of running tests
---------------------------------
- passing custom options to ctest:
    $ CTEST_OPTS='-LE divine' make check    # exclude Divine tests

- using a custom working directory:
    $ mkdir /tmp/my-custom-wd
    $ WORKDIR=/tmp/my-custom-wd make check [-C PATH_TO_THIS_REPO]

- using source directory as a working directory:
    $ cd tests
    $ cmake .
    $ ctest -j16 --progress         # see doc/cmake.txt for other useful options

- select tests by labels (expected to be run from a working directory):
    $ ctest --print-labels
    $ ctest -L cbmc
    $ ctest -LE EXPENSIVE

- running selected tests (expected to be run from a working directory):
    $ ctest --show-only
    $ ctest -R test-0006
    $ ctest -E predator-regre


Tree layout of this repository
------------------------------
/Makefile               top-level Makefile (its use is optional)
/doc                    documentation
/tests                  source code of the benchmark
/tests/CMakeLists.txt   top-level CMake configuration file
/tests/single-c         simplified test-suite using single C file for each test
/tests/single-c/README  information specific to the single-c test-suite
/tests/single-c/sync.sh script for syncing of expected results (use with care)
/workdir                default working directory (its use is optional)
/workdir-for-sync       separate working directory for sync script(s)

About

Collection of tasks used for evaluation of formal verification tools in the AUFOVER (Automation of Formal Verification) project.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 81.8%
  • CMake 13.6%
  • Shell 3.8%
  • Makefile 0.8%