Skip to content

Commit

Permalink
Test for CProverString.insert
Browse files Browse the repository at this point in the history
This function behaves slightly differently from StringBuilder.insert
since it never raise an exception.
This tests the cases where the index exceeds the limits.
  • Loading branch information
romainbrenguier committed Mar 21, 2018
1 parent 5f96226 commit 4be7532
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
Binary file not shown.
48 changes: 48 additions & 0 deletions regression/jbmc-strings/StringBuilderInsert/Test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@

public class Test {
public void check (int i) {
if(i == 0)
{
// Arrange
StringBuilder s = new StringBuilder("bar");

// Act
s = org.cprover.CProverString.insert(s, 0, "foo");

// Should succeed
assert s.toString().equals("foobar");

// Should fail
assert !s.toString().equals("foobar");
}
if(i == 1)
{
// Arrange
StringBuilder s = new StringBuilder("bar");

// Act
s = org.cprover.CProverString.insert(s, -10, "foo");

// Should succeed
assert s.toString().equals("foobar");

// Should fail
assert !s.toString().equals("foobar");
}
if(i == 2)
{
// Arrange
StringBuilder s = new StringBuilder("bar");

// Act
s = org.cprover.CProverString.insert(s, 10, "foo");

// Should succeed
assert s.toString().equals("barfoo");

// Should fail
assert !s.toString().equals("barfoo");
}

}
}
12 changes: 12 additions & 0 deletions regression/jbmc-strings/StringBuilderInsert/test.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CORE
Test.class
--refine-strings --function Test.check
^EXIT=10$
^SIGNAL=0$
assertion at file Test.java line 13 .*: SUCCESS
assertion at file Test.java line 16 .*: FAILURE
assertion at file Test.java line 27 .*: SUCCESS
assertion at file Test.java line 30 .*: FAILURE
assertion at file Test.java line 41 .*: SUCCESS
assertion at file Test.java line 44 .*: FAILURE
--

0 comments on commit 4be7532

Please sign in to comment.