Skip to content

Boost testing, add building and testing to the CI #299

@vejbomar

Description

@vejbomar

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.log

CI 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).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions