Benchmark Verification Tasks
All verification tasks are available for web browsing and for download via the following SVN repository: https://github.com/dbeyer/sv-benchmarks/releases/tag/svcomp12
The 2012 edition of the competition on software verification is based on several categories of benchmark programs, which are explained in the following.
The benchmarks for this competition were contributed by several research and development groups.
After the submission deadline for benchmarks, a group of people (organizer and participants)
were working on improving the quality of the benchmark programs.
That means that after the benchmark sets were made public,
some programs were removed (not qualified, no property encoded, unknown architecture),
and some programs got technically improved (CIL simplifications, compiler warnings, memory model).
These changes have improved the overall quality of the final set of programs for the competition,
and have not changed the intended verification result;
all changes are tracked in the public repository.
Thanks to all participants that contributed programs, sent patches, and commented on the sets.
Control Flow and Integer Variables
The first set of verification tasks consists of the programs in the set ControlFlowInteger:
ntdrivers-simplified/*_BUG.cil.c ntdrivers-simplified/*[!G].cil.c ntdrivers/*.BUG.i.cil.c ntdrivers/*[!G].i.cil.c ssh-simplified/*_BUG.cil.c ssh-simplified/*[!G].cil.c ssh/*.BUG.i.cil.c ssh/*[!G].i.cil.c locks/*.BUG.c locks/*[!G].c
The problems in this category use programs and properties that depend mostly on control-flow structure and integer variables. There is no particular focus on pointers, data structures, and concurrency. The programs were taken from the source code repositories of the tools BLAST and CPAchecker.
Linux Device Drivers 32-bit
This category consists of problems that require the analysis of pointer aliases and function pointers (32-bit machine model):
ldv-regression/*-unsafe*.cil.c ldv-regression/*-safe*.cil.c ddv-machzwd/*_BUG.cil.c ddv-machzwd/*[!G].cil.c
The problems in this category were contributed by the
Linux Driver Verification project
and by the
DDVerify project.
Descriptions:
ldv-regression,
ddv-machzwd
Linux Device Drivers 64-bit
This category consists of problems that require the analysis of pointer aliases and function pointers (64-bit machine model):
ldv-drivers/*-unsafe*.cil.c ldv-drivers/*-safe*.cil.c
The problems in this category were contributed by the
Linux Driver Verification project.
Descriptions:
ldv-drivers
Dynamic Data Structures
The problems in this category require the analysis of data structures on the heap and consist of the programs in the set HeapManipulation:
heap-manipulation/*BUG.cil.c heap-manipulation/*[!G].cil.c list-properties/*.cil.c
The benchmarks in directory 'heap-manipulation' were provided by the Predator project
and taken from a supplementary web page of the BLAST 3.0 project.
Description:
heap-manipulation,
list-properties
Concurrency
Some concurrency problems are contained in the set Concurrency:
pthread/*BUG.cil.c pthread/*[!G].cil.c
The benchmark set was provided by the ESBMC project.
Description:
pthread
SystemC
This category contains concurrency-related problems in the context of SystemC:
systemc/*BUG.cil.c systemc/*[!G].cil.c
This set of benchmarks
was provided by the SyCMC project.
The programs were transformed to pure C programs by incorporating the scheduler into the C code.
Description:
systemc
Overall
The category Overall contains all verification tasks of all above categories. (The jury has not yet determined a weighting schema.)