This a workaround. Right now `libz3` gets linked against a static
UBSan runtime which means none of the non-native language bindings
(e.g. python) can load `libz3` due to undefined symbols. We need
to link `libz3` against a shared UBSan runtime to fix this.
and propagate its value into the C API examples.
This flag forces the C API examples to use the C++ compiler as the
linker rather than the C compiler. This a workaround to avoid linking
errors when building with UBSan.
Unit tests execute very slowly in Debug (i.e. unoptimized) builds. This
causes TravisCI to terminate the job due to no console output being
seen.
To workaround this for the debug builds the tests are just compiled
but not executed. To implement this the `RUN_UNIT_TESTS` environment
variable now can take on the values `BUILD_ONLY`, `BUILD_AND_RUN`,
and `SKIP` rather than `0` or `1`.
defaults. The location is dependent on the implementation.
This triggered a build failure on TravisCI because the location
of the default Python binary is different to what is in the Docker
container.
Previously the `test-z3` executable was run without arguments which
appears to run no tests. To fix this the `/a` argument is passed
which will run all tests that don't require arguments.
This was noticed in #1159 when @KarenHuang2016 reported a failing
test.
The Linux builds rely on Docker (using Ubuntu 16.04LTS and Ubuntu
14.04LTS) to build and test Z3 so that builds are easily reproducible.
A build status button has been added to `README.md` so that it is
easy to see the current build status.
More documentation can be found in `contrib/ci/README.md`.
This implementation currently tests 13 different configurations. If
build times become too long we can remove some of them.
Although it would be nice to test macOS builds that requires
significantly more work so I have left this as future work.