getopts reports unknown options and missing option arguments, but
run_vmtests.sh ignores its error result and continues running tests.
For example, passing -z or omitting the argument to -t can run the
default test selection instead of rejecting the command.

Exit with failure when getopts reports an error, before any tests or
their setup run. Keep the diagnostic provided by getopts.

Verified that -z, -t and -t mmap -z exit with status 1, while -h still
exits with status 0. The mmap category's three test programs pass in
a VM running the kernel built from the same source tree.

Fixes: 85463321e726 ("selftests/vm: enable running select groups of tests")
Assisted-by: LLM
Signed-off-by: Tianyi Chen <[email protected]>
---
Resending because the webmail editor damaged the whitespace in the
previous submission. The code change is unchanged.

 tools/testing/selftests/mm/run_vmtests.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/testing/selftests/mm/run_vmtests.sh 
b/tools/testing/selftests/mm/run_vmtests.sh
index d09f9f6a384..189927f87e6 100755
--- a/tools/testing/selftests/mm/run_vmtests.sh
+++ b/tools/testing/selftests/mm/run_vmtests.sh
@@ -110,6 +110,7 @@ while getopts "aht:nd" OPT; do
                "t") VM_SELFTEST_ITEMS=${OPTARG} ;;
                "n") TAP_PREFIX= ;;
                "d") RUN_DESTRUCTIVE=true ;;
+               "?") exit 1 ;;
        esac
 done
 shift $((OPTIND -1))
-- 
2.55.0


Reply via email to