-
Notifications
You must be signed in to change notification settings - Fork 277
Remove preprocessing of CProverString.insert for non-String arguments #5035
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove preprocessing of CProverString.insert for non-String arguments #5035
Conversation
17418d5
to
408af57
Compare
1d5dedc
to
8c302fa
Compare
bc2e893
to
0d71098
Compare
Codecov Report
@@ Coverage Diff @@
## develop #5035 +/- ##
===========================================
+ Coverage 69.53% 69.54% +0.01%
===========================================
Files 1314 1314
Lines 108988 108921 -67
===========================================
- Hits 75786 75751 -35
+ Misses 33202 33170 -32
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✔️
Passed Diffblue compatibility checks (cbmc commit: 0d71098).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/123717057
0d71098
to
3152f67
Compare
Use it instead of CProverString.insert because we want to get rid of this builtin solver function and use a model of StringBuilder.insert instead.
Only the CProverString.insert(int, String) is requiered. The others can be implemented in Java using calls to that one and String.valueOf.
These can no longer be produced by the java preprocessing, we can thus drop the functions that where handling it.
No preprocessing of Java methods produce a call to cprover_string_insert with 7 arguments so this case should be unused.
3152f67
to
ea21cca
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR failed Diffblue compatibility checks (cbmc commit: ea21cca).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/123947553
Status will be re-evaluated on next push.
Common spurious failures include: the cbmc commit has disappeared in the mean time (e.g. in a force-push); the author is not in the list of contributors (e.g. first-time contributors); compatibility was already broken by an earlier merge.
Replace CProverString.insert functions by models diffblue/java-models-library#26
the corresponding test-gen pull request passed CI https://github.com/diffblue/test-gen/pull/3806 |
ea21cca
to
2402773
Compare
java-models-library update now pointing to master |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
✔️
Passed Diffblue compatibility checks (cbmc commit: 2402773).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/124071536
We replace the preprocessing of CProverString.insert for characters, booleans etc. and provide models that use String.valueOf and the String version of CProverString.insert instead.
This is too reduce the number of builtin functions the solver has too handle, making it simpler and easier too debug and test, and less likely to have bugs, without reducing its expressive power: we can still get the same behavior as before by combining two function calls.