diff --git a/docs/quickstart.rst b/docs/quickstart.rst index e2488f2a..aae80707 100644 --- a/docs/quickstart.rst +++ b/docs/quickstart.rst @@ -72,6 +72,13 @@ command. The information below should be enough to get you started, but see the The ``SANDBOX`` value is a path to where the test suite build products and results will be stored (inside a timestamped directory, by default). + We recommend adding ``--build-tool-options "-k"`` (if you are using ``make``) + or ``--build-tool-options "-k 0"`` (if you are using ``ninja``). This ensures + that the build tool carries on building even if there is a compilation + failure in one of the tests. Without these options, every test after the + compilation failure will not be compiled and will be reported as a missing + executable. + #. On most systems, the execution time results will be a bit noisy. There are a range of things you can do to reduce noisiness (with LNT runtest test-suite command line options when available between brackets): diff --git a/lnt/tests/test_suite.py b/lnt/tests/test_suite.py index d4e5290a..eb7eeecd 100644 --- a/lnt/tests/test_suite.py +++ b/lnt/tests/test_suite.py @@ -580,7 +580,8 @@ def _build(self, path): '--build', '.', '-t', target, '-j', str(self._build_threads())] + - ([] if self.opts.succinct else ["-v"]), + ([] if self.opts.succinct else ["-v"]) + + ["--"] + shlex.split(self.opts.build_tool_options), cwd=subdir) except subprocess.CalledProcessError: # cmake is expected to exit with code 1 if there was any build @@ -1168,6 +1169,9 @@ def diagnose(self): @click.option("--use-make", "make", metavar="PATH", type=click.UNPROCESSED, help="Path to the build system tool [make/ninja/...]") +@click.option("--build-tool-options", + help="Options to pass to the build system tool", + type=click.UNPROCESSED) @click.option("--use-lit", "lit", metavar="PATH", type=click.UNPROCESSED, default="llvm-lit", help="Path to the LIT test runner [llvm-lit]")