[PATCH] selftests: runner.sh: avoid overriding kselftest_cmd_args with empty variable

QianhengPeng posted 1 patch 1 week, 4 days ago
tools/testing/selftests/kselftest/runner.sh | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
[PATCH] selftests: runner.sh: avoid overriding kselftest_cmd_args with empty variable
Posted by QianhengPeng 1 week, 4 days ago
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 <pengqh1@chinatelecom.cn>
---
 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