zts: allow running a single test by name only
Specifying a single test is kind of a hassle, because the full relative path under the test suite dir has to be included, but it's not always clear what that path even is. This change allows `-t` to take the name of a single test instead of a full path. If the value has no `/` characters, we search for a file of that name under the test root, and if found, use that as the full test path instead. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Akash B <akash-b@hpe.com> Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Signed-off-by: Rob Norris <rob.norris@klarasystems.com> Closes #16088
This commit is contained in:
parent
b181b2e604
commit
f22b110f60
|
@ -326,7 +326,8 @@ OPTIONS:
|
||||||
-d DIR Use world-writable DIR for files and loopback devices
|
-d DIR Use world-writable DIR for files and loopback devices
|
||||||
-s SIZE Use vdevs of SIZE (default: 4G)
|
-s SIZE Use vdevs of SIZE (default: 4G)
|
||||||
-r RUNFILES Run tests in RUNFILES (default: ${DEFAULT_RUNFILES})
|
-r RUNFILES Run tests in RUNFILES (default: ${DEFAULT_RUNFILES})
|
||||||
-t PATH Run single test at PATH relative to test suite
|
-t PATH|NAME Run single test at PATH relative to test suite,
|
||||||
|
or search for test by NAME
|
||||||
-T TAGS Comma separated list of tags (default: 'functional')
|
-T TAGS Comma separated list of tags (default: 'functional')
|
||||||
-u USER Run single test as USER (default: root)
|
-u USER Run single test as USER (default: root)
|
||||||
|
|
||||||
|
@ -340,6 +341,9 @@ $0 -r linux-fast
|
||||||
# Run a single test
|
# Run a single test
|
||||||
$0 -t tests/functional/cli_root/zfs_bookmark/zfs_bookmark_cliargs.ksh
|
$0 -t tests/functional/cli_root/zfs_bookmark/zfs_bookmark_cliargs.ksh
|
||||||
|
|
||||||
|
# Run a single test by name
|
||||||
|
$0 -t zfs_bookmark_cliargs
|
||||||
|
|
||||||
# Cleanup a previous run of the test suite prior to testing, run the
|
# Cleanup a previous run of the test suite prior to testing, run the
|
||||||
# default ($(echo "${DEFAULT_RUNFILES}" | sed 's/\.run//')) suite of tests and perform no cleanup on exit.
|
# default ($(echo "${DEFAULT_RUNFILES}" | sed 's/\.run//')) suite of tests and perform no cleanup on exit.
|
||||||
$0 -x
|
$0 -x
|
||||||
|
@ -450,8 +454,15 @@ post_user = root
|
||||||
post =
|
post =
|
||||||
outputdir = /var/tmp/test_results
|
outputdir = /var/tmp/test_results
|
||||||
EOF
|
EOF
|
||||||
SINGLETESTDIR="${SINGLETEST%/*}"
|
if [ "$SINGLETEST" = "${SINGLETEST%/*}" ] ; then
|
||||||
|
NEWSINGLETEST=$(find "$STF_SUITE" -name "$SINGLETEST*" -print -quit)
|
||||||
|
if [ -z "$NEWSINGLETEST" ] ; then
|
||||||
|
fail "couldn't find test matching '$SINGLETEST'"
|
||||||
|
fi
|
||||||
|
SINGLETEST=$NEWSINGLETEST
|
||||||
|
fi
|
||||||
|
|
||||||
|
SINGLETESTDIR="${SINGLETEST%/*}"
|
||||||
SETUPDIR="$SINGLETESTDIR"
|
SETUPDIR="$SINGLETESTDIR"
|
||||||
[ "${SETUPDIR#/}" = "$SETUPDIR" ] && SETUPDIR="$STF_SUITE/$SINGLETESTDIR"
|
[ "${SETUPDIR#/}" = "$SETUPDIR" ] && SETUPDIR="$STF_SUITE/$SINGLETESTDIR"
|
||||||
[ -x "$SETUPDIR/setup.ksh" ] && SETUPSCRIPT="setup" || SETUPSCRIPT=
|
[ -x "$SETUPDIR/setup.ksh" ] && SETUPSCRIPT="setup" || SETUPSCRIPT=
|
||||||
|
|
Loading…
Reference in New Issue