summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-09-08 16:14:24 +0200
committerFlorian Westphal <fw@strlen.de>2023-09-09 16:19:54 +0200
commit5b29bfee661328e60f7863d1d14b333253f86457 (patch)
treea42a5431b1ca1a356c8dbcd5424f712ed722696c
parentbd063341a552c5e79cffa26e8b7a06fcdbfcd96c (diff)
tests/shell: honor .nodump file for tests without nft dumps
For some tests, the dump is not stable or useful to test. For example, if they have an "expires" timestamps. Those tests don't have a .nft file in the dumps directory, and don't have it checked. DUMPGEN=y generates a new dump file, if the "dumps/" directory exists. Omitting that directory is a way to prevent the generation of the file. However, many such tests share their directory with tests that do have dumps. When running tests with DUMPGEN=y, new files for old tests are generated. Those files are not meant to be compared or committed to git because it's known to not work. Whether a test has a dump file, is part of the test. The absence of the dump file should also be recorded and committed to git. Add a way to opt-out from such generating such dumps by having .nodump files instead of the .nft dump. Later we should add unit tests that checks that no test has both a .nft and a .nodump file in git, that the .nodump file is always empty, and that every .nft/.nodump file has a corresponding test committed to git. Signed-off-by: Thomas Haller <thaller@redhat.com> Signed-off-by: Florian Westphal <fw@strlen.de>
-rwxr-xr-xtests/shell/helpers/test-wrapper.sh10
1 files changed, 8 insertions, 2 deletions
diff --git a/tests/shell/helpers/test-wrapper.sh b/tests/shell/helpers/test-wrapper.sh
index 405e70c8..03213187 100755
--- a/tests/shell/helpers/test-wrapper.sh
+++ b/tests/shell/helpers/test-wrapper.sh
@@ -49,6 +49,7 @@ read tainted_after < /proc/sys/kernel/tainted
DUMPPATH="$TESTDIR/dumps"
DUMPFILE="$DUMPPATH/$TESTBASE.nft"
+NODUMPFILE="$DUMPPATH/$TESTBASE.nodump"
dump_written=
@@ -59,9 +60,14 @@ dump_written=
#
# It also will only happen for tests, that have a "$DUMPPATH" directory. There
# might be tests, that don't want to have dumps created. The existence of the
-# directory controls that.
-if [ "$rc_test" -eq 0 -a "$DUMPGEN" = y -a -d "$DUMPPATH" ] ; then
+# directory controls that. Tests that have a "$NODUMPFILE" file, don't get a dump generated.
+if [ "$rc_test" -eq 0 -a "$DUMPGEN" = y -a -d "$DUMPPATH" -a ! -f "$NODUMPFILE" ] ; then
dump_written=y
+ if [ ! -f "$DUMPFILE" ] ; then
+ # No dumpfile exists yet. We generate both a .nft and a .nodump
+ # file. The user can pick which one to commit to git.
+ : > "$NODUMPFILE"
+ fi
cat "$NFT_TEST_TESTTMPDIR/ruleset-after" > "$DUMPFILE"
fi