]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
tests: shell: Test some commands involving rule numbers
authorPhil Sutter <phil@nwl.cc>
Wed, 9 Oct 2024 17:08:44 +0000 (19:08 +0200)
committerPhil Sutter <phil@nwl.cc>
Wed, 16 Oct 2024 13:34:50 +0000 (15:34 +0200)
Skip on ip6tables and arptables as they share the relevant code with
iptables.

Signed-off-by: Phil Sutter <phil@nwl.cc>
iptables/tests/shell/testcases/ebtables/0011-rulenum_0 [new file with mode: 0755]
iptables/tests/shell/testcases/iptables/0011-rulenum_0 [new file with mode: 0755]

diff --git a/iptables/tests/shell/testcases/ebtables/0011-rulenum_0 b/iptables/tests/shell/testcases/ebtables/0011-rulenum_0
new file mode 100755 (executable)
index 0000000..51302f3
--- /dev/null
@@ -0,0 +1,104 @@
+#!/bin/bash -x
+
+case "$XT_MULTI" in
+*xtables-nft-multi)
+       ;;
+*)
+       echo "skip $XT_MULTI"
+       exit 0
+       ;;
+esac
+
+set -e
+
+load_ruleset() {
+       $XT_MULTI ebtables-restore <<EOF
+*filter
+-A FORWARD --mark 0x1 -c 1 2
+-A FORWARD --mark 0x2 -c 2 3
+EOF
+}
+
+load_ruleset
+
+$XT_MULTI ebtables -L 0 && exit 1
+
+EXPECT='--mark 0x1 -j CONTINUE , pcnt = 1 -- bcnt = 2'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI ebtables -L FORWARD 1 --Lc)
+
+EXPECT='--mark 0x2 -j CONTINUE , pcnt = 2 -- bcnt = 3'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -L FORWARD 2 --Lc)
+
+[[ -z $($XT_MULTI ebtables -L FORWARD 3) ]]
+
+$XT_MULTI ebtables -S FORWARD 0 && exit 1
+
+EXPECT='[1:2] -A FORWARD --mark 0x1 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S FORWARD 1)
+
+EXPECT='[2:3] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S FORWARD 2)
+
+[[ -z $($XT_MULTI ebtables -S FORWARD 3) ]]
+
+$XT_MULTI ebtables -v -Z FORWARD 0 && exit 1
+
+[[ -z $($XT_MULTI ebtables -v -Z FORWARD 1) ]]
+EXPECT='[0:0] -A FORWARD --mark 0x1 -j CONTINUE
+[2:3] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+[[ -z $($XT_MULTI ebtables -v -Z FORWARD 2) ]]
+EXPECT='[0:0] -A FORWARD --mark 0x1 -j CONTINUE
+[0:0] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+$XT_MULTI ebtables -v -Z FORWARD 3 && exit 1
+
+load_ruleset
+
+[[ -z $($XT_MULTI ebtables -v -L -Z FORWARD 1) ]]
+EXPECT='[0:0] -A FORWARD --mark 0x1 -j CONTINUE
+[2:3] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+[[ -z $($XT_MULTI ebtables -v -L -Z FORWARD 2) ]]
+EXPECT='[0:0] -A FORWARD --mark 0x1 -j CONTINUE
+[0:0] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+load_ruleset
+
+$XT_MULTI ebtables -v -Z -L FORWARD 0 && exit 1
+
+EXPECT='--mark 0x1 -j CONTINUE
+Zeroing chain `FORWARD'\'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -Z -L FORWARD 1)
+EXPECT='[0:0] -A FORWARD --mark 0x1 -j CONTINUE
+[0:0] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+EXPECT='--mark 0x2 -j CONTINUE
+Zeroing chain `FORWARD'\'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -Z -L FORWARD 2)
+
+$XT_MULTI ebtables -v -Z -L FORWARD 0 && exit 1
+
+EXPECT='Zeroing chain `FORWARD'\'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -Z -L FORWARD 3)
+
+load_ruleset
+
+[[ -z $($XT_MULTI ebtables -v -D FORWARD 1) ]]
+EXPECT='[2:3] -A FORWARD --mark 0x2 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+load_ruleset
+
+[[ -z $($XT_MULTI ebtables -v -D FORWARD 2) ]]
+EXPECT='[1:2] -A FORWARD --mark 0x1 -j CONTINUE'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI ebtables -v -S | grep -v '^-P')
+
+$XT_MULTI ebtables -v -D FORWARD 3 && exit 1
+
+exit 0
diff --git a/iptables/tests/shell/testcases/iptables/0011-rulenum_0 b/iptables/tests/shell/testcases/iptables/0011-rulenum_0
new file mode 100755 (executable)
index 0000000..4f973cd
--- /dev/null
@@ -0,0 +1,93 @@
+#!/bin/bash -x
+
+set -e
+
+load_ruleset() {
+       $XT_MULTI iptables-restore <<EOF
+*filter
+-A FORWARD -m mark --mark 0x1 -c 1 2
+-A FORWARD -m mark --mark 0x2 -c 2 3
+COMMIT
+EOF
+}
+
+load_ruleset
+
+$XT_MULTI iptables -L 0 && exit 1
+
+EXPECT=' 1 2 all -- any any anywhere anywhere mark match 0x1'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI iptables -v -L FORWARD 1)
+
+EXPECT=' 2 3 all -- any any anywhere anywhere mark match 0x2'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI iptables -v -L FORWARD 2)
+
+[[ -z $($XT_MULTI iptables -L FORWARD 3) ]]
+
+$XT_MULTI iptables -S FORWARD 0 && exit 1
+
+EXPECT='-A FORWARD -m mark --mark 0x1 -c 1 2'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S FORWARD 1)
+
+EXPECT='-A FORWARD -m mark --mark 0x2 -c 2 3'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S FORWARD 2)
+
+[[ -z $($XT_MULTI iptables -S FORWARD 3) ]]
+
+$XT_MULTI iptables -v -Z FORWARD 0 && exit 1
+
+[[ -z $($XT_MULTI iptables -v -Z FORWARD 1) ]]
+EXPECT='-A FORWARD -m mark --mark 0x1 -c 0 0
+-A FORWARD -m mark --mark 0x2 -c 2 3'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S | grep -v '^-P')
+
+[[ -z $($XT_MULTI iptables -v -Z FORWARD 2) ]]
+EXPECT='-A FORWARD -m mark --mark 0x1 -c 0 0
+-A FORWARD -m mark --mark 0x2 -c 0 0'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S | grep -v '^-P')
+
+$XT_MULTI iptables -v -Z FORWARD 3 && exit 1
+
+load_ruleset
+
+[[ -z $($XT_MULTI iptables -v -L -Z FORWARD 1) ]]
+EXPECT='-A FORWARD -m mark --mark 0x1 -c 0 0
+-A FORWARD -m mark --mark 0x2 -c 2 3'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S | grep -v '^-P')
+
+[[ -z $($XT_MULTI iptables -v -L -Z FORWARD 2) ]]
+EXPECT='-A FORWARD -m mark --mark 0x1 -c 0 0
+-A FORWARD -m mark --mark 0x2 -c 0 0'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S | grep -v '^-P')
+
+load_ruleset
+
+$XT_MULTI iptables -v -Z -L FORWARD 0 && exit 1
+
+EXPECT=' 1 2 all -- any any anywhere anywhere mark match 0x1
+Zeroing chain `FORWARD'\'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI iptables -v -Z -L FORWARD 1)
+
+EXPECT=' 0 0 all -- any any anywhere anywhere mark match 0x2
+Zeroing chain `FORWARD'\'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI iptables -v -Z -L FORWARD 2)
+
+$XT_MULTI iptables -v -Z -L FORWARD 0 && exit 1
+
+EXPECT='Zeroing chain `FORWARD'\'
+diff -u -b <(echo -e "$EXPECT") <($XT_MULTI iptables -v -Z -L FORWARD 3)
+
+load_ruleset
+
+[[ -z $($XT_MULTI iptables -v -D FORWARD 1) ]]
+EXPECT='-A FORWARD -m mark --mark 0x2 -c 2 3'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S | grep -v '^-P')
+
+load_ruleset
+
+[[ -z $($XT_MULTI iptables -v -D FORWARD 2) ]]
+EXPECT='-A FORWARD -m mark --mark 0x1 -c 1 2'
+diff -u <(echo -e "$EXPECT") <($XT_MULTI iptables -v -S | grep -v '^-P')
+
+$XT_MULTI iptables -v -D FORWARD 3 && exit 1
+
+exit 0