mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
rtla/tests: Add $SUBTESTS and $STOPONFAIL
Give the user more control over the test execution when the test scripts are run directly (not through prove), in order to do things like run a particular test repeatedly to diagnose an intermittent failure. If $SUBTESTS is provided, then only tests whose number is on the list will run. For example: # SUBTESTS="14 133 4 $(seq 98 103) 9" bash ./tests/timerlat.t 1..150 ok 4 - top verify -s/--stack ok 9 - hist set the automatic trace mode ok 14 - top disable auto-analysis ok 98 - hist verify -H/--house-keeping ok 99 - top verify -k/--kernel-threads ok 100 - hist verify -k/--kernel-threads ok 101 - top verify -u/--user-threads ok 102 - hist verify -u/--user-threads ok 103 - apply default timerlat_period_us ok 133 - top trace output through --on-threshold trace If $STOPONFAIL is set, then the script will exit with a non-zero exit code on the first failure. If the output directory is non-empty, it will be preserved, and the location shown. Signed-off-by: Crystal Wood <crwood@redhat.com> Link: https://lore.kernel.org/r/20260919062756.819701-4-crwood@redhat.com Signed-off-by: Tomas Glozar <tglozar@redhat.com>
This commit is contained in:
parent
7e3fb693a1
commit
adbf92c8b5
|
|
@ -9,6 +9,12 @@ test_begin() {
|
|||
testdir=$(dirname "$scriptfile")
|
||||
[ -z "$RTLA" ] && RTLA="$(pwd)/rtla"
|
||||
[ -n "$TEST_COUNT" ] && echo "1..$TEST_COUNT"
|
||||
|
||||
# Convert newlines to spaces so that seq can be used
|
||||
unset subtests
|
||||
if [ -n "$SUBTESTS" ]; then
|
||||
subtests=$(echo "$SUBTESTS"|tr '\n' ' ')
|
||||
fi
|
||||
}
|
||||
|
||||
reset_osnoise() {
|
||||
|
|
@ -50,8 +56,7 @@ check() {
|
|||
# Simple check: run rtla with given arguments and test exit code.
|
||||
# If TEST_COUNT is set, run the test. Otherwise, just count.
|
||||
ctr=$(($ctr + 1))
|
||||
if [ -n "$TEST_COUNT" ]
|
||||
then
|
||||
if [[ -n "$TEST_COUNT" && ( -z "$subtests" || " $subtests " == *" $ctr "* ) ]]; then
|
||||
# Reset osnoise options before running test.
|
||||
[ "$NO_RESET_OSNOISE" == 1 ] || reset_osnoise
|
||||
|
||||
|
|
@ -62,6 +67,7 @@ check() {
|
|||
# Run rtla; in case of failure, include its output as comment
|
||||
# in the test results.
|
||||
result=$(eval stdbuf -oL $TIMEOUT "$RTLA" $2 2>&1); exitcode=$?
|
||||
popd >/dev/null
|
||||
failbuf=''
|
||||
fail=0
|
||||
|
||||
|
|
@ -90,10 +96,18 @@ check() {
|
|||
echo -n "$failbuf"
|
||||
echo "$result" | col -b | while read line; do echo "# $line"; done
|
||||
printf "#\n# exit code %s\n" $exitcode
|
||||
|
||||
if [ -n "$STOPONFAIL" ]; then
|
||||
# If the directory is not empty, tell the user where
|
||||
# to find the output
|
||||
if ! rmdir $tmpdir; then
|
||||
echo "# output dir: $tmpdir"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Remove temporary directory
|
||||
popd >/dev/null
|
||||
rm -r $tmpdir
|
||||
fi
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user