-
Notifications
You must be signed in to change notification settings - Fork 11
Description
In the past few months we were using test suite of Boost library to find deficiencies of our C++ toolchain. All the experiments were run locally and a few deficiencies were found and fixed. For the future work it will be beneficial to have Boost testing in CI where we can just run it conveniently.
Local Boost testing
Scripts used for local testing are in boost-build-local-b2 branch in .github/scripts/boost. They are meant to be used from WSL or with minor changes from MSYS2 shell.
Usage:
# This will clone Boost and run the full test suite (~6 hours and 300GB disc space needed)
~$ ./mingw-woarm64-build/.github/scripts/boost/build_and_test_boost.sh BOOST_TESTING_FOLDER
# Get summary of errors, group them by module and log message
~$ python mingw-woarm64-build/.github/scripts/boost/group_test_failures.py --log_file BOOST_TESTING_FOLDER/boost-test-full-static.logCI Boost testing
Some progress was made in #199. Boost is nativelly build with b2 build system but also supports cmake. Currently, in #199 I used cmake to build tests on x64 linux machine and move build executables to arm64 Windows machine for executing tests (we do this e.g. for ffmpeg).
One of motivations for using cmake was also that b2 cannot build test executables with one command and then run them with separate command. However, functionality of Boost's cmake definitions aren't in full parity with b2. cmake defines only ~2500 tests while b2 defines ~13000 tests (e.g. accumulators module doesn't contain cmake definitions of tests) So we'll have to use b2 instead and building and running of tests will have to be done on the same machine.
Imo the simplest how to use b2 for testing is (similarly to local testing) to use Windows arm64 machine where we build and run Boost tests in WSL. Caveat is that GitHub win arm64 VMs don't support WSL, we'll need to either use self-hosted lab arm64 machine or local device like Volterra.
Note also that a bit more than 300GB of disc space has to be available for building full test suite with static linking (static linking is used to workaround #258).