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.

Signed-off-by: Ricardo B. Marlière <[email protected]>
---
 tools/testing/selftests/run_kselftest.sh | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/tools/testing/selftests/run_kselftest.sh 
b/tools/testing/selftests/run_kselftest.sh
index d4be97498b32..84d45254675c 100755
--- a/tools/testing/selftests/run_kselftest.sh
+++ b/tools/testing/selftests/run_kselftest.sh
@@ -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

---
base-commit: a2f7990d330937a204b86b9cafbfef82f87a8693
change-id: 20251125-selftests-add_skip_opt-0f3fd24d7afa

Best regards,
-- 
Ricardo B. Marlière <[email protected]>


Reply via email to