linx-model uses lightweight executable tests through CTest.
- Unit tests in
tests/unit/ - System tests in
tests/system/ - Contract and validation checks in
tests/checks/
Configure and run the default test suite:
cmake -S . -B build -G Ninja
cmake --build build
ctest --test-dir build --output-on-failureRun individual labels:
ctest --test-dir build --output-on-failure -L unit
ctest --test-dir build --output-on-failure -L system
ctest --test-dir build --output-on-failure -L checksThe sanitizer configuration enables AddressSanitizer, LeakSanitizer, and UndefinedBehaviorSanitizer in one build.
cmake -S . -B build-sanitize -G Ninja -DLINX_MODEL_ENABLE_SANITIZERS=ON
cmake --build build-sanitize
ctest --test-dir build-sanitize --output-on-failureThis is the supported leak-detection path. There is no separate valgrind flow.
The checks target exercises:
- missing
input/outputdeclarations on leaf modules - missing signal names or descriptions
- queue-role conflicts
- top-level objects that are not declared as SimQueue-based
These checks run through ValidateModel() and are wired into CI.
The test suite also covers:
- raw binary loading plus ISA disassembly
- ELF
PT_LOADparsing intoProgramImage - CLI
--binand--disasm-onlybehavior