aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-05-01 19:09:02 +0200
committerJay Berkenbilt <ejb@ql.org>2022-05-01 19:25:51 +0200
commitab01045bcdb6ec7555fe0364d75139fcfa361991 (patch)
tree5a94d1ca07bf444d8f16fa7ec4b54d818ae563a0
parent72e5c734193a3fbc100459e4c84afaeb84cd76e7 (diff)
downloadqpdf-ab01045bcdb6ec7555fe0364d75139fcfa361991.tar.zst
qtest: don't run coverage when TESTS is given
-rw-r--r--manual/installation.rst12
-rwxr-xr-xrun-qtest12
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 <https://qtest.sourceforge.io/>`__, 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')