Skip to content

Commit 9041b6e

Browse files
author
Joel Allred
committed
Tests for loop-less array init
1 parent 6f851a9 commit 9041b6e

File tree

11 files changed

+177
-0
lines changed

11 files changed

+177
-0
lines changed
Binary file not shown.
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
class NondetArrayPrimitive
2+
{
3+
void intArray(int[] array)
4+
{
5+
if (array != null && array.length > 1500 && array[1500] == 42) {
6+
assert false;
7+
}
8+
}
9+
10+
void floatArray(float[] array)
11+
{
12+
if (array != null && array.length > 1500 && array[1500] == 42.0) {
13+
assert false;
14+
}
15+
}
16+
17+
void charArray(char[] array)
18+
{
19+
if (array != null && array.length > 1500 && array[1500] == 'f') {
20+
assert false;
21+
}
22+
}
23+
24+
void doubleArray(double[] array)
25+
{
26+
if (array != null && array.length > 1500 && array[1500] == 42.0) {
27+
assert false;
28+
}
29+
}
30+
31+
void longArray(long[] array)
32+
{
33+
if (array != null && array.length > 1500 && array[1500] == 42) {
34+
assert false;
35+
}
36+
}
37+
38+
void shortArray(short[] array)
39+
{
40+
if (array != null && array.length > 1500 && array[1500] == 42) {
41+
assert false;
42+
}
43+
}
44+
45+
void byteArray(byte[] array)
46+
{
47+
if (array != null && array.length > 1500 && array[1500] == 42) {
48+
assert false;
49+
}
50+
}
51+
52+
void boolArray(boolean[] array)
53+
{
54+
if (array != null && array.length > 1500 && array[1500] == true) {
55+
assert false;
56+
}
57+
}
58+
59+
void intArrayMulti(int[][] array)
60+
{
61+
if (array != null &&
62+
array.length > 2 &&
63+
array[2].length > 50 &&
64+
array[2][50] == 42) {
65+
assert false;
66+
}
67+
}
68+
69+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.boolArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 55 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.byteArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 48 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.charArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 20 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.doubleArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 27 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.floatArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 13 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.intArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 6 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.intArrayMulti --max-nondet-array-length 51 --unwind 4
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 65 assertion.*: FAILURE
8+
--
9+
^warning: ignoring
10+
--
11+
Check inner most array of multi-dimensional array is reachable independently of
12+
--unwind value.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.longArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 34 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
CORE
2+
NondetArrayPrimitive.class
3+
--function NondetArrayPrimitive.shortArray --max-nondet-array-length 2000 --unwind 1
4+
^VERIFICATION FAILED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
line 41 assertion.*: FAILURE
8+
--
9+
Unwinding loop __CPROVER__start.0 iteration 2
10+
^warning: ignoring
11+
--
12+
Check no unwind needed to reach non-primitive array cell

0 commit comments

Comments
 (0)