Skip to content

Commit

Permalink
Run cbmc --full-slice in regression tests
Browse files Browse the repository at this point in the history
To ensure --full-slice keeps working on all of CBMC's regression tests,
run them in CI via an additional test profile. Some tests have to be
excluded for they rely on program statements not being removed.

Fixes: diffblue#260
  • Loading branch information
tautschnig committed Apr 11, 2022
1 parent 5ce50f5 commit c1246c7
Show file tree
Hide file tree
Showing 49 changed files with 57 additions and 94 deletions.
9 changes: 0 additions & 9 deletions regression/cbmc/Bool5/full-slice.desc

This file was deleted.

7 changes: 7 additions & 0 deletions regression/cbmc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ add_test_pl_profile(
"CORE"
)

add_test_pl_profile(
"cbmc-full-slice"
"$<TARGET_FILE:cbmc> --validate-goto-model --validate-ssa-equation --full-slice"
"-C;-X;smt-backend;-X;broken-full-slice;-X;full-slice-expected-failure;${gcc_only_string}-s;full-slice"
"CORE"
)

# solver appears on the PATH in Windows already
if(NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
set_property(
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/Float24/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.i
--win32 --xml-ui
^EXIT=10$
Expand Down
6 changes: 6 additions & 0 deletions regression/cbmc/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@ test-new-smt-backend:
-I new-smt-backend \
-s new-smt-backend $(GCC_ONLY)

test-full-slice:
@../test.pl -e -p -c "../../../src/cbmc/cbmc --validate-goto-model --validate-ssa-equation --full-slice" \
-X smt-backend $(GCC_ONLY) \
-X broken-full-slice -X full-slice-expected-failure
-s full-slice

tests.log: ../test.pl test

clean:
Expand Down
8 changes: 0 additions & 8 deletions regression/cbmc/Pointer18/full-slice.desc

This file was deleted.

2 changes: 1 addition & 1 deletion regression/cbmc/array-cell-sensitivity1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--show-vcc
main::1::array!0@1#2\[\[1\]\] = main::1::array!0@1#1\[1\]
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/array-cell-sensitivity15/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE paths-lifo-expected-failure
CORE paths-lifo-expected-failure full-slice-expected-failure
access.c
--program-only
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/array-cell-sensitivity2/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--show-vcc
main::1::array!0@1#2 = with\(main::1::array!0@1#1, cast\(main::argc!0@1#1 \+ -1, signedbv\[64\]\), 1\)
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/array-cell-sensitivity9/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--show-vcc
main::1::array!0@1#2\[\[0\]\]..x = main::1::array!0@1#1\[0\].x
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE broken-smt-backend
CORE broken-smt-backend full-slice-expected-failure
main.c
--smt2 --outfile -
\(= \(select array_of\.2 i\) \(ite false #b1 #b0\)\)
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/byte-op-metric/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--show-byte-ops
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/byte-op-metric/test_json.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--show-byte-ops --json-ui
activate-multi-line-match
Expand Down
8 changes: 0 additions & 8 deletions regression/cbmc/byte_update5/full-slice.desc

This file was deleted.

2 changes: 1 addition & 1 deletion regression/cbmc/compact-trace/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--compact-trace
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/coverage_report1/paths.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--symex-coverage-report - --paths lifo
<line branch="false" hits="1" number="12"/>
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/coverage_report1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--symex-coverage-report -
<line branch="false" hits="1" number="12"/>
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/destructors/compound_literal.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--unwind 10 --show-goto-functions
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/destructors/enter_lexical_block.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--unwind 10 --show-goto-functions
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/enum-trace1/test_json.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--json-ui --function test --trace
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/enum-trace1/test_xml.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--xml-ui --function test --trace
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/field-sensitivity1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--show-vcc
main::1::a!0@1#2\.\.x = main::argc!0@1#1
Expand Down
4 changes: 2 additions & 2 deletions regression/cbmc/field-sensitivity10/test.desc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
CORE
test.c
--show-vcc
main::1::a1!0@1#2\.\.y =
main::1::a2!0@1#2\.\.z =
main::1::a1!0@1#[12]\.\.y =
main::1::a2!0@1#[12]\.\.z =
^EXIT=0$
^SIGNAL=0$
--
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/field-sensitivity2/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--show-vcc
main::1::a1!0@1#2\.\.x =
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/field-sensitivity3/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--show-vcc
main::1::a1!0@1#2\.\.x =
Expand Down
4 changes: 2 additions & 2 deletions regression/cbmc/field-sensitivity8/test.desc
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
CORE
test.c
--show-vcc
main::1::a1!0@1#2\.\.y =
main::1::a2!0@1#2\.\.z =
main::1::a1!0@1#[12]\.\.y =
main::1::a2!0@1#[12]\.\.z =
^EXIT=0$
^SIGNAL=0$
--
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/function-return-no-body1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--xml-ui
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/graphml_witness1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--graphml-witness -
^EXIT=10$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/hex_trace/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--trace-hex --trace
^EXIT=10$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--show-goto-functions
^[[:space:]]*ASSIGN main::1::b := main::1::b \* cast\(100, ℤ\)$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/integer-assignments1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE smt-backend broken-smt-backend
CORE smt-backend broken-smt-backend full-slice-expected-failure
main.c
--trace --smt2
^EXIT=10$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/integral-trace/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--trace --xml-ui
activate-multi-line-match
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/multiple-goto-traces/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--trace
activate-multi-line-match
Expand Down
17 changes: 0 additions & 17 deletions regression/cbmc/overflow/leftshift_overflow-c99-full-slice.desc

This file was deleted.

2 changes: 1 addition & 1 deletion regression/cbmc/printf1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE broken-smt-backend
CORE broken-smt-backend full-slice-expected-failure
main.c
--trace
^EXIT=10$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/reachability-slice-interproc/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--reachability-slice-fb --show-goto-functions
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/reachability-slice-interproc3/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--reachability-slice-fb --show-goto-functions
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/reachability-slice/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--reachability-slice --show-goto-functions --cover location --property foo.coverage.2
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/reachability-slice/test2.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--reachability-slice-fb --show-goto-functions --cover location --property foo.coverage.2
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/reachability-slice/test3.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
test.c
--reachability-slice --show-goto-functions --cover location
^EXIT=0$
Expand Down
8 changes: 0 additions & 8 deletions regression/cbmc/return3/full-slice.desc

This file was deleted.

2 changes: 1 addition & 1 deletion regression/cbmc/show-vcc/main_prec.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main_prec.c
--show-vcc
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/show-vcc/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--show-vcc
^EXIT=0$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE paths-lifo-expected-failure
CORE paths-lifo-expected-failure full-slice-expected-failure
test.c
--function test --show-vcc
^EXIT=0$
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--show-vcc
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/symex_should_filter_value_sets/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE paths-lifo-expected-failure
CORE paths-lifo-expected-failure full-slice-expected-failure
main.c
--show-vcc
^EXIT=0$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/trace-strings/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--trace
^EXIT=10$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/trace-values/trace-values.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE broken-smt-backend
CORE broken-smt-backend full-slice-expected-failure
trace-values.c
--trace
^EXIT=10$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/trace_address_arithmetic1/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--trace
^EXIT=10$
Expand Down
2 changes: 1 addition & 1 deletion regression/cbmc/trace_show_code/test.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CORE
CORE full-slice-expected-failure
main.c
--trace --trace-show-code
^EXIT=10$
Expand Down

0 comments on commit c1246c7

Please sign in to comment.