From: Lukas Czerner <[email protected]>
To: [email protected]
Subject: [PATCH 2/2] runtests: add ability to exclude tests
Date: Mon, 7 Sep 2020 15:22:25 +0200 [thread overview]
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
Signed-off-by: Lukas Czerner <[email protected]>
---
test/config | 7 +++++--
test/runtests.sh | 48 ++++++++++++++++++++++++++++++------------------
2 files changed, 35 insertions(+), 20 deletions(-)
diff --git a/test/config b/test/config
index 80a5f46..cab2703 100644
--- a/test/config
+++ b/test/config
@@ -1,4 +1,7 @@
-# Define raw test devices (or files) for test cases, if any
-# Copy this to config.local, and uncomment + define test files
+# Copy this to config.local, uncomment and define values
+#
+# Define tests to exclude from running
+# TEST_EXCLUDE=""
#
+# Define raw test devices (or files) for test cases, if any
# TEST_FILES="/dev/nvme0n1p2 /data/file"
diff --git a/test/runtests.sh b/test/runtests.sh
index 1eb3fda..9701339 100755
--- a/test/runtests.sh
+++ b/test/runtests.sh
@@ -7,6 +7,7 @@ DMESG_FILTER="cat"
TEST_DIR=$(dirname $0)
TEST_FILES=""
FAILED=""
+SKIPPED=""
MAYBE_FAILED=""
# Only use /dev/kmsg if running as root
@@ -58,43 +59,50 @@ run_test()
{
local test_name="$1"
local dev="$2"
+ local test_string=$test_name
+ # Specify test string to print
+ if [ -n "$dev" ]; then
+ test_string="$test_name $dev"
+ fi
+
+ # Log start of the test
if [ "$DO_KMSG" -eq 1 ]; then
- if [ -z "$dev" ]; then
- local dmesg_marker="Running test $test_name:"
- else
- local dmesg_marker="Running test $test_name $dev:"
- fi
+ local dmesg_marker="Running test $test_string:"
echo $dmesg_marker | tee /dev/kmsg
else
local dmesg_marker=""
echo Running test $test_name $dev
fi
+
+ # Do we have to exclude the test ?
+ echo $TEST_EXCLUDE | grep -w "$test_name" > /dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ echo "Test skipped"
+ SKIPPED="$SKIPPED <$test_string>"
+ return
+ fi
+
+ # Run the test
timeout --preserve-status -s INT -k $TIMEOUT $TIMEOUT ./$test_name $dev
local status=$?
+
+ # Check test status
if [ "$status" -eq 124 ]; then
echo "Test $test_name timed out (may not be a failure)"
elif [ "$status" -ne 0 ]; then
echo "Test $test_name failed with ret $status"
- if [ -z "$dev" ]; then
- FAILED="$FAILED <$test_name>"
- else
- FAILED="$FAILED <$test_name $dev>"
- fi
+ FAILED="$FAILED <$test_string>"
RET=1
elif ! _check_dmesg "$dmesg_marker" "$test_name"; then
echo "Test $test_name failed dmesg check"
- if [ -z "$dev" ]; then
- FAILED="$FAILED <$test_name>"
- else
- FAILED="$FAILED <$test_name $dev>"
- fi
+ FAILED="$FAILED <$test_string>"
RET=1
- elif [ ! -z "$dev" ]; then
+ elif [ -n "$dev" ]; then
sleep .1
ps aux | grep "\[io_wq_manager\]" > /dev/null
if [ $? -eq 0 ]; then
- MAYBE_FAILED="$MAYBE_FAILED $test_name"
+ MAYBE_FAILED="$MAYBE_FAILED $test_string"
fi
fi
}
@@ -109,8 +117,12 @@ for tst in $TESTS; do
fi
done
+if [ -n "$SKIPPED" ]; then
+ echo "Tests skipped: $SKIPPED"
+fi
+
if [ ${RET} -ne 0 ]; then
- echo "Tests $FAILED failed"
+ echo "Tests failed: $FAILED"
exit $RET
else
sleep 1
--
2.26.2
next prev parent reply other threads:[~2020-09-07 13:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-07 13:22 [PATCH 1/2] runtests: Small code cleanup Lukas Czerner
2020-09-07 13:22 ` Lukas Czerner [this message]
2020-09-07 16:21 ` [PATCH 2/2] runtests: add ability to exclude tests Jens Axboe
2020-09-07 17:13 ` Lukas Czerner
2020-09-07 19:33 ` Jens Axboe
2020-09-07 19:34 ` Jens Axboe
2020-09-08 8:14 ` Lukas Czerner
2020-09-08 14:10 ` Jens Axboe
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 \
[email protected] \
[email protected] \
[email protected] \
/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