-
Notifications
You must be signed in to change notification settings - Fork 274
Enable cbmc-concurrency regression tests by default #4278
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
Enable cbmc-concurrency regression tests by default #4278
Conversation
0f4916b
to
4603c31
Compare
5c38005
to
b581af3
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.
✔️
Passed Diffblue compatibility checks (cbmc commit: b581af3).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/102230249
|
||
ifeq ($(filter-out OSX MSVC,$(BUILD_ENV_)),) | ||
# no POSIX threads on Windows | ||
# for OSX we'd need sound handling of pointers in multi-threaded programs |
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.
? Why is that concern particular to OSX?
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.
I believe the difference is whether pthreadt
is a typedef for a pointer type or not, which varies from platform to platform.
For some reason we had not included these in our standard set of regression tests, and sure enough they got out of sync and one actual regression happened.
Using it->code.set(ID_statement, ...) no longer suffices as it will not set code.id(), which is ID_nil after initialisation. Thus any such instruction is removed during goto-program cleanup. Use the recently added APIs instead, which will ensure proper initialisation.
They all fail with "pointer handling for concurrency is unsound."
b581af3
to
78437a1
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.
✔️
Passed Diffblue compatibility checks (cbmc commit: 78437a1).
Build URL: https://travis-ci.com/diffblue/test-gen/builds/102316841
For some reason we had not included these in our standard set of regression
tests, and sure enough they got out of sync and one actual regression happened.