]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
tests: shell: Test delinearization of native nftables expressions
authorPhil Sutter <phil@nwl.cc>
Thu, 22 Sep 2022 17:04:32 +0000 (19:04 +0200)
committerFlorian Westphal <fw@strlen.de>
Thu, 22 Sep 2022 19:50:53 +0000 (21:50 +0200)
Even if iptables-nft doesn't generate them anymore, it should continue
to correctly parse them. Make sure this is tested for.

Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Florian Westphal <fw@strlen.de>
iptables/tests/shell/testcases/nft-only/0010-native-delinearize_0 [new file with mode: 0755]

diff --git a/iptables/tests/shell/testcases/nft-only/0010-native-delinearize_0 b/iptables/tests/shell/testcases/nft-only/0010-native-delinearize_0
new file mode 100755 (executable)
index 0000000..cca36fd
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+[[ $XT_MULTI == *xtables-nft-multi ]] || { echo "skip $XT_MULTI"; exit 0; }
+nft -v >/dev/null || exit 0
+
+set -e
+
+nft -f - <<EOF
+table ip filter {
+       chain FORWARD {
+               type filter hook forward priority filter;
+               limit rate 10/day counter
+               udp dport 42 counter
+       }
+}
+EOF
+
+EXPECT="*filter
+:INPUT ACCEPT [0:0]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [0:0]
+-A FORWARD -m limit --limit 10/day
+-A FORWARD -p udp -m udp --dport 42
+COMMIT"
+
+diff -u -Z <(echo -e "$EXPECT") <($XT_MULTI iptables-save | grep -v '^#')