Skip to content

Commit 64c8bdf

Browse files
Merge pull request #822 from allredj/test-gen-string-fix-170
Fixes in pre-processing for issue #170
2 parents 30b5c72 + 7cf1c92 commit 64c8bdf

File tree

42 files changed

+60
-59
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+60
-59
lines changed

regression/strings-smoke-tests/java_append_char/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_append_char.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_append_int/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_append_int.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_append_object/test.desc

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ test_append_object.class
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
77
--
8+
Issue: diffblue/test-gen#82

regression/strings-smoke-tests/java_append_string/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_append_string.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_case/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_case.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_char_array/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_char_array.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_char_array_init/test.desc

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ test_init.class
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
77
--
8+
cbmc/test-gen#259

regression/strings-smoke-tests/java_char_at/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_char_at.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_code_point/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_code_point.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_compare/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_compare.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_concat/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_concat.class
33
--refine-strings
44
^EXIT=10$
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
FUTURE
1+
KNOWNBUG
22
test_contains.class
33
--refine-strings
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[.*assertion.1\].* line 8.* SUCCESS$
77
^\[.*assertion.2\].* line 9.* FAILURE$
88
--
9+
Issue: diffblue/test-gen#201

regression/strings-smoke-tests/java_delete/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_delete.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_delete_char_at/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_delete_char_at.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_empty/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_empty.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_endswith/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_endswith.class
33
--refine-strings
44
^EXIT=10$

regression/strings-smoke-tests/java_equal/test.desc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FUTURE
1+
CORE
22
test_equal.class
3-
--refine-strings
3+
--refine-strings --string-max-length 100 --string-max-length 100
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[.*assertion.1\].* line 8.* FAILURE$

regression/strings-smoke-tests/java_float/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_float.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_hash_code/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_hash_code.class
33
--refine-strings
44
^EXIT=10$
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
FUTURE
1+
KNOWNBUG
22
test_index_of.class
33
--refine-strings
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
77
--
8+
Issue: cbmc/test-gen#77
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
FUTURE
1+
CORE
22
test_index_of_char.class
33
--refine-strings
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
77
--
8+
Issue: cbmc/test-gen#77

regression/strings-smoke-tests/java_insert_char/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_insert_char.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_insert_char_array/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_insert_char_array.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_insert_int/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_insert_int.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_insert_multiple/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_insert_multiple.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_insert_string/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_insert_string.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_int_to_string/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_int.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_intern/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_intern.class
33
--refine-strings
44
^EXIT=0$
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
FUTURE
1+
KNOWNBUG
22
test_last_index_of.class
33
--refine-strings
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
77
--
8+
Issue: diffblue/test-gen#77

regression/strings-smoke-tests/java_last_index_of_char/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_last_index_of_char.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_length/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_length.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_parseint/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_parseint.class
33
--refine-strings
44
^EXIT=10$
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
FUTURE
22
test_replace.class
3-
--refine-strings
3+
--refine-strings --string-max-length 100
44
^EXIT=0$
55
^SIGNAL=0$
66
^VERIFICATION SUCCESSFUL$
77
--
8+
diffblue/test-gen#256

regression/strings-smoke-tests/java_replace_char/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_replace_char.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_set_char_at/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_set_char_at.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_set_length/test.desc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FUTURE
1+
CORE
22
test_set_length.class
3-
--refine-strings
3+
--refine-strings --string-max-length 100
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[.*assertion.1\].* line 8.* SUCCESS$

regression/strings-smoke-tests/java_starts_with/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_starts_with.class
33
--refine-strings
44
^EXIT=10$

regression/strings-smoke-tests/java_string_builder_length/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_sb_length.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_subsequence/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_subsequence.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_substring/test.desc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FUTURE
1+
CORE
22
test_substring.class
33
--refine-strings
44
^EXIT=0$

regression/strings-smoke-tests/java_trim/test.desc

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
FUTURE
1+
CORE
22
test_trim.class
3-
--refine-strings
3+
--refine-strings --string-max-length 100
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[.*assertion.1\].* line 6.* SUCCESS$

src/goto-programs/string_refine_preprocess.cpp

+11-17
Original file line numberDiff line numberDiff line change
@@ -648,19 +648,15 @@ void string_refine_preprocesst::make_string_function(
648648
{
649649
if(signature.back()=='S')
650650
{
651-
code_typet ft=function_type;
652-
ft.return_type()=jls_ptr;
653-
typecast_exprt lhs2(lhs, jls_ptr);
654-
655651
make_string_assign(
656652
goto_program,
657653
target,
658-
lhs2,
659-
ft,
654+
lhs,
655+
function_type,
660656
function_name,
661657
arguments,
662658
location,
663-
signature);
659+
signature);
664660
}
665661
else
666662
make_normal_assign(
@@ -746,6 +742,7 @@ void string_refine_preprocesst::make_string_function(
746742

747743
std::string new_sig=signature;
748744
exprt lhs;
745+
749746
if(assign_first_arg)
750747
{
751748
assert(!function_call.arguments().empty());
@@ -759,9 +756,6 @@ void string_refine_preprocesst::make_string_function(
759756
else
760757
lhs=function_call.lhs();
761758

762-
if(lhs.id()==ID_typecast)
763-
lhs=to_typecast_expr(lhs).op();
764-
765759
new_type.return_type()=lhs.type();
766760

767761
make_string_function(
@@ -1400,19 +1394,19 @@ void string_refine_preprocesst::initialize_string_function_table()
14001394
signatures["java::java.lang.String.contains:(Ljava/lang/CharSequence;)Z"]=
14011395
"SSZ";
14021396
signatures["java::java.lang.StringBuilder.insert:(IZ)"
1403-
"Ljava/lang/StringBuilder;"]="SIZS";
1397+
"Ljava/lang/StringBuilder;"]="SIZ_";
14041398
signatures["java::java.lang.StringBuilder.insert:(IJ)"
1405-
"Ljava/lang/StringBuilder;"]="SIJS";
1399+
"Ljava/lang/StringBuilder;"]="SIJ_";
14061400
signatures["java::java.lang.StringBuilder.insert:(II)"
1407-
"Ljava/lang/StringBuilder;"]="SIIS";
1401+
"Ljava/lang/StringBuilder;"]="SII_";
14081402
signatures["java::java.lang.StringBuilder.insert:(IC)"
1409-
"Ljava/lang/StringBuilder;"]="SICS";
1403+
"Ljava/lang/StringBuilder;"]="SIC_";
14101404
signatures["java::java.lang.StringBuilder.insert:(ILjava/lang/String;)"
1411-
"Ljava/lang/StringBuilder;"]="SISS";
1405+
"Ljava/lang/StringBuilder;"]="SIS_";
14121406
signatures["java::java.lang.StringBuilder.insert:(ILjava/lang/String;)"
1413-
"Ljava/lang/StringBuilder;"]="SISS";
1407+
"Ljava/lang/StringBuilder;"]="SIS_";
14141408
signatures["java::java.lang.StringBuilder.insert:(I[C)"
1415-
"Ljava/lang/StringBuilder;"]="SI[S";
1409+
"Ljava/lang/StringBuilder;"]="SI[_";
14161410
signatures["java::java.lang.String.intern:()Ljava/lang/String;"]="SV";
14171411
}
14181412

0 commit comments

Comments
 (0)