]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/run_kselftest.sh: Add `--skip` argument option
authorRicardo B. Marlière <rbm@suse.com>
Fri, 16 Jan 2026 14:20:54 +0000 (11:20 -0300)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 16 Jan 2026 20:46:40 +0000 (13:46 -0700)
Currently the only way of excluding certain tests from a collection is by
passing all the other tests explicitly via `--test`. Therefore, if the user
wants to skip a single test the resulting command line might be too big,
depending on the collection. Add an option `--skip` that takes care of
that.

Link: https://lore.kernel.org/r/20260116-selftests-add_skip_opt-v1-1-ab54afaae81b@suse.com
Signed-off-by: Ricardo B. Marlière <rbm@suse.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/run_kselftest.sh

index d4be97498b32e975c63a1167d3060bdeba674c8c..84d45254675ca3820e8509b8d77ae267450bb492 100755 (executable)
@@ -30,6 +30,7 @@ Usage: $0 [OPTIONS]
   -s | --summary               Print summary with detailed log in output.log (conflict with -p)
   -p | --per-test-log          Print test log in /tmp with each test name (conflict with -s)
   -t | --test COLLECTION:TEST  Run TEST from COLLECTION
+  -S | --skip COLLECTION:TEST  Skip TEST from COLLECTION
   -c | --collection COLLECTION Run all tests from COLLECTION
   -l | --list                  List the available collection:test entries
   -d | --dry-run               Don't actually run any tests
@@ -43,6 +44,7 @@ EOF
 
 COLLECTIONS=""
 TESTS=""
+SKIP=""
 dryrun=""
 kselftest_override_timeout=""
 ERROR_ON_FAIL=true
@@ -58,6 +60,9 @@ while true; do
                -t | --test)
                        TESTS="$TESTS $2"
                        shift 2 ;;
+               -S | --skip)
+                       SKIP="$SKIP $2"
+                       shift 2 ;;
                -c | --collection)
                        COLLECTIONS="$COLLECTIONS $2"
                        shift 2 ;;
@@ -109,6 +114,12 @@ if [ -n "$TESTS" ]; then
        done
        available="$(echo "$valid" | sed -e 's/ /\n/g')"
 fi
+# Remove tests to be skipped from available list
+if [ -n "$SKIP" ]; then
+       for skipped in $SKIP ; do
+               available="$(echo "$available" | grep -v "^${skipped}$")"
+       done
+fi
 
 kselftest_failures_file="$(mktemp --tmpdir kselftest-failures-XXXXXX)"
 export kselftest_failures_file