From: Tianyi Chen <diannaaav@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>,
linux-mm@kvack.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org, Joel Savitz <jsavitz@redhat.com>
Subject: [PATCH v3 RESEND 1/2] selftests/mm: Reject invalid test selections before running tests
Date: Thu, 10 Sep 2026 20:56:44 +0800 [thread overview]
Message-ID: <20260910125645.285866-2-diannaaav@gmail.com> (raw)
In-Reply-To: <20260910125645.285866-1-diannaaav@gmail.com>
From: Tianyi Chen <hi@tychen.cc>
getopts reports unknown options and missing arguments, but run_vmtests.sh
ignores its error result and continues with test setup. An empty -t
argument also falls back to the default selection, while unknown category
names can silently select no tests and still reach setup code.
Exit on getopts errors and validate category names against the existing
list in usage() before any test setup. Reject empty and whitespace-only
selections, and normalize category separators so validation and execution
agree. Initialize the default selection before parsing options so only -t
changes the selection.
Fixes: 85463321e726 ("selftests/vm: enable running select groups of tests")
Assisted-by: LLM
Signed-off-by: Tianyi Chen <hi@tychen.cc>
---
tools/testing/selftests/mm/run_vmtests.sh | 26 +++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
index d09f9f6a384e..9e62ab4c6775 100755
--- a/tools/testing/selftests/mm/run_vmtests.sh
+++ b/tools/testing/selftests/mm/run_vmtests.sh
@@ -96,26 +96,44 @@ separated by spaces:
example: ./run_vmtests.sh -t "hmm mmap ksm"
EOF
- exit 0
}
RUN_ALL=false
RUN_DESTRUCTIVE=false
TAP_PREFIX="# "
+VM_SELFTEST_ITEMS="default"
+
while getopts "aht:nd" OPT; do
case ${OPT} in
"a") RUN_ALL=true ;;
- "h") usage ;;
+ "h") usage; exit 0 ;;
"t") VM_SELFTEST_ITEMS=${OPTARG} ;;
"n") TAP_PREFIX= ;;
"d") RUN_DESTRUCTIVE=true ;;
+ "?") exit 1 ;;
esac
done
shift $((OPTIND -1))
-# default behavior: run all tests
-VM_SELFTEST_ITEMS=${VM_SELFTEST_ITEMS:-default}
+# Normalize whitespace so validation and test_selected() use the same names.
+read -r -a selected_categories <<< "${VM_SELFTEST_ITEMS//$'\n'/ }"
+VM_SELFTEST_ITEMS="${selected_categories[*]}"
+if [ -z "$VM_SELFTEST_ITEMS" ]; then
+ echo "No test categories specified" >&2
+ exit 1
+fi
+
+if [ "$VM_SELFTEST_ITEMS" != "default" ]; then
+ # Keep the documented category list as the source of valid names.
+ valid_categories=$(usage | sed -n 's/^- //p')
+ for category in "${selected_categories[@]}"; do
+ if ! grep -Fxq -- "$category" <<< "$valid_categories"; then
+ echo "Unknown test category: $category" >&2
+ exit 1
+ fi
+ done
+fi
test_selected() {
if [ "$VM_SELFTEST_ITEMS" == "default" ]; then
--
2.55.0
next prev parent reply other threads:[~2026-09-10 12:57 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-10 12:56 [PATCH v3 RESEND 0/2] selftests/mm: Validate selections and scope memfd_secret setup Tianyi Chen
2026-09-10 12:56 ` Tianyi Chen [this message]
2026-09-10 12:56 ` [PATCH v3 RESEND 2/2] selftests/mm: Only prepare ptrace_scope when memfd_secret is selected Tianyi Chen
-- strict thread matches above, loose matches on Subject: below --
2026-09-09 14:54 [PATCH v3 RESEND 0/2] selftests/mm: Validate selections and scope memfd_secret setup Tianyi Chen
2026-09-09 14:54 ` [PATCH v3 RESEND 1/2] selftests/mm: Reject invalid test selections before running tests Tianyi Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260910125645.285866-2-diannaaav@gmail.com \
--to=diannaaav@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=david@kernel.org \
--cc=jsavitz@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®