Testing LIBRA#
LIBRA’s own CMake logic is tested with BATS (Bash Automated Testing System). The tests verify that compiler flags, build options, and feature toggles work correctly across GCC, Clang, and Intel.
Running the test suite#
Tests run via suite scripts under tests/suites/. Each script sets
the consumption mode and runs all .bats files in parallel:
cd tests
./suites/run_suite_add_subdirectory.sh
./suites/run_suite_conan.sh
./suites/run_suite_cpm.sh
./suites/run_suite_installed_package.sh
Run an individual .bats file directly with an explicit consumption
mode:
LIBRA_CONSUME_MODE=add_subdirectory bats LIBRA_SAN.bats
LIBRA_CONSUME_MODE=add_subdirectory bats LIBRA_COVERAGE.bats
Suite scripts forward bats options:
./suites/run_suite_add_subdirectory.sh --filter "ASAN"
./suites/run_suite_add_subdirectory.sh --jobs 4
Consumption modes#
The test suite verifies LIBRA under all supported integration methods.
LIBRA_CONSUME_MODE is set automatically by the suite scripts but
can be overridden:
add_subdirectory— via CMake’sadd_subdirectory()installed_package— viafind_package()after installationcpm— via CPM.cmakeconan— via a Conan-generated CMake toolchain
Environment variables#
Variable |
Description |
|---|---|
|
Compiler family: |
|
Build type passed to CMake. Default: |
|
CMake log verbosity level. Default: |
|
Integration method. Set automatically by suite scripts. |
Test coverage#
All public LIBRA_* variables are tested, along with dependency
isolation (LIBRA features apply only to the root project, not
children that also use LIBRA). Tests build a minimal project, check
compile/link flags, and run the resulting binary and makefile targets.
Each test invocation gets its own isolated temporary build directory.