Skip to content

Commit b43bbff

Browse files
Tests for CProverString.substring
1 parent 4be7532 commit b43bbff

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// This test uses CProverString so should be compiled with
2+
// javac Test.java ../cprover/CProverString.java
3+
4+
class Test {
5+
public void testSuccess(String s, int start, int end) {
6+
// Filter
7+
if (s == null)
8+
return;
9+
10+
// Act
11+
String sub = org.cprover.CProverString.substring(s, start, end);
12+
13+
// Arrange
14+
StringBuilder reference = new StringBuilder();
15+
if(start < 0)
16+
start = 0;
17+
for (int i = start; i < end && i < s.length(); i++)
18+
reference.append(org.cprover.CProverString.charAt(s, i));
19+
20+
// Assert
21+
assert sub.equals(reference.toString());
22+
}
23+
24+
public void testFail(int i) {
25+
// Arrange
26+
String[] s = new String[5];
27+
28+
// Act
29+
s[0] = org.cprover.CProverString.substring("foo", 0, 1);
30+
s[1] = org.cprover.CProverString.substring("foo", 0, 4);
31+
s[2] = org.cprover.CProverString.substring("foo", -1, 0);
32+
s[3] = org.cprover.CProverString.substring("foo", -10, -1);
33+
s[4] = org.cprover.CProverString.substring("foo", -10, 25);
34+
35+
// Assert
36+
if(i == 0)
37+
assert !s[0].equals("f");
38+
if(i == 1)
39+
assert !s[1].equals("foo");
40+
if(i == 2)
41+
assert !s[2].equals("");
42+
if(i == 3)
43+
assert !s[3].equals("");
44+
if(i == 4)
45+
assert !s[4].equals("foo");
46+
}
47+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
CORE
2+
Test.class
3+
--refine-strings --unwind 10 --string-max-input-length 6 --function Test.testSuccess
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
assertion at file Test.java line 21.*: SUCCESS
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CORE
2+
Test.class
3+
--refine-strings --unwind 10 --string-max-input-length 6 --function Test.testFail
4+
^EXIT=10$
5+
^SIGNAL=0$
6+
assertion at file Test.java line 37 .*: FAILURE
7+
assertion at file Test.java line 39 .*: FAILURE
8+
assertion at file Test.java line 41 .*: FAILURE
9+
assertion at file Test.java line 43 .*: FAILURE
10+
assertion at file Test.java line 45 .*: FAILURE

0 commit comments

Comments
 (0)