Skip to content

Commit f95c2d7

Browse files
Tests for CProverString.append with start/end args
This test the CProverString.append function when start_index and end_index arguments are proivided.
1 parent aa92f7c commit f95c2d7

File tree

4 files changed

+56
-0
lines changed

4 files changed

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

0 commit comments

Comments
 (0)