We were not regularly exercising this code outside unit tests, leading to
regressions on several tests. On my system, running this additional test takes
42 seconds, which is still better than users running into issues. (ctest -V -L
CORE -j8 takes an extra 10 seconds.)
Fixes: #3956
This build will compile with CMAKE_USE_CUDD to check that compilation
with CUDD works correctly.
From testing it on travis, it seems this makes the build about 1 minute
longer.
We do have files that are imported as a whole, and clang-formatting them is
a distraction. The requirement to add // clang-format-off to external files
makes imports via scripts more difficult.
This tweaks the build script to exclude files given in .clang-format-ignore
from git-clang-format. The same naming convention is used by other
projects.
Move the section in .travis.yml responsible for getting the latest
version of doxygen to a separate script, in order to make it easier
for Ubuntu users to install it locally.
Remove the old `travis_doxygen.sh` script and associated part of
`run_diff.sh`, and change `.travis.yml` to use the new `run_doxygen.sh`
instead. The new script should report new problems (and not report
already existing problems) more reliably than the old script which
relied on the line numbers reported by Doxygen.
Instead of requesting contributors to tick "my contribution is formatted ..."
just make CI fail if it isn't properly formatted. When there are good reasons to
ignore the formatting recommendations use // clang-format {off,on} and // NOLINT
with clang-format and the linter, respectively.
clang-format-6.0 requires a libstc++6 version newer than what Ubuntu 14.04 ships
by default; such a version is available from the ubuntu-toolchain-r-test PPA.
Also fix the version information output to actually call the binary that is used
when calling git-clang-format-6.0.
As we are moving to clang-6.0 in other parts of the Travis configuration we
might as well use clang-format-6.0 in line with this. Also clean up the script
that used to ack around paths by just specifying the binary to use on the
command-line.
Version 217.0.0-0 of the google-cloud-sdk package uses XZ compression,
which is not supported by the version of dpkg available on Ubuntu
Trusty. This change fixes the package to the prior version, which should
remain in place until https://issuetracker.google.com/issues/116076881
has been fixed.
The Travis log included the following lines:
W: GPG error: http://packages.cloud.google.com/apt cloud-sdk-trusty InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6A030B21BA07F4FB
W: The repository 'http://packages.cloud.google.com/apt cloud-sdk-trusty InRelease' is not signed.
W: There is no public key available for the following key IDs:
6A030B21BA07F4FB
W: http://ppa.launchpad.net/couchdb/stable/ubuntu/dists/trusty/Release.gpg: Signature by key 15866BAFD9BCC4F3C1E0DFC7D69548E1C17EAB57 uses weak digest algorithm (SHA1)
travis_fold🔚apt-get.diagnostics
[0K
[31;1mThe command "sudo -E apt-get -yq --no-install-suggests --no-install-recommends $TRAVIS_APT_OPTS install cmake google-cloud-sdk graphviz" failed and exited with 100 during .[0m
Travis have removed llvm-toolchain-precise-3.7 from their whitelist
of sources for the "apt:" option, so we have to use a sudo build and
add it as a source ourselves.
This is not portable as some architectures might not provide header
files for non-native bit widths. Preprocessing/the use of header files
is not essential for any of these regression tests.
Also use the build compiler, not the system default, for tests. This was already done
with gcc (by placing a symlink named 'gcc' pointing to gcc-5 in a directory ahead of /usr/bin
in the path), but g++ tests were using the image default compiler -- g++-4.8 for Ubuntu Trusty.
This commit adds a dependency to the java-models-library
(https://github.com/diffblue/java-models-library). This repository
contains models for number of classes derived from the java standard
library. These models are needed to support concurrency.
This means that the process of building JBMC has changed slightly as
one first needs to download the java-models-library. I.E:
make -C jbmc/src java-models-library-download
make -C jbmc/src
Due possible licensing issues, the ability to automatically embed the
java core models into JBMC has been removed. Instead, one must
explicitly use the '--classpath' option to load the models.
Consequently, the '--no-core-models' option and related code was
removed as it is no longer relevant.
Commit also adds a new make target, 'make dist'. This target in
addition to building jbmc will create a 'dist' directory with two
sub-folders, bin and lib. Executables will be copied to the former,
while 'core-models.jar' will copied to the latter.
Note: src/org/cprover/CProver.java has also been removed as this has
been superseded by the CProver.java in the java-models-library.
Triggers compatibility checks for the current PR.
The plan is to then give feedback on the PR as to whether it is
compatible with Diffblue products, but this part is not yet merged.
Function will be moved to the Diffblue cloud (instead of joelallred)
once the framework is finalised.
On OS X (and possibly elsewhere, but this isn't verified)
run_second_cpp/CCACHE_CPP2 is the default, and setting it to "yes" is thus
redundant. Overriding the CXX flags seems unnecessary as it had not be done in
the g++ variant of the build that was just removed.