exit 1
 fi
 
+TR_CMD=$(command -v tr)
+
 # If Perl is unavailable, we must fall back to line-at-a-time prefixing
 # with sed instead of unbuffered output.
 tap_prefix()
 
        # Reset any "settings"-file variables.
        export kselftest_timeout="$kselftest_default_timeout"
+
+       # Safe default if tr not available
+       kselftest_cmd_args_ref="KSELFTEST_ARGS"
+
+       # Optional arguments for this command, possibly defined as an
+       # environment variable built using the test executable in all
+       # uppercase and sanitized substituting non acceptable shell
+       # variable name characters with "_" as in:
+       #
+       #       KSELFTEST_<UPPERCASE_SANITIZED_TESTNAME>_ARGS="<options>"
+       #
+       # e.g.
+       #
+       #       rtctest --> KSELFTEST_RTCTEST_ARGS="/dev/rtc1"
+       #
+       #       cpu-on-off-test.sh --> KSELFTEST_CPU_ON_OFF_TEST_SH_ARGS="-a -p 10"
+       #
+       if [ -n "$TR_CMD" ]; then
+               BASENAME_SANITIZED=$(echo "$BASENAME_TEST" | \
+                                       $TR_CMD -d "[:blank:][:cntrl:]" | \
+                                       $TR_CMD -c "[:alnum:]_" "_" | \
+                                       $TR_CMD [:lower:] [:upper:])
+               kselftest_cmd_args_ref="KSELFTEST_${BASENAME_SANITIZED}_ARGS"
+       fi
+
        # Load per-test-directory kselftest "settings" file.
        settings="$BASE_DIR/$DIR/settings"
        if [ -r "$settings" ] ; then
                echo "# Warning: file $TEST is missing!"
                echo "not ok $test_num $TEST_HDR_MSG"
        else
-               cmd="./$BASENAME_TEST"
+               eval kselftest_cmd_args="\$${kselftest_cmd_args_ref:-}"
+               cmd="./$BASENAME_TEST $kselftest_cmd_args"
                if [ ! -x "$TEST" ]; then
                        echo "# Warning: file $TEST is not executable"