]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
tests: shell: Fix skip checks with --host mode
authorPhil Sutter <phil@nwl.cc>
Wed, 12 Feb 2020 20:26:06 +0000 (21:26 +0100)
committerPhil Sutter <phil@nwl.cc>
Fri, 14 Feb 2020 11:16:32 +0000 (12:16 +0100)
When testing host binaries, XT_MULTI variable contains just the program
name without path component which most skip checks didn't expect. Fix
them, and while being at it also reduce indenting level in two scripts
by moving the skip check up front with an early exit call.

Fixes: 416898e335322 ("tests/shell: Support testing host binaries")
Signed-off-by: Phil Sutter <phil@nwl.cc>
13 files changed:
iptables/tests/shell/testcases/arptables/0001-arptables-save-restore_0
iptables/tests/shell/testcases/arptables/0002-arptables-restore-defaults_0
iptables/tests/shell/testcases/arptables/0003-arptables-verbose-output_0
iptables/tests/shell/testcases/ebtables/0001-ebtables-basic_0
iptables/tests/shell/testcases/ebtables/0002-ebtables-save-restore_0
iptables/tests/shell/testcases/ebtables/0003-ebtables-restore-defaults_0
iptables/tests/shell/testcases/ebtables/0004-save-counters_0
iptables/tests/shell/testcases/ebtables/0005-ifnamechecks_0
iptables/tests/shell/testcases/firewalld-restore/0001-firewalld_0
iptables/tests/shell/testcases/ipt-restore/0004-restore-race_0
iptables/tests/shell/testcases/nft-only/0001compat_0
iptables/tests/shell/testcases/nft-only/0002invflags_0
iptables/tests/shell/testcases/nft-only/0003delete-with-comment_0

index bf04dc0a3e15acad68a8022556f3d50ca03b8bf9..e64e9142ee98b7ab85d1aa5a567c41f344ef9db8 100755 (executable)
@@ -4,7 +4,7 @@ set -e
 #set -x
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 # fill arptables manually
 
index 38d387f327ebbd42ad5b4ac9a02b25cc9fad2457..afd0fcb460d85362595bcd51fa49dbbf05d10811 100755 (executable)
@@ -3,7 +3,7 @@
 set -e
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 # arptables-restore reuses preloaded targets and matches, make sure defaults
 # apply to consecutive rules using the same target/match as a previous one
index 10c5ec33ada2c6d103d41bb8e3b64176d358c671..952cfa78983710cc4a0494c74a247ae291557297 100755 (executable)
@@ -4,7 +4,7 @@ set -e
 set -x
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 $XT_MULTI arptables -N foo
 
index c7f24a383f698143b2a5fca5139462ba2531c0fa..0c1eb4ca66f52dcccff9ec0c2313525366dc111e 100755 (executable)
@@ -1,86 +1,89 @@
 #!/bin/sh
 
+case "$XT_MULTI" in
+*xtables-nft-multi)
+       ;;
+*)
+       echo "skip $XT_MULTI"
+       exit 0
+       ;;
+esac
+
 get_entries_count() { # (chain)
        $XT_MULTI ebtables -L $1 | sed -n 's/.*entries: \([0-9]*\).*/\1/p'
 }
 
 set -x
-case "$XT_MULTI" in
-*/xtables-nft-multi)
-       for t in filter nat;do
-               $XT_MULTI ebtables -t $t -L || exit 1
-               $XT_MULTI ebtables -t $t -X || exit 1
-               $XT_MULTI ebtables -t $t -F || exit 1
-       done
-
-       for t in broute foobar ;do
-               $XT_MULTI ebtables -t $t -L &&
-               $XT_MULTI ebtables -t $t -X &&
-               $XT_MULTI ebtables -t $t -F
-               if [ $? -eq 0 ]; then
-                       echo "Expect nonzero return for unsupported table"
-                       exit 1
-               fi
-       done
 
+for t in filter nat;do
+       $XT_MULTI ebtables -t $t -L || exit 1
+       $XT_MULTI ebtables -t $t -X || exit 1
+       $XT_MULTI ebtables -t $t -F || exit 1
+done
 
-       $XT_MULTI ebtables -t filter -N FOO || exit 1
-       $XT_MULTI ebtables -t filter -N FOO
+for t in broute foobar ;do
+       $XT_MULTI ebtables -t $t -L &&
+       $XT_MULTI ebtables -t $t -X &&
+       $XT_MULTI ebtables -t $t -F
        if [ $? -eq 0 ]; then
-               echo "Duplicate chain FOO"
-               $XT_MULTI ebtables -t filter -L
+               echo "Expect nonzero return for unsupported table"
                exit 1
        fi
+done
 
-       entries=$(get_entries_count FOO)
-       if [ $entries -ne 0 ]; then
-               echo "Unexpected entries count in empty unreferenced chain (expected 0, have $entries)"
-               $XT_MULTI ebtables -L
-               exit 1
-       fi
 
-       $XT_MULTI ebtables -A FORWARD -j FOO
-       entries=$(get_entries_count FORWARD)
-       if [ $entries -ne 1 ]; then
-               echo "Unexpected entries count in FORWARD chain (expected 1, have $entries)"
-               $XT_MULTI ebtables -L
-               exit 1
-       fi
+$XT_MULTI ebtables -t filter -N FOO || exit 1
+$XT_MULTI ebtables -t filter -N FOO
+if [ $? -eq 0 ]; then
+       echo "Duplicate chain FOO"
+       $XT_MULTI ebtables -t filter -L
+       exit 1
+fi
 
-       entries=$(get_entries_count FOO)
-       if [ $entries -ne 0 ]; then
-               echo "Unexpected entries count in empty referenced chain (expected 0, have $entries)"
-               $XT_MULTI ebtables -L
-               exit 1
-       fi
+entries=$(get_entries_count FOO)
+if [ $entries -ne 0 ]; then
+       echo "Unexpected entries count in empty unreferenced chain (expected 0, have $entries)"
+       $XT_MULTI ebtables -L
+       exit 1
+fi
 
-       $XT_MULTI ebtables -A FOO -j ACCEPT
-       entries=$(get_entries_count FOO)
-       if [ $entries -ne 1 ]; then
-               echo "Unexpected entries count in non-empty referenced chain (expected 1, have $entries)"
-               $XT_MULTI ebtables -L
-               exit 1
-       fi
+$XT_MULTI ebtables -A FORWARD -j FOO
+entries=$(get_entries_count FORWARD)
+if [ $entries -ne 1 ]; then
+       echo "Unexpected entries count in FORWARD chain (expected 1, have $entries)"
+       $XT_MULTI ebtables -L
+       exit 1
+fi
 
-       $XT_MULTI ebtables -t filter -N BAR || exit 1
-       $XT_MULTI ebtables -t filter -N BAZ || exit 1
+entries=$(get_entries_count FOO)
+if [ $entries -ne 0 ]; then
+       echo "Unexpected entries count in empty referenced chain (expected 0, have $entries)"
+       $XT_MULTI ebtables -L
+       exit 1
+fi
 
-       $XT_MULTI ebtables -t filter -L | grep -q FOO || exit 1
-       $XT_MULTI ebtables -t filter -L | grep -q BAR || exit 1
-       $XT_MULTI ebtables -t filter -L | grep -q BAZ || exit 1
+$XT_MULTI ebtables -A FOO -j ACCEPT
+entries=$(get_entries_count FOO)
+if [ $entries -ne 1 ]; then
+       echo "Unexpected entries count in non-empty referenced chain (expected 1, have $entries)"
+       $XT_MULTI ebtables -L
+       exit 1
+fi
 
-       $XT_MULTI ebtables -t filter -L BAZ || exit 1
-       $XT_MULTI ebtables -t filter -X BAZ || exit 1
-       $XT_MULTI ebtables -t filter -L BAZ | grep -q BAZ
-       if [ $? -eq 0 ]; then
-               echo "Deleted chain -L BAZ ok, expected failure"
-               $XT_MULTI ebtables -t filter -L
-               exit 1
-       fi
+$XT_MULTI ebtables -t filter -N BAR || exit 1
+$XT_MULTI ebtables -t filter -N BAZ || exit 1
 
-       $XT_MULTI ebtables -t $t -F || exit 0
-       ;;
-*)
-       echo "skip $XT_MULTI"
-       ;;
-esac
+$XT_MULTI ebtables -t filter -L | grep -q FOO || exit 1
+$XT_MULTI ebtables -t filter -L | grep -q BAR || exit 1
+$XT_MULTI ebtables -t filter -L | grep -q BAZ || exit 1
+
+$XT_MULTI ebtables -t filter -L BAZ || exit 1
+$XT_MULTI ebtables -t filter -X BAZ || exit 1
+$XT_MULTI ebtables -t filter -L BAZ | grep -q BAZ
+if [ $? -eq 0 ]; then
+       echo "Deleted chain -L BAZ ok, expected failure"
+       $XT_MULTI ebtables -t filter -L
+       exit 1
+fi
+
+$XT_MULTI ebtables -t $t -F || exit 0
index e18d46551509d50f8a206b016a7882cc6f42acd6..b84f63a7c3672121ad1e54209546f4fb7c4f2b2f 100755 (executable)
@@ -4,7 +4,7 @@ set -e
 #set -x
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 # fill ebtables manually
 
index 62d224134456baed668890eedca423e1cb7af144..63891c1bb731ac08ebe40aab3b14447ab792fdae 100755 (executable)
@@ -3,7 +3,7 @@
 set -e
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 # ebtables-restore reuses preloaded targets and matches, make sure defaults
 # apply to consecutive rules using the same target/match as a previous one
index 46966f433139ae4768b13d1d7fc8befb41fd1820..d52db900604ef62a81842f5e9a8d7a3eac5d92bc 100755 (executable)
@@ -3,7 +3,7 @@
 set -e
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 $XT_MULTI ebtables --init-table
 $XT_MULTI ebtables -A FORWARD -i nodev123 -o nodev432 -j ACCEPT
index 2163d364b318b93276d4bcabf5e3f36e45e5039b..0b3acfd7613db4062f67292f6d4c1eb2a23f10d3 100755 (executable)
@@ -3,7 +3,7 @@
 set -e
 
 # there is no legacy backend to test
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 EXPECT='*filter
 :INPUT ACCEPT
index 8bf0c2c6c194ef5fcc56eeecb6730e9084440d0d..0174b03f4ebc76324a7099e2cfe3e0f3401b603c 100755 (executable)
@@ -231,7 +231,7 @@ for table in nat mangle raw filter;do
 done
 
 case "$XT_MULTI" in
-*/xtables-nft-multi)
+*xtables-nft-multi)
        # nft-multi displays chain names in different order, work around this for now
        tmpfile2=$(mktemp)
        sort "$tmpfile" > "$tmpfile2"
index 96a5e66d0ab81440e07daac592e530b6fb7102b0..9fc50615b89264dd7627b9ce61d76da41d59f732 100755 (executable)
@@ -86,7 +86,7 @@ if [ $LINES1 -ne $LINES2 ]; then
 fi
 
 case "$XT_MULTI" in
-*/xtables-nft-multi)
+*xtables-nft-multi)
        attempts=$((RANDOM%10))
        attempts=$((attempts+1))
        ;;
index 4319ea5a6a7977e32d9dfe33717b704e2872ebe8..a617c52f53695a489182df67ddfd7583438d9e98 100755 (executable)
@@ -5,17 +5,18 @@
 # xtables: avoid bogus 'is incompatible' warning
 
 case "$XT_MULTI" in
-*/xtables-nft-multi)
-       nft -v >/dev/null || exit 0
-       nft 'add table ip nft-test; add chain ip nft-test foobar { type filter hook forward priority 42;  }' || exit 1
-       nft 'add table ip6 nft-test; add chain ip6 nft-test foobar { type filter hook forward priority 42;  }' || exit 1
-
-       $XT_MULTI iptables -L -t filter || exit 1
-       $XT_MULTI ip6tables -L -t filter || exit 1
+*xtables-nft-multi)
        ;;
 *)
        echo skip $XT_MULTI
+       exit 0
        ;;
 esac
 
+nft -v >/dev/null || exit 0
+nft 'add table ip nft-test; add chain ip nft-test foobar { type filter hook forward priority 42;  }' || exit 1
+nft 'add table ip6 nft-test; add chain ip6 nft-test foobar { type filter hook forward priority 42;  }' || exit 1
+
+$XT_MULTI iptables -L -t filter || exit 1
+$XT_MULTI ip6tables -L -t filter || exit 1
 exit 0
index 406b6081a98a40a2629125746c87e2c464ecb9d1..fe33874dde7f2a2571332d48ddd9d39112fcb63a 100755 (executable)
@@ -2,7 +2,7 @@
 
 set -e
 
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 $XT_MULTI iptables -A INPUT -p tcp --dport 53 ! -s 192.168.0.1 -j ACCEPT
 $XT_MULTI ip6tables -A INPUT -p tcp --dport 53 ! -s feed:babe::1 -j ACCEPT
index 67af9fd89741045da29c3d9cd86f2fd59f9386d6..ccb009e469076ab80e15ad1f285deabf2260036f 100755 (executable)
@@ -2,7 +2,7 @@
 
 set -e
 
-[[ $XT_MULTI == */xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
 
 comment1="foo bar"
 comment2="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"