summaryrefslogtreecommitdiffstats
path: root/tests/shell/helpers
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-09-06 13:52:15 +0200
committerFlorian Westphal <fw@strlen.de>2023-09-07 19:35:20 +0200
commit86ccd72e589105b5277cf81f9e8dc1e208d25f45 (patch)
tree1259ebcf3658c1bee7911da7943d2f3855c06da7 /tests/shell/helpers
parentce4403c185c7c7b15fc044964305cff94f77396e (diff)
tests/shell: move taint check to "test-wrapper.sh"
We will run tests in parallel. That means, we have multiple tests data and results in fly. That becomes simpler, if we move more result data to the test-wrapper and out of "run-tests.sh". Signed-off-by: Thomas Haller <thaller@redhat.com> Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'tests/shell/helpers')
-rwxr-xr-xtests/shell/helpers/test-wrapper.sh18
1 files changed, 15 insertions, 3 deletions
diff --git a/tests/shell/helpers/test-wrapper.sh b/tests/shell/helpers/test-wrapper.sh
index bdbe2c37..fee55e5f 100755
--- a/tests/shell/helpers/test-wrapper.sh
+++ b/tests/shell/helpers/test-wrapper.sh
@@ -11,11 +11,15 @@ TESTDIR="$(dirname "$TEST")"
printf '%s\n' "$TEST" > "$NFT_TEST_TESTTMPDIR/name"
+read tainted_before < /proc/sys/kernel/tainted
+
rc_test=0
"$TEST" &> "$NFT_TEST_TESTTMPDIR/testout.log" || rc_test=$?
$NFT list ruleset > "$NFT_TEST_TESTTMPDIR/ruleset-after"
+read tainted_after < /proc/sys/kernel/tainted
+
DUMPPATH="$TESTDIR/dumps"
DUMPFILE="$DUMPPATH/$TESTBASE.nft"
@@ -45,6 +49,10 @@ if [ "$rc_test" -ne 77 -a -f "$DUMPFILE" ] ; then
fi
fi
+if [ "$tainted_before" != "$tainted_after" ] ; then
+ echo "$tainted_after" > "$NFT_TEST_TESTTMPDIR/rc-failed-tainted"
+fi
+
rc_exit="$rc_test"
if [ -n "$rc_dump" ] && [ "$rc_dump" -ne 0 ] ; then
echo "$DUMPFILE" > "$NFT_TEST_TESTTMPDIR/rc-failed-dump"
@@ -53,13 +61,17 @@ if [ -n "$rc_dump" ] && [ "$rc_dump" -ne 0 ] ; then
# Special exit code to indicate dump diff.
rc_exit=124
fi
-elif [ "$rc_test" -eq 0 ] ; then
- echo "$rc_test" > "$NFT_TEST_TESTTMPDIR/rc-ok"
elif [ "$rc_test" -eq 77 ] ; then
echo "$rc_test" > "$NFT_TEST_TESTTMPDIR/rc-skipped"
+elif [ "$rc_test" -eq 0 -a "$tainted_before" = "$tainted_after" ] ; then
+ echo "$rc_test" > "$NFT_TEST_TESTTMPDIR/rc-ok"
else
echo "$rc_test" > "$NFT_TEST_TESTTMPDIR/rc-failed"
- if [ "$rc_test" -eq 124 ] ; then
+ if [ "$rc_test" -eq 0 -a "$tainted_before" != "$tainted_after" ] ; then
+ # Special exit code to indicate tainted.
+ rc_exit=123
+ elif [ "$rc_test" -eq 124 -o "$rc_test" -eq 123 ] ; then
+ # These exit codes are reserved
rc_exit=125
fi
fi