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 <[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

LGTM.
Reviewed-by: Petr Vorel <[email protected]>

Kind regards,
Petr

Reply via email to