Skip to content

Merge current cbmc/master into test-gen-support #762

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
170 commits
Select commit Hold shift + click to select a range
60e2e0e
adjusted the command line for the pid controller case study with a be…
theyoucheng Nov 10, 2016
e672e0d
Turn "label: goto label;" or "while(cond);" into assume
tautschnig Dec 23, 2016
27ba5d5
support class file loading limit in classpath
Mar 15, 2017
a963d0f
add regression test for class path load limit
Mar 15, 2017
7371265
Call get_language_options from get_goto_model
smowton Nov 30, 2016
fbdf29a
Remove DEBUG ifdefs which broke the debug build
reuk Mar 16, 2017
0314b24
Remove the disable-runtime-checks flag for Java
cristina-david Mar 16, 2017
6c53036
Fix errors when -Wall -Werror flags are set
reuk Mar 17, 2017
1a5c69d
Fix DEBUG blocks based on feedback
reuk Mar 20, 2017
89562ca
Adding tests for function pointer removal
Jan 13, 2017
995f504
Made remove_function_pointers inherit from messaget
Jan 30, 2017
563a351
First implemention of the new approach
Feb 2, 2017
3b3acd6
Support for removing the typecast
Feb 2, 2017
e4829eb
Adding support for top level pointers and typecasts
Feb 2, 2017
11f15ee
Fixing arrays containing null pointers
Feb 2, 2017
a479c98
Correctly deal with const structures
Feb 2, 2017
921f0b7
Fixing component access and const access
Feb 2, 2017
b814d65
Fixing todo to use separate array
Feb 6, 2017
22ca113
Corrected const-ness for components
Feb 7, 2017
d87dffd
Handle failure to squash the value when getting out of an array
Feb 7, 2017
f51b252
Correcting const check for pointers
Feb 7, 2017
1fbfbbc
Adding examples to tests of what the const prevents
Feb 7, 2017
5ab672a
Corrected const check for no FP pointers
Feb 7, 2017
0499b44
Added tests to cover a couple of missed lines
Feb 7, 2017
208ef2b
Fixed issue with structs with other components
Feb 8, 2017
3da26cd
Adding test for another way the previous bug could be exhibited
Feb 8, 2017
eefba98
Adding a test variation of 44 without the consts that fails correctly
Feb 8, 2017
132801a
Squash constant symbols first
Feb 8, 2017
931b239
Fixed major bug with non const structs
Feb 8, 2017
2e94125
Removing redundant code
Feb 8, 2017
63afb80
Added logging for all the ways the FP removal might not complete
Feb 8, 2017
9da5ba2
Adding consistency checks for the output
Feb 9, 2017
d81f6cb
Adding comments to remove_const_function_pointers
Feb 9, 2017
3e669c0
Renamed all the tests
Feb 9, 2017
a6e71e0
Tidied up tests
Feb 10, 2017
ea5c151
Fixing compile errors for musketeer
Feb 10, 2017
f68ff26
Refactored resolve_index_of_function_call
Feb 10, 2017
6298fea
Split out functions from try_resolve_function_call
Feb 10, 2017
5d33d4d
Made the behaviour of try_resolve_function_call clearer
Feb 10, 2017
a75957b
Split up try_resolve_expression into functions
Feb 10, 2017
37660b1
Made other try_resolve*_function_call use the normal method
Feb 10, 2017
8362233
Extracted element dealing with calling resolve on each result
Feb 10, 2017
e57677e
Adding the pointer check flag
Feb 13, 2017
0de6b17
Adding checks for NULL function pointers
Feb 13, 2017
10a08ef
Renaming functions to more consistent name
Feb 13, 2017
cf6a49a
Swap to using an unorded set
Feb 13, 2017
db11c31
Added flag for goto-instrument to just remove const function pointers
Feb 13, 2017
052da5a
Check the GOTO program for loss of const
Feb 14, 2017
6ba0469
Added a couple of missed test cases.
Feb 16, 2017
18b5907
Fixing tests to work with new test.pl
Feb 16, 2017
2538f4f
Fixing missing new lines
Feb 20, 2017
29e7e0d
Split out the const check into own analysis
Mar 20, 2017
649e0bf
Descend all children of the same base type
Mar 21, 2017
4607e73
PR Feedback implementation
Mar 22, 2017
d7c15ae
Use pointers in is_type_at_least_as_const_as
Mar 22, 2017
35356bd
keep typedefs when dumping c with --use-system-headers
Dec 14, 2016
08cf4ee
Added initial collection of tests for typedef'd types
Dec 14, 2016
99067de
If a type has a typedef then use that when printing the type
Dec 14, 2016
eb7e551
Adding tests for structs and parameters using typedefs
Dec 15, 2016
0152f67
Improved chain.sh to remove old .gb files first
Dec 16, 2016
ad384f1
kept consistency between parse options of cbmc and goto-instrument tools
lucasccordeiro Mar 27, 2017
13dfd5a
make_binary is not safe to use when types are mixed
tautschnig Mar 1, 2016
b4ae916
Enabled test cases in goto-instrument after fixes in the full-slice
lucasccordeiro Mar 27, 2017
e333f8d
Tolerate missing symbols in gather_needed_globals. Fixes #620
smowton Mar 28, 2017
e8dbc40
Adding tests for union typedefs
Dec 16, 2016
5dd0c8a
Adding const variables tests
Dec 16, 2016
bb09401
Adding tests for anonymous unions
Dec 16, 2016
79f1638
Adding regression tests for multiple declarations on one line
Dec 16, 2016
a8a5eb1
Remove reserved identifier
reuk Mar 28, 2017
fc8d7c6
Added regressions for typedefs on the source file
Dec 16, 2016
f9aac34
Avoid duplicate callee class-ids in virtual dispatch tables. Fixes #684
smowton Mar 28, 2017
da35d59
Merge pull request #713 from reuk/language-ui-cleanup
Mar 28, 2017
b1d0666
Merge pull request #703 from lucasccordeiro/cprover-library-message
Mar 28, 2017
22e9267
Use ID_C_typedef rather than ID_typedef
Dec 16, 2016
7c1aeb4
Fixing relevant lint errors
Jan 16, 2017
c64eacc
Fixed the failing ANSI-C test caused by typedef types not being equal
Jan 17, 2017
eec7a5d
Turn the ID_C_typedef into a comment
Jan 26, 2017
02c77a4
Added tests that demonstrate the issue with static inline c functions.
NlightNFotis Mar 28, 2017
6824297
Include --verbosity in help output of cbmc and symex
tautschnig Jun 27, 2016
090dfce
fixup! Add json->irep deserialization routine
tautschnig Mar 27, 2017
d658c0c
Throw when -DNDEBUG would cause missing return values
tautschnig Mar 27, 2017
b5e97ae
fixup! Add --drop-unused-functions option
tautschnig Mar 27, 2017
5aef4f2
fixup! Option --no-built-in-assertions
tautschnig Mar 27, 2017
bfd57ba
missing assert.h
Jun 20, 2016
628d4e1
Generalise witness as location numbers may vary
tautschnig Dec 12, 2016
753e718
Minor code cleanup of irep.h
tautschnig Jun 25, 2016
b56a339
Generalise witness as location numbers may vary
tautschnig Dec 12, 2016
9c68c07
Rename _start to __CPROVER_start
tautschnig Mar 24, 2017
6755ecf
Fix really pedantic compiler errors
reuk Mar 29, 2017
a79ea27
Merge pull request #700 from lucasccordeiro/fix-full-slice-04
Mar 29, 2017
55b5b7e
Merge pull request #714 from smowton/fix_lazy_methods_with_opaque_glo…
Mar 29, 2017
7300d07
String abstraction requires remove_returns
tautschnig Nov 5, 2016
80ba3cf
Make rename_symbol a no-op if its maps are empty
tautschnig Jun 26, 2016
39c26fb
Merge pull request #718 from NlightNFotis/bugdemo/static_inline
Mar 29, 2017
565faaf
Merge pull request #715 from smowton/fix_duplicate_virtual_dispatch_g…
Mar 29, 2017
7e24dca
Merge pull request #723 from reuk/extra-errors
Mar 29, 2017
556352d
Merge pull request #724 from tautschnig/release-cleanup
Mar 29, 2017
9c12efd
use stat to determine whether a directory entry is a subdirectory; d_…
Mar 29, 2017
cf42202
gcc_message_handlert must obey verbosity
tautschnig Feb 21, 2017
943bdc8
Ubuntu has new g++
Mar 29, 2017
2d26cb7
removed unnecessary newline
Mar 29, 2017
0983dbf
compile with Visual Studio 2017
Mar 29, 2017
610e9e4
use std::size_t for counters
Mar 29, 2017
b1fd150
SV-COMP's __VERIFIER_error is assert(0); abort();
tautschnig Dec 31, 2016
24a9ca0
Graphml output: do not output assumptions containing internal identif…
tautschnig Jan 7, 2017
df0890b
GraphML witnesses: code cleanup, output nondet return values
tautschnig Feb 25, 2017
c8687e7
Print the original return type in coverage report
tautschnig Mar 13, 2017
08162b6
Make recording of branches possible
tautschnig Mar 13, 2017
b7b0059
Properly report branch coverage
tautschnig Mar 13, 2017
2a86ae3
Tests for variable sensitivity in goto-analyzer
Feb 24, 2017
7fd6180
Fix concurrent traces generated via --trace
tautschnig Mar 25, 2017
66481ab
Removed the dynamic_object_exprt's instance()
mariusmc92 Mar 14, 2017
dfc3b6e
Support --property with --reachability-slice
tautschnig Mar 3, 2017
ee3c39a
Always check Java pointers for null before deref
smowton Mar 30, 2017
eb20cdf
Amend tests perturbed by adding null pointer checks
smowton Mar 31, 2017
f9cd371
Document change to pointer-check option
smowton Mar 31, 2017
acbe2d0
New goto-instrument option --list-calls-args
tautschnig Apr 21, 2016
bacd444
goto-instrument --print-path-lengths: statistics about control-flow g…
May 13, 2016
68bded3
List functions (with start and end lines) that won't be used
tautschnig Sep 1, 2016
50170f0
goto-analyzer --reachable-functions
tautschnig Sep 5, 2016
5875335
goto-instrument: Replace calls to undefined functions by assume(false)
tautschnig Jul 11, 2016
1bc1239
Print status information upon reaching assume(false)
tautschnig Jul 11, 2016
d811f4d
update compilation instructions
Apr 2, 2017
0889178
Merge pull request #31 from tautschnig/make_binary-vs-pointers
Apr 3, 2017
4fc6633
Migrated all message clients to messaget, removing deprecated message…
tautschnig Jul 6, 2016
79a95f7
Merge pull request #300 from theyoucheng/case-study
Apr 3, 2017
ce147fb
removed legacy_typecheckt
Apr 3, 2017
7f0ae8b
Merge branch 'master' of github.com:diffblue/cbmc
Apr 3, 2017
b0778bf
Consistency: use messaget's error directly instead of throwing string…
tautschnig Jul 7, 2016
d13a056
use new messaging interface
Apr 3, 2017
767a373
Added location information to warning messages missing it
tautschnig Jul 11, 2016
f2f5e36
Completely remove cpp_typecheckt::check_template_restrictions
tautschnig Jul 11, 2016
384bd7c
Merge pull request #716 from mariusmc92/cleanup/type-safe-dynamic-object
Apr 3, 2017
cba259c
Merge pull request #647 from reuk/remove-broken-debug
Apr 3, 2017
11773eb
Merge pull request #649 from cristina-david/remove-disable-runtime-ch…
Apr 3, 2017
5679e90
Merge pull request #697 from tautschnig/concurrency-trace
Apr 3, 2017
5d1f301
Enable ccache on Travis, plus travis.yml restructuring
forejtv Mar 24, 2017
279b3ca
Allow cpplint to fail on Travis.
forejtv Mar 31, 2017
e7529e8
Add XML and JSON output to the base of both ai domains and the ai ana…
Sep 8, 2016
4e354e3
Merge branch 'master' of github.com:diffblue/cbmc
Apr 3, 2017
23d6aad
Constant propagator and intervals regression tests
Sep 9, 2016
b0846b2
Add utility function to tell if a program is threaded or not.
Dec 15, 2016
cc26814
Fixes and improvements to the constant and interval domain.
Dec 19, 2016
d5e8fca
camel case for json
danpoe Jan 27, 2017
c16d75b
merge fixes
danpoe Feb 22, 2017
49163a4
Merge pull request #745 from forejtv/feature/travis-ccache
Apr 3, 2017
1e0334d
fix travis merge problem
forejtv Apr 3, 2017
b4b3c75
Mark goto-analyzer tests as not working until the new version is merg…
forejtv Apr 3, 2017
ea1f475
Split Travis debug build to separate jobs, and run it only on Linux.
forejtv Apr 3, 2017
69674f6
Merge pull request #753 from forejtv/bugfix/master-fixes
Apr 4, 2017
8ea36da
Merge pull request #747 from tautschnig/undefined-function-assume-false
Apr 4, 2017
07e072b
Use versioned container of Alpine linux.
Mar 30, 2017
95284f5
Merge pull request #358 from thk123/bug/typedef-structs-clean
Apr 4, 2017
bf08eee
Merge pull request #375 from tautschnig/trivial-loops
Apr 4, 2017
fae3cd8
Merge pull request #519 from thk123/feature/clean-fp-removal
Apr 4, 2017
2fa05f4
Merge pull request #566 from owen-jones-diffblue/feature/tests-for-se…
Apr 4, 2017
bc483df
Merge pull request #588 from smowton/sss_get_language_options
Apr 4, 2017
314b390
Merge pull request #639 from mgudemann/feature/limit_class_path_loading
Apr 4, 2017
c717737
Merge pull request #680 from tautschnig/coverage-fixes
Apr 4, 2017
57f9fa6
Merge pull request #721 from tautschnig/rename-_start
Apr 4, 2017
21d1bfa
Merge branch 'master' into reachability-slice
Apr 4, 2017
7ddee5f
Merge pull request #732 from tautschnig/reachability-slice
Apr 4, 2017
4a24bd9
Merge pull request #734 from tautschnig/sv-comp-support
Apr 4, 2017
f03c32d
Merge pull request #736 from zemanlx/feature/travis-use-versioned-con…
Apr 4, 2017
f55e413
Merge pull request #737 from smowton/java_null_checks
Apr 4, 2017
e69632e
Merge pull request #740 from tautschnig/status-assume-false
Apr 4, 2017
7b6b527
Fix failing build on master.
forejtv Apr 4, 2017
65cad8f
Fix failing test's regexp.
forejtv Apr 4, 2017
32a68db
Merge pull request #757 from forejtv/bugfix/master-fixes
Apr 4, 2017
f2bfd67
Merge remote-tracking branch 'origin/master' into smowton/merge/maste…
smowton Apr 5, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
105 changes: 91 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,30 +7,44 @@ matrix:
- os: linux
sudo: required
compiler: gcc
cache: ccache
services:
- docker
before_install:
- docker pull diffblue/cbmc-builder:alpine
- docker pull diffblue/cbmc-builder:alpine-0.0.1
env:
- PRE_COMMAND="docker run -v ${TRAVIS_BUILD_DIR}:/cbmc diffblue/cbmc-builder:alpine"
- COMPILER=g++
- PRE_COMMAND="docker run -v ${TRAVIS_BUILD_DIR}:/cbmc -v ${HOME}/.ccache:/root/.ccache diffblue/cbmc-builder:alpine-0.0.1"
- COMPILER="ccache g++"

# OS X using g++
- os: osx
sudo: false
compiler: gcc
cache: ccache
before_install:
#we create symlink to non-ccache gcc, to be used in tests
- mkdir bin ; ln -s /usr/bin/gcc bin/gcc
- brew install ccache
- export PATH=/usr/local/opt/ccache/libexec:$PATH
env: COMPILER=g++

# OS X using clang++
- os: osx
sudo: false
compiler: clang
env: COMPILER=clang++
cache: ccache
before_install:
- brew install ccache
- export PATH=/usr/local/opt/ccache/libexec:$PATH
env:
- COMPILER="ccache clang++ -Qunused-arguments -fcolor-diagnostics"
- CCACHE_CPP2=yes

# Ubuntu Linux with glibc using g++-5
- os: linux
sudo: false
compiler: gcc
cache: ccache
addons:
apt:
sources:
Expand All @@ -42,12 +56,34 @@ matrix:
before_install:
- mkdir bin ; ln -s /usr/bin/gcc-5 bin/gcc
# env: COMPILER=g++-5 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer"
env: COMPILER=g++-5
env: COMPILER="g++-5"

# Ubuntu Linux with glibc using g++-5, debug mode
- os: linux
sudo: false
compiler: gcc
cache: ccache
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- libwww-perl
- g++-5
- libubsan0
before_install:
- mkdir bin ; ln -s /usr/bin/gcc-5 bin/gcc
# env: COMPILER=g++-5 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover -fno-omit-frame-pointer"
env:
- COMPILER="g++-5"
- EXTRA_CXXFLAGS="-DDEBUG"
script: echo "Not running any tests for a debug build."

# Ubuntu Linux with glibc using clang++-3.7
- os: linux
sudo: false
compiler: clang
cache: ccache
addons:
apt:
sources:
Expand All @@ -60,19 +96,60 @@ matrix:
- libubsan0
before_install:
- mkdir bin ; ln -s /usr/bin/clang-3.7 bin/gcc
- export CCACHE_CPP2=yes
# env: COMPILER=clang++-3.7 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined,integer -fno-omit-frame-pointer"
env: COMPILER=clang++-3.7
env:
- COMPILER="ccache clang++-3.7 -Qunused-arguments -fcolor-diagnostics"
- CCACHE_CPP2=yes

# Ubuntu Linux with glibc using clang++-3.7, debug mode
- os: linux
sudo: false
compiler: clang
cache: ccache
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise-3.7
packages:
- libwww-perl
- clang-3.7
- libstdc++-5-dev
- libubsan0
before_install:
- mkdir bin ; ln -s /usr/bin/clang-3.7 bin/gcc
- export CCACHE_CPP2=yes
# env: COMPILER=clang++-3.7 SAN_FLAGS="-fsanitize=undefined -fno-sanitize-recover=undefined,integer -fno-omit-frame-pointer"
env:
- COMPILER="ccache clang++-3.7 -Qunused-arguments -fcolor-diagnostics"
- CCACHE_CPP2=yes
- EXTRA_CXXFLAGS="-DDEBUG"
script: echo "Not running any tests for a debug build."

- env: NAME="CPP-LINT"
install:
script: scripts/travis_lint.sh
before_cache:

allow_failures:
- env: NAME="CPP-LINT"
script: scripts/travis_lint.sh || true
install:
script: scripts/travis_lint.sh
before_cache:

install:
- COMMAND="make -C src minisat2-download" &&
eval ${PRE_COMMAND} ${COMMAND}
- COMMAND="make -C src CXX=\"$COMPILER\" CXXFLAGS=\"-Wall -O2 -g -Werror -Wno-deprecated-register -pedantic -Wno-sign-compare $EXTRA_CXXFLAGS\" -j2" &&
eval ${PRE_COMMAND} ${COMMAND}
- COMMAND="make -C src CXX=\"$COMPILER\" CXXFLAGS=\"$FLAGS $EXTRA_CXXFLAGS\" -j2 cegis.dir clobber.dir memory-models.dir musketeer.dir" &&
eval ${PRE_COMMAND} ${COMMAND}

script:
- if [ -L bin/gcc ] ; then export PATH=$PWD/bin:$PATH ; fi ;
COMMAND="make -C src minisat2-download" &&
eval ${PRE_COMMAND} ${COMMAND} &&
COMMAND="make -C src CXX=$COMPILER CXXFLAGS=\"-Wall -O2 -g -Werror -Wno-deprecated-register -pedantic -Wno-sign-compare\" -j2" &&
eval ${PRE_COMMAND} ${COMMAND} &&
- if [ -e bin/gcc ] ; then export PATH=$PWD/bin:$PATH ; fi ;
COMMAND="env UBSAN_OPTIONS=print_stacktrace=1 make -C regression test" &&
eval ${PRE_COMMAND} ${COMMAND} &&
COMMAND="make -C src CXX=$COMPILER CXXFLAGS=$FLAGS -j2 cegis.dir clobber.dir memory-models.dir musketeer.dir" &&
eval ${PRE_COMMAND} ${COMMAND}

before_cache:
- ccache -s
14 changes: 14 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
5.8
===

* GOTO-INSTRUMENT: --reachability-slice can be used with --property to slice
down to a single property only.
* GOTO-INSTRUMENT: New option --list-calls-args
* GOTO-INSTRUMENT: New option --print-path-lenghts
* GOTO-ANALYZER: New option --unreachable-functions, --reachable-functions
* GOTO-INSTRUMENT: New option --undefined-function-is-assume-false


5.7
===

Expand All @@ -20,6 +31,9 @@
* GOTO-CC: GCC-style error/warning messages
* GOTO-CC: New options --native-compiler and --native-linker to select the
compiler/linker to be used when building combined native/goto object files.
* CBMC, SYMEX, GOTO-INSTRUMENT: New option --drop-unused-functions. Removed
ambiguous --show-reachable-properties.
* CBMC: New option --no-built-in-assertions


5.6
Expand Down
27 changes: 14 additions & 13 deletions COMPILING
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,18 @@ We assume that you have a Debian/Ubuntu or Red Hat-like distribution.

git clone https://github.com/diffblue/cbmc cbmc-git

2) On Debian/Ubuntu, do
2) On Debian, do

cd cbmc-git/src
make minisat2-download
make CXX=g++-6

On Ubuntu, or other distributions with recent g++, do

cd cbmc-git/src
make minisat2-download
make

On Redhat/Fedora etc., do

cd cbmc-git/src
Expand All @@ -64,7 +70,7 @@ COMPILATION ON SOLARIS 11
1) As root, get the necessary development tools:

pkg install system/header developer/lexer/flex developer/parser/bison developer/versioning/git
pkg install --accept developer/gcc-5
pkg install --accept developer/gcc/gcc-c++-5

2) As a user, get the CBMC source via

Expand All @@ -86,9 +92,6 @@ COMPILATION ON SOLARIS 11

export LD_LIBRARY_PATH=/usr/gcc/4.9/lib

Do not attempt to compile with gcc-45 that comes with Solaris 11.
It will mis-optimize MiniSat2.


COMPILATION ON FREEBSD 11
-------------------------
Expand Down Expand Up @@ -163,23 +166,21 @@ Follow these instructions:
The patch removes the dependency on zlib and prevents a problem
with a header file that is often unavailable on Windows.

2) Adjust src/config.inc for the paths to item 1).

3A) To compile with Cygwin, install the mingw compilers, and adjust
2A) To compile with Cygwin, install the mingw compilers, and adjust
the second line of config.inc to say

BUILD_ENV = MinGW

3B) To compile with Visual Studio, make sure you have at least Visual
2B) To compile with Visual Studio, make sure you have at least Visual
Studio version 12 (2013), and adjust the second line of config.inc to say

BUILD_ENV = MSVC

Open the Visual Studio Command prompt, and then run the make.exe
from Cygwin from in there.
Open the Visual Studio Command prompt, and then bash.exe -login from
Cygwin from in there.

3) Type cd src; make - that should do it.

4) Type cd src; make - that should do it.
Note that "nmake" is not expected to work. Use "make".

(Optional) A Visual Studio project file can be generated with the script
"generate_vcxproj" that is in the subdirectory "scripts". The project file
Expand Down
16 changes: 10 additions & 6 deletions doc/html-manual/cover.shtml
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ To demonstrate the automatic test suite generation in CBMC,
we call the following command and we are going to explain the command line options one by one.
</p>

<pre><code>cbmc pid.c --cover mcdc --unwind 6 --trace --xml-ui
<pre><code>cbmc pid.c --cover mcdc --unwind 6 --xml-ui
</code></pre>

<p class="justified">
Expand All @@ -173,18 +173,22 @@ pprz >= (float)0 && pprz <= (float)(16 * 600) id="climb_pid_run.coverage.3"

<p class="justified">
The "id" of each coverage goal is automatically assigned by CBMC. For every
coverage goal, a trace (if there exists) of the program execution that
satisfies such a goal is printed out in XML format, as the parameters
<code>--trace --xml-ui</code> are given. Multiple coverage goals can share a
trace, when the corresponding execution of the program satisfies all these
goals at the same time. Each trace corresponds to a test case.
coverage goal, a test suite (if there exists) that <!-- the program execution that-->
satisfies such a goal is printed out in XML format, as the parameter
<code>--xml-ui</code> is given. Multiple coverage goals can share a
test suite, when the corresponding execution of the program satisfies all these
goals at the same time. <!--Each trace corresponds to a test case.-->
</p>

<p class="justified">
In the end, the following test suites are automatically generated for testing the PID controller.
A test suite consists of a sequence of input parameters that are
passed to the PID function <code>climb_pid_run</code> at each loop iteration.
For example, Test 1 covers the MC/DC goal with id="climb_pid_run.coverage.1".
The complete output from CBMC is in
<a href="pid_test_suites.xml">pid_test_suites.xml</a>, where every test suite and the coverage goals it is for
are clearly described.

<pre><code>Test suite:
Test 1.
(iteration 1) desired_climb=-1.000000f, estimator_z_dot=1.000000f
Expand Down
Loading