test: allow running only specified subtests/testcases
Useful when debugging, e.g.: make -C test/TEST-74-AUX-UTILS clean setup run TEST_MATCH_SUBTEST=run Resolves: #27914
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
parent
24945c28db
commit
0efa27bd4b
@@ -98,6 +98,13 @@ INTERACTIVE_DEBUG=1
|
|||||||
(e.g. by setting a usable default terminal, suppressing the shutdown after
|
(e.g. by setting a usable default terminal, suppressing the shutdown after
|
||||||
the test, etc.)
|
the test, etc.)
|
||||||
|
|
||||||
|
TEST_MATCH_SUBTEST=subtest
|
||||||
|
If the test makes use of `run_subtests` use this variable to provide
|
||||||
|
a POSIX extended regex to run only subtests matching the expression
|
||||||
|
|
||||||
|
TEST_MATCH_TESTCASE=testcase
|
||||||
|
Same as $TEST_MATCH_SUBTEST but for subtests that make use of `run_testcases`
|
||||||
|
|
||||||
The kernel and initrd can be specified with $KERNEL_BIN and $INITRD. (Fedora's
|
The kernel and initrd can be specified with $KERNEL_BIN and $INITRD. (Fedora's
|
||||||
or Debian's default kernel path and initrd are used by default.)
|
or Debian's default kernel path and initrd are used by default.)
|
||||||
|
|
||||||
|
|||||||
@@ -490,6 +490,8 @@ run_qemu() {
|
|||||||
"systemd.unit=testsuite.target"
|
"systemd.unit=testsuite.target"
|
||||||
"systemd.wants=testsuite-$1.service"
|
"systemd.wants=testsuite-$1.service"
|
||||||
"noresume"
|
"noresume"
|
||||||
|
${TEST_MATCH_SUBTEST:+"systemd.setenv=TEST_MATCH_SUBTEST=$TEST_MATCH_SUBTEST"}
|
||||||
|
${TEST_MATCH_TESTCASE:+"systemd.setenv=TEST_MATCH_TESTCASE=$TEST_MATCH_TESTCASE"}
|
||||||
)
|
)
|
||||||
|
|
||||||
if ! get_bool "$INTERACTIVE_DEBUG"; then
|
if ! get_bool "$INTERACTIVE_DEBUG"; then
|
||||||
@@ -567,6 +569,8 @@ run_nspawn() {
|
|||||||
"$PATH_TO_INIT"
|
"$PATH_TO_INIT"
|
||||||
"systemd.unit=testsuite.target"
|
"systemd.unit=testsuite.target"
|
||||||
"systemd.wants=testsuite-$2.service"
|
"systemd.wants=testsuite-$2.service"
|
||||||
|
${TEST_MATCH_SUBTEST:+"systemd.setenv=TEST_MATCH_SUBTEST=$TEST_MATCH_SUBTEST"}
|
||||||
|
${TEST_MATCH_TESTCASE:+"systemd.setenv=TEST_MATCH_TESTCASE=$TEST_MATCH_TESTCASE"}
|
||||||
)
|
)
|
||||||
|
|
||||||
if ! get_bool "$INTERACTIVE_DEBUG"; then
|
if ! get_bool "$INTERACTIVE_DEBUG"; then
|
||||||
|
|||||||
@@ -118,6 +118,11 @@ run_subtests() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
for subtest in "${subtests[@]}"; do
|
for subtest in "${subtests[@]}"; do
|
||||||
|
if [[ -n "${TEST_MATCH_SUBTEST:-}" ]] && ! [[ "$subtest" =~ $TEST_MATCH_SUBTEST ]]; then
|
||||||
|
echo "Skipping $subtest (not matching '$TEST_MATCH_SUBTEST')"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
: "--- $subtest BEGIN ---"
|
: "--- $subtest BEGIN ---"
|
||||||
"./$subtest" && _PASSED_TESTS+=("$subtest") || _FAILED_TESTS+=("$subtest")
|
"./$subtest" && _PASSED_TESTS+=("$subtest") || _FAILED_TESTS+=("$subtest")
|
||||||
: "--- $subtest END ---"
|
: "--- $subtest END ---"
|
||||||
@@ -139,6 +144,11 @@ run_testcases() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
for testcase in "${testcases[@]}"; do
|
for testcase in "${testcases[@]}"; do
|
||||||
|
if [[ -n "${TEST_MATCH_TESTCASE:-}" ]] && ! [[ "$testcase" =~ $TEST_MATCH_TESTCASE ]]; then
|
||||||
|
echo "Skipping $testcase (not matching '$TEST_MATCH_TESTCASE')"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
: "+++ $testcase BEGIN +++"
|
: "+++ $testcase BEGIN +++"
|
||||||
# Note: the subshell here is used purposefully, otherwise we might
|
# Note: the subshell here is used purposefully, otherwise we might
|
||||||
# unexpectedly inherit a RETURN trap handler from the called
|
# unexpectedly inherit a RETURN trap handler from the called
|
||||||
|
|||||||
Reference in New Issue
Block a user