Skip to content

Commit 942685c

Browse files
authored
Merge pull request #6300 from jezhiggins/vsd-assertions-intervals-and-value-sets
VSD - Regression tests to capture behaviour of assertions
2 parents 3549a29 + e1bff61 commit 942685c

File tree

24 files changed

+346
-0
lines changed

24 files changed

+346
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
int main(void)
3+
{
4+
int x = 1;
5+
int y = 3;
6+
int nondet;
7+
8+
if(nondet)
9+
y = 5;
10+
if(nondet)
11+
x = 2;
12+
13+
__CPROVER_assert(x < y, "x < y");
14+
__CPROVER_assert(x <= y, "x <= y");
15+
__CPROVER_assert(y > x, "y > x");
16+
__CPROVER_assert(y >= x, "y >= x");
17+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x < y: UNKNOWN
7+
\[main.assertion.2\] line 14 x <= y: UNKNOWN
8+
\[main.assertion.3\] line 15 y > x: UNKNOWN
9+
\[main.assertion.4\] line 16 y >= x: UNKNOWN
10+
--
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values intervals --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x < y: SUCCESS
7+
\[main.assertion.2\] line 14 x <= y: SUCCESS
8+
\[main.assertion.3\] line 15 y > x: SUCCESS
9+
\[main.assertion.4\] line 16 y >= x: SUCCESS
10+
--
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values set-of-constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x < y: SUCCESS
7+
\[main.assertion.2\] line 14 x <= y: SUCCESS
8+
\[main.assertion.3\] line 15 y > x: SUCCESS
9+
\[main.assertion.4\] line 16 y >= x: SUCCESS
10+
--
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
int main(void)
3+
{
4+
int x = 1;
5+
int y = 3;
6+
int nondet;
7+
8+
if(nondet)
9+
y = 1;
10+
if(nondet)
11+
x = 3;
12+
13+
__CPROVER_assert(x == y, "x == y");
14+
__CPROVER_assert(y == x, "y == x");
15+
__CPROVER_assert(!(x == y), "!(x == y)");
16+
__CPROVER_assert(!(y == x), "!(y == x)");
17+
__CPROVER_assert(x != y, "x != y");
18+
__CPROVER_assert(y != x, "y != x");
19+
__CPROVER_assert(!(x != y), "!(x != y)");
20+
__CPROVER_assert(!(y != x), "!(y != x)");
21+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x == y: UNKNOWN
7+
\[main.assertion.2\] line 14 y == x: UNKNOWN
8+
\[main.assertion.3\] line 15 !\(x == y\): UNKNOWN
9+
\[main.assertion.4\] line 16 !\(y == x\): UNKNOWN
10+
\[main.assertion.5\] line 17 x != y: UNKNOWN
11+
\[main.assertion.6\] line 18 y != x: UNKNOWN
12+
\[main.assertion.7\] line 19 !\(x != y\): UNKNOWN
13+
\[main.assertion.8\] line 20 !\(y != x\): UNKNOWN
14+
--
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values intervals --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x == y: SUCCESS
7+
\[main.assertion.2\] line 14 y == x: SUCCESS
8+
\[main.assertion.3\] line 15 !\(x == y\): FAILURE
9+
\[main.assertion.4\] line 16 !\(y == x\): FAILURE
10+
\[main.assertion.5\] line 17 x != y: FAILURE
11+
\[main.assertion.6\] line 18 y != x: FAILURE
12+
\[main.assertion.7\] line 19 !\(x != y\): SUCCESS
13+
\[main.assertion.8\] line 20 !\(y != x\): SUCCESS
14+
--
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values set-of-constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x == y: UNKNOWN
7+
\[main.assertion.2\] line 14 y == x: UNKNOWN
8+
\[main.assertion.3\] line 15 !\(x == y\): UNKNOWN
9+
\[main.assertion.4\] line 16 !\(y == x\): UNKNOWN
10+
\[main.assertion.5\] line 17 x != y: UNKNOWN
11+
\[main.assertion.6\] line 18 y != x: UNKNOWN
12+
\[main.assertion.7\] line 19 !\(x != y\): UNKNOWN
13+
\[main.assertion.8\] line 20 !\(y != x\): UNKNOWN
14+
--
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
2+
int main(void)
3+
{
4+
int x = 1;
5+
int y = 3;
6+
int nondet;
7+
8+
if(nondet)
9+
y = 1;
10+
if(nondet)
11+
x = 5;
12+
13+
__CPROVER_assert(x != y, "x != y");
14+
__CPROVER_assert(y != x, "y != x");
15+
__CPROVER_assert(!(x != y), "!(x != y)");
16+
__CPROVER_assert(!(y != x), "!(y != x)");
17+
__CPROVER_assert(x == y, "x == y");
18+
__CPROVER_assert(y == x, "y == x");
19+
__CPROVER_assert(!(x == y), "!(x == y)");
20+
__CPROVER_assert(!(y == x), "!(y == x)");
21+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
CORE
2+
main.c
3+
--variable-sensitivity --vsd-values constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
\[main.assertion.1\] line 13 x != y: UNKNOWN
7+
\[main.assertion.2\] line 14 y != x: UNKNOWN
8+
\[main.assertion.3\] line 15 !\(x != y\): UNKNOWN
9+
\[main.assertion.4\] line 16 !\(y != x\): UNKNOWN
10+
\[main.assertion.5\] line 17 x == y: UNKNOWN
11+
\[main.assertion.6\] line 18 y == x: UNKNOWN
12+
\[main.assertion.7\] line 19 !\(x == y\): UNKNOWN
13+
\[main.assertion.8\] line 20 !\(y == x\): UNKNOWN
14+
--

0 commit comments

Comments
 (0)