Skip to content

Commit d423c65

Browse files
committed
Mark tests which fail due to invariant violations
There was an issue in cover.cpp where the begin() of an empty vector was dereferenced. To avoid this case, we add an INVARIANT which checks that the vector has at least one element. However, this causes some of the tests to fail, so these have been marked KNOWNBUG.
1 parent 991d2b7 commit d423c65

File tree

16 files changed

+62
-19
lines changed

16 files changed

+62
-19
lines changed
+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc --unwind 5
44
^EXIT=0$
@@ -7,3 +7,6 @@ main.c
77
--
88
^warning: ignoring
99
^\[.*<builtin-library-
10+
--
11+
Knownbug added because this test triggers an invariant in cover.cpp
12+
See #1622 for details

regression/cbmc-cover/mcdc1/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -12,3 +12,6 @@ main.c
1212
^\*\* .* of .* covered \(100.0%\)$
1313
--
1414
^warning: ignoring
15+
--
16+
Knownbug added because this test triggers an invariant in cover.cpp
17+
See #1622 for details

regression/cbmc-cover/mcdc10/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -10,3 +10,6 @@ main.c
1010
^\*\* .* of .* covered \(100.0%\)$
1111
--
1212
^warning: ignoring
13+
--
14+
Knownbug added because this test triggers an invariant in cover.cpp
15+
See #1622 for details

regression/cbmc-cover/mcdc11/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -12,3 +12,6 @@ main.c
1212
^\*\* .* of .* covered \(100.0%\)$
1313
--
1414
^warning: ignoring
15+
--
16+
Knownbug added because this test triggers an invariant in cover.cpp
17+
See #1622 for details

regression/cbmc-cover/mcdc12/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -15,3 +15,6 @@ main.c
1515
^\*\* .* of .* covered \(100.0%\)$
1616
--
1717
^warning: ignoring
18+
--
19+
Knownbug added because this test triggers an invariant in cover.cpp
20+
See #1622 for details

regression/cbmc-cover/mcdc13/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -10,3 +10,6 @@ main.c
1010
^\*\* .* of .* covered \(100.0%\)$
1111
--
1212
^warning: ignoring
13+
--
14+
Knownbug added because this test triggers an invariant in cover.cpp
15+
See #1622 for details

regression/cbmc-cover/mcdc14/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -8,3 +8,6 @@ main.c
88
^\*\* .* of .* covered \(100.0%\)$
99
--
1010
^warning: ignoring
11+
--
12+
Knownbug added because this test triggers an invariant in cover.cpp
13+
See #1622 for details

regression/cbmc-cover/mcdc2/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -10,3 +10,6 @@ main.c
1010
^\*\* .* of .* covered \(100.0%\)$
1111
--
1212
^warning: ignoring
13+
--
14+
Knownbug added because this test triggers an invariant in cover.cpp
15+
See #1622 for details

regression/cbmc-cover/mcdc3/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -9,3 +9,6 @@ main.c
99
^\*\* .* of .* covered \(100.0%\)$
1010
--
1111
^warning: ignoring
12+
--
13+
Knownbug added because this test triggers an invariant in cover.cpp
14+
See #1622 for details

regression/cbmc-cover/mcdc4/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -11,3 +11,6 @@ main.c
1111
^\*\* .* of .* covered \(100.0%\)$
1212
--
1313
^warning: ignoring
14+
--
15+
Knownbug added because this test triggers an invariant in cover.cpp
16+
See #1622 for details

regression/cbmc-cover/mcdc5/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -11,3 +11,6 @@ main.c
1111
^\*\* .* of .* covered \(100.0%\)$
1212
--
1313
^warning: ignoring
14+
--
15+
Knownbug added because this test triggers an invariant in cover.cpp
16+
See #1622 for details

regression/cbmc-cover/mcdc6/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -8,3 +8,6 @@ main.c
88
^\*\* .* of .* covered \(100.0%\)$
99
--
1010
^warning: ignoring
11+
--
12+
Knownbug added because this test triggers an invariant in cover.cpp
13+
See #1622 for details

regression/cbmc-cover/mcdc7/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -10,3 +10,6 @@ main.c
1010
^\*\* .* of .* covered \(100.0%\)$
1111
--
1212
^warning: ignoring
13+
--
14+
Knownbug added because this test triggers an invariant in cover.cpp
15+
See #1622 for details

regression/cbmc-cover/mcdc8/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -10,3 +10,6 @@ main.c
1010
^\*\* .* of .* covered \(100.0%\)$
1111
--
1212
^warning: ignoring
13+
--
14+
Knownbug added because this test triggers an invariant in cover.cpp
15+
See #1622 for details

regression/cbmc-cover/mcdc9/test.desc

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CORE
1+
KNOWNBUG
22
main.c
33
--cover mcdc
44
^EXIT=0$
@@ -11,3 +11,6 @@ main.c
1111
^\*\* .* of .* covered \(100.0%\)$
1212
--
1313
^warning: ignoring
14+
--
15+
Knownbug added because this test triggers an invariant in cover.cpp
16+
See #1622 for details

src/goto-instrument/cover.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -1553,10 +1553,8 @@ void instrument_cover_goals(
15531553
remove_repetition(controlling);
15541554
// for now, we restrict to the case of a single ''decision'';
15551555
// however, this is not true, e.g., ''? :'' operator.
1556-
if(!decisions.empty())
1557-
{
1558-
minimize_mcdc_controlling(controlling, *decisions.begin());
1559-
}
1556+
INVARIANT(!decisions.empty(), "There must be at least one decision");
1557+
minimize_mcdc_controlling(controlling, *decisions.begin());
15601558

15611559
for(const auto &p : controlling)
15621560
{

0 commit comments

Comments
 (0)