commit | d9db43560e537e79f0b19824921af3c351eab9d3 | [log] [tgz] |
---|---|---|
author | David Spickett <spickettdavid@googlemail.com> | Wed Aug 28 11:02:46 2024 +0100 |
committer | GitHub <noreply@github.com> | Wed Aug 28 11:02:46 2024 +0100 |
tree | 84a530f0299680c8db623bcfe70dda73248a42d0 | |
parent | f987c1202562723621e4343e7d912304b058c7e3 [diff] |
Add --build-tool-options to pass options to make/ninja/etc. (#25) https://github.com/llvm/llvm-lnt/commit/768874171529d31d12adb032df57b1c5f1c1fa77 stopped us always using make but in the process removed the "-k" flag. This flag causes make to carry on even when some targets fail. This is very important for running the test suite in CI. Without it, a single build failure marks thousands of subsequent programs as missing, as if they too had failed to compile. If I deliberately break a single source test the results currently are: ``` Total Discovered Tests: 3424 Passed : 378 (11.04%) Executable Missing: 3046 (88.96%) Import succeeded. ``` This is what they should be: ``` Executable Missing Tests (1): test-suite :: SingleSource/UnitTests/2003-04-22-Switch.test Total Discovered Tests: 3424 Passed : 3423 (99.97%) Executable Missing: 1 (0.03%) Import succeeded. ``` cmake --build does not have its own -k option, so we have to pass it after -- to the native tool. Unfortunately ninja's -k takes a number, so ninja -k 0 is equivalent to make -k. Therefore we can't just always add "-- -k" here. Instead I've added a new option --build-tool-options where you can pass any arguments you want. The build bots will use this to pass "-k" to make, as we know for sure they use make. Anything using ninja will also want to pass "-k 0" to get the same effect.
This directory and its subdirectories contain the LLVM nightly test infrastructure. This is technically version “4.0” of the LLVM nightly test architecture.
The infrastructure has the following layout:
$ROOT/lnt - Top-level Python ‘lnt’ module
$ROOT/lnt/server/db - Database schema, utilities, and examples of the LNT plist format.
$ROOT/docs - Sphinx documentation for LNT.
$ROOT/tests - Tests for the infrastructure.
For more information, see the web documentation, or docs/.
Testing is done by running tox from the top-level directory. It runs the tests for Python 3 and checks code style.