[PATCH] selftests/run_kselftest.sh: Add `--skip` argument option

Ricardo B. Marlière posted 1 patch 6 days, 11 hours ago
tools/testing/selftests/run_kselftest.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
[PATCH] selftests/run_kselftest.sh: Add `--skip` argument option
Posted by Ricardo B. Marlière 6 days, 11 hours ago
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 <rbm@suse.com>
---
 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 <rbm@suse.com>

Re: [PATCH] selftests/run_kselftest.sh: Add `--skip` argument option
Posted by Petr Vorel 6 days, 9 hours ago
Hi Ricardo, all,

> 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 <rbm@suse.com>
> ---
>  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

LGTM.
Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr