Normally the value of kselftest_cmd_args can be read from settings file,
but it will be overridden by KSELFTEST_TEST_KMOD_SH_ARGS which can be
empty if user did not give it a real value.So it should be better to
check if KSELFTEST_TEST_KMOD_SH_ARGS is emty before referring its
value to kselftest_cmd_args.

Signed-off-by: QianhengPeng <[email protected]>
---
 tools/testing/selftests/kselftest/runner.sh | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kselftest/runner.sh 
b/tools/testing/selftests/kselftest/runner.sh
index 311811d..a99147a 100644
--- a/tools/testing/selftests/kselftest/runner.sh
+++ b/tools/testing/selftests/kselftest/runner.sh
@@ -103,6 +103,15 @@ run_one()
                ktap_print_msg "timeout set to $kselftest_timeout" >> "$logfile"
        fi
 
+       # Exported environment variable overrides the settings file
+       eval kselftest_eval_cmd_args="\$${kselftest_cmd_args_ref:-}"
+       if [ -n "$kselftest_eval_cmd_args" ]; then
+               kselftest_cmd_args=$kselftest_eval_cmd_args
+               ktap_print_msg "overriding cmd_args to $kselftest_cmd_args" >> 
"$logfile"
+       elif [ -n "$kselftest_cmd_args" ]; then
+               ktap_print_msg "cmd_args set to $kselftest_cmd_args" >> 
"$logfile"
+       fi
+
        TEST_HDR_MSG="selftests: $DIR: $BASENAME_TEST"
        echo "# $TEST_HDR_MSG"
        if [ ! -e "$TEST" ]; then
@@ -113,7 +122,6 @@ run_one()
                if [ -x /usr/bin/stdbuf ]; then
                        stdbuf="/usr/bin/stdbuf --output=L "
                fi
-               eval kselftest_cmd_args="\$${kselftest_cmd_args_ref:-}"
                if [ -x "$TEST" ]; then
                        cmd="$stdbuf ./$BASENAME_TEST $kselftest_cmd_args"
                elif [ -x "./ksft_runner.sh" ]; then
-- 
1.8.3.1


Reply via email to