Commit 149538cd authored by Kees Cook's avatar Kees Cook Committed by Greg Kroah-Hartman

selftests/lkdtm: Add way to repeat a test

Some LKDTM tests need to be run more than once (usually to setup and
then later trigger). Until now, the only case was the SOFT_LOCKUP test,
which wasn't useful to run in the bulk selftests. The coming stack canary
checking needs to run twice, so support this with a new test output prefix
"repeat".
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20211022223826.330653-2-keescook@chromium.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0e53a9e0
......@@ -56,8 +56,14 @@ if echo "$test" | grep -q '^#' ; then
fi
# If no expected output given, assume an Oops with back trace is success.
repeat=1
if [ -z "$expect" ]; then
expect="call trace:"
else
if echo "$expect" | grep -q '^repeat:' ; then
repeat=$(echo "$expect" | cut -d' ' -f1 | cut -d: -f2)
expect=$(echo "$expect" | cut -d' ' -f2-)
fi
fi
# Prepare log for report checking
......@@ -83,7 +89,9 @@ dmesg > "$DMESG"
# the signal that killed the subprocess, we must ignore the failure and
# continue. However we don't silence stderr since there might be other
# useful details reported there in the case of other unexpected conditions.
echo "$test" | cat >"$TRIGGER" || true
for i in $(seq 1 $repeat); do
echo "$test" | cat >"$TRIGGER" || true
done
# Record and dump the results
dmesg | comm --nocheck-order -13 "$DMESG" - > "$LOG" || true
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment