From ab01045bcdb6ec7555fe0364d75139fcfa361991 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sun, 1 May 2022 13:09:02 -0400 Subject: [PATCH] qtest: don't run coverage when TESTS is given --- manual/installation.rst | 12 +++++++++++- run-qtest | 12 ++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/manual/installation.rst b/manual/installation.rst index 64aa7921..7c416cb5 100644 --- a/manual/installation.rst +++ b/manual/installation.rst @@ -144,7 +144,17 @@ Run ``ctest`` to run the test suite. Since the real tests are implemented with `qtest `__, you will want to pass ``--verbose`` to ``cmake`` so you can see the individual test outputs. Otherwise, you will see a small number of ``ctest`` -commands that take a very long to run. +commands that take a very long to run. If you want to run only a +specific test file in a specific test suite, you can set the ``TESTS`` +environment variable (used by ``qtest-driver``) and pass the ``-R`` +parameter to ``ctest``. For example: + +:: + + TESTS=qutil ctest --verbose -R libtests + +would run only ``qutil.test`` from the ``libtests`` test suite. + .. _installation: diff --git a/run-qtest b/run-qtest index 73b0f485..1160589d 100755 --- a/run-qtest +++ b/run-qtest @@ -58,8 +58,16 @@ while (@ARGV) { # On Windows, a literal glob in quotes is expanded by the # shell, so we have to handle globs when expanded by the - # shell. - push(@tc, shift(@ARGV)); + # shell by consuming arguments until the next --. + + my $t = shift(@ARGV); + if (exists $ENV{'TESTS'}) + { + # No point enabling coverage if we're intentionally + # running only a subset of tests. + next; + } + push(@tc, $t); } } elsif ($arg eq '--env')