]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
tests: shell: Fix for ineffective 0007-mid-restore-flush_0
authorPhil Sutter <phil@nwl.cc>
Fri, 1 Sep 2023 11:16:56 +0000 (13:16 +0200)
committerPhil Sutter <phil@nwl.cc>
Thu, 14 Sep 2023 10:20:11 +0000 (12:20 +0200)
The test did not catch non-zero exit status of the spawned coprocess. To
make it happen, Drop the line killing it (it will exit anyway) and pass
its PID to 'wait'.

While being at it, put the sleep into the correct spot (otherwise the
check for chain 'foo' existence fails as it runs too early) and make
said chain existence check effective.

Fixes: 4e3c11a6f5a94 ("nft: Fix for ruleset flush while restoring")
Signed-off-by: Phil Sutter <phil@nwl.cc>
iptables/tests/shell/testcases/nft-only/0007-mid-restore-flush_0

index 43880ffbc58518d6e8c62b9964cfea44902bdbb5..981f007f205b9f2e4033da930e4b338a80b285c9 100755 (executable)
@@ -13,11 +13,11 @@ COMMIT
 :foo [0:0]
 EOF
 
-$XT_MULTI iptables-save | grep -q ':foo'
+sleep 1
+$XT_MULTI iptables-save | grep -q ':foo' || exit 1
 nft flush ruleset
 
 echo "COMMIT" >&"${COPROC[1]}"
-sleep 1
-
-[[ -n $COPROC_PID ]] && kill $COPROC_PID
-wait
+# close the pipe to make iptables-restore exit if it didn't error out yet
+eval "exec ${COPROC[1]}>&-"
+wait $COPROC_PID