From: Phil Sutter Date: Thu, 28 Aug 2025 23:49:01 +0000 (+0200) Subject: tests: monitor: Extend testcases a bit X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d4b07cdae6de28744492fa104c57eeb9a8eaac9b;p=thirdparty%2Fnftables.git tests: monitor: Extend testcases a bit Try to cover for reduced table and chain deletion notifications by creating them with data which is omitted by the kernel during deletion. Also try to expose the difference in reported flowtable hook deletion vs. flowtable deletion. Signed-off-by: Phil Sutter Acked-by: Pablo Neira Ayuso --- diff --git a/tests/monitor/testcases/chain.t b/tests/monitor/testcases/chain.t new file mode 100644 index 00000000..975ccf1d --- /dev/null +++ b/tests/monitor/testcases/chain.t @@ -0,0 +1,41 @@ +I add table inet t +O - +J {"add": {"table": {"family": "inet", "name": "t", "handle": 0}}} + +I add chain inet t c +O - +J {"add": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0}}} + +I delete chain inet t c +O - +J {"delete": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0}}} + +I add chain inet t c { type filter hook input priority filter; } +O add chain inet t c { type filter hook input priority 0; policy accept; } +J {"add": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0, "type": "filter", "hook": "input", "prio": 0, "policy": "accept"}}} + +I delete chain inet t c +O - +J {"delete": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0}}} + +I add chain inet t c { type filter hook ingress priority filter; devices = { "lo" }; } +O add chain inet t c { type filter hook ingress devices = { "lo" } priority 0; policy accept; } +J {"add": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0, "dev": "lo", "type": "filter", "hook": "ingress", "prio": 0, "policy": "accept"}}} + +I delete chain inet t c +O - +J {"delete": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0}}} + +I add chain inet t c { type filter hook ingress priority filter; devices = { "eth1", "lo" }; } +O add chain inet t c { type filter hook ingress devices = { "eth1", "lo" } priority 0; policy accept; } +J {"add": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0, "dev": ["eth1", "lo"], "type": "filter", "hook": "ingress", "prio": 0, "policy": "accept"}}} + +I delete chain inet t c { type filter hook ingress priority filter; devices = { "eth1" }; } +O delete chain inet t c { type filter hook ingress devices = { "eth1" } priority 0; policy accept; } +J {"delete": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0, "dev": "eth1", "type": "filter", "hook": "ingress", "prio": 0, "policy": "accept"}}} + +I delete chain inet t c +O - +J {"delete": {"chain": {"family": "inet", "table": "t", "name": "c", "handle": 0}}} + + diff --git a/tests/monitor/testcases/flowtable-simple.t b/tests/monitor/testcases/flowtable-simple.t index 11254c51..e1889ae5 100644 --- a/tests/monitor/testcases/flowtable-simple.t +++ b/tests/monitor/testcases/flowtable-simple.t @@ -8,3 +8,15 @@ J {"add": {"flowtable": {"family": "ip", "name": "ft", "table": "t", "handle": 0 I delete flowtable ip t ft O - J {"delete": {"flowtable": {"family": "ip", "name": "ft", "table": "t", "handle": 0}}} + +I add flowtable ip t ft { hook ingress priority 0; devices = { "eth1", "lo" }; } +O - +J {"add": {"flowtable": {"family": "ip", "name": "ft", "table": "t", "handle": 0, "hook": "ingress", "prio": 0, "dev": ["eth1", "lo"]}}} + +I delete flowtable ip t ft { hook ingress priority 0; devices = { "eth1" }; } +O - +J {"delete": {"flowtable": {"family": "ip", "name": "ft", "table": "t", "handle": 0, "hook": "ingress", "prio": 0, "dev": "eth1"}}} + +I delete flowtable ip t ft +O - +J {"delete": {"flowtable": {"family": "ip", "name": "ft", "table": "t", "handle": 0}}} diff --git a/tests/monitor/testcases/table.t b/tests/monitor/testcases/table.t new file mode 100644 index 00000000..35a0f510 --- /dev/null +++ b/tests/monitor/testcases/table.t @@ -0,0 +1,15 @@ +I add table ip t +O - +J {"add": {"table": {"family": "ip", "name": "t", "handle": 0}}} + +I delete table ip t +O - +J {"delete": {"table": {"family": "ip", "name": "t", "handle": 0}}} + +I add table ip t { comment "foo bar"; flags dormant; } +O add table ip t { flags dormant; } +J {"add": {"table": {"family": "ip", "name": "t", "handle": 0, "flags": ["dormant"], "comment": "foo bar"}}} + +I delete table ip t +O - +J {"delete": {"table": {"family": "ip", "name": "t", "handle": 0}}}