Open
Description
I want to make some semi-brutal changes to how assertions are handled for our regression tests.
- Instead of exclamation marks, I would use "TODO" or "SKIP" annotations. These will be tracked by the script and we can give a positive warning once such a TODO starts working. I want all our test annotations to be about the program, and goblint failures should explicitly marked. (I already made this change in the test script for the witness branch).
- I want to eliminate UNKNOWN for assertions. The main problem with asserting unknown is that we have some tests that now fail if we make the analysis path sensitive. For each path the assertion is either known to be true or known to be false. I want to only allow no annotation = definitely succeeds and "MAY FAIL".
- The goblint assertion code behaves differently for regression tests by not improving the value. Without the debug flag, it does refine the value based on the assertion. This is precisely the sort of thing that can be very painful when trying to understand why regression tests behave differently from running it normally.
This is a fairly easy fix that I plan to make soon after we submit the SV-COMP benches, but I thought I would check if there are any opinions about it.