-
Notifications
You must be signed in to change notification settings - Fork 274
Run CI for install z3 in CI + z3 SMT struct fix [DO NOT REVIEW] #5949
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
Run CI for install z3 in CI + z3 SMT struct fix [DO NOT REVIEW] #5949
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #5949 +/- ##
===========================================
+ Coverage 75.04% 75.14% +0.10%
===========================================
Files 1433 1435 +2
Lines 155817 156303 +486
===========================================
+ Hits 116932 117455 +523
+ Misses 38885 38848 -37
Continue to review full report at Codecov.
|
@thomasspriggs Looks like the z3 version on Windows (from chocolatey) and Ubuntu 18.04 are too old and do not handle datatypes. I think instead of using package manager version, we should be grabbing binaries from https://github.com/Z3Prover/z3/releases/tag/z3-4.8.10. |
The Ubuntu 18 job is just missing z3. I still need to investigate the Windows jobs. |
It could be that they support datatype to some extent, but the version in the Ubuntu 18.04 repo for Z3 is 4.4.1 (tagged 5 years ago) and the version in Chocolatey repo is 4.3.2 (tagged 6 years ago). The latest z3 version is 4.8.10. I think having different solver versions on different platforms is problematic. |
d8e422d
to
e17e8c8
Compare
76672da
to
7b582be
Compare
This was previously missing, which would cause any tests which needed Z3 to fail this job.
Because the `choco` installation of `z3` seems to be broken/outdated. Using `Invoke-WebRequest` instead of `choco` allows us to pin the version installed and to get a version which includes the `z3.exe`, not just `z3.dll`. Using `nuget` was also considered, so that we were still using a package manager. But the up to date `nuget` package was missing the `.exe` file. `wget` is supposed to be aliased to `Invoke-WebRequest` in powershell. However `Invoke-WebRequest` is used rather than `wget` as `wget` does not seem to work for windows github actions jobs.
This was previously missing, which would cause any tests which needed Z3 to fail this job.
For confirmation of version and that installation is successfull. This supports easier debugging for both the github actions `.yaml` and for future test failures. As a bonus we get fast failing CI jobs if the dependency isn't installed properly, because it fails at this step rather than during testing. This z3 version check is done as a separate step because adding to `$env:GITHUB_PATH` doesn't take effect the path until the next step.
7b582be
to
bcf08be
Compare
This confirms that Z3 is present and working in CI, as well as that cbmc's support for Z3 is not entirely broken.
This commit fixes a `key not found` exception in `convert_type` during SMT2 encoding of structs using data types. Although structs were being mapped to SMT2 datatypes (in `datatype_map`) struct_tags were not.
This prevents auto upgrade of z3, in order to keep it inline with the version used on Windows. Note that the version currently being installed on Mac is already 4.8.10.
bcf08be
to
cd88b8f
Compare
The work we wanted from this PR is merged. So the PR itself is no longer needed. |
Run CI for install z3 in CI + z3 SMT struct fix [DO NOT REVIEW]