torture: Make kvm.sh arguments accumulate
authorPaul E. McKenney <paulmck@kernel.org>
Sat, 21 Nov 2020 04:09:55 +0000 (20:09 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 4 Jan 2021 22:01:21 +0000 (14:01 -0800)
Given that kvm.sh in invoked from scripts, it is only natural for
different levels of scripting to provide their own Kconfig option values,
for example.  Unfortunately, right now, the last such argument on the
command line wins.

This commit therefore makes the --bootargs, --configs, --kconfigs,
--kmake-args, and --qemu-args argument values accumulate.  For example,
where "--configs TREE01 --configs TREE02" would previously have run only
scenario TREE02, now it will run both scenarios.

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/kvm.sh

index c8356d508252434544b88cf179c9710b8b7e79de..6fd7ef7726a56501ce087d57b3ca3f3e83f8e44a 100755 (executable)
@@ -85,7 +85,7 @@ do
                ;;
        --bootargs|--bootarg)
                checkarg --bootargs "(list of kernel boot arguments)" "$#" "$2" '.*' '^--'
-               TORTURE_BOOTARGS="$2"
+               TORTURE_BOOTARGS="$TORTURE_BOOTARGS $2"
                shift
                ;;
        --bootimage)
@@ -97,8 +97,8 @@ do
                TORTURE_BUILDONLY=1
                ;;
        --configs|--config)
-               checkarg --configs "(list of config files)" "$#" "$2" '^[^/]*$' '^--'
-               configs="$2"
+               checkarg --configs "(list of config files)" "$#" "$2" '^[^/]\+$' '^--'
+               configs="$configs $2"
                shift
                ;;
        --cpus)
@@ -162,7 +162,7 @@ do
                ;;
        --kconfig|--kconfigs)
                checkarg --kconfig "(Kconfig options)" $# "$2" '^CONFIG_[A-Z0-9_]\+=\([ynm]\|[0-9]\+\)\( CONFIG_[A-Z0-9_]\+=\([ynm]\|[0-9]\+\)\)*$' '^error$'
-               TORTURE_KCONFIG_ARG="$2"
+               TORTURE_KCONFIG_ARG="`echo "$TORTURE_KCONFIG_ARG $2" | sed -e 's/^ *//' -e 's/ *$//'`"
                shift
                ;;
        --kasan)
@@ -173,7 +173,7 @@ do
                ;;
        --kmake-arg|--kmake-args)
                checkarg --kmake-arg "(kernel make arguments)" $# "$2" '.*' '^error$'
-               TORTURE_KMAKE_ARG="$2"
+               TORTURE_KMAKE_ARG="`echo "$TORTURE_KMAKE_ARG $2" | sed -e 's/^ *//' -e 's/ *$//'`"
                shift
                ;;
        --mac)
@@ -191,7 +191,7 @@ do
                ;;
        --qemu-args|--qemu-arg)
                checkarg --qemu-args "(qemu arguments)" $# "$2" '^-' '^error'
-               TORTURE_QEMU_ARG="$2"
+               TORTURE_QEMU_ARG="`echo "$TORTURE_QEMU_ARG $2" | sed -e 's/^ *//' -e 's/ *$//'`"
                shift
                ;;
        --qemu-cmd)