Expand test with flowtable devices defined with variables to improve coverage. Signed-off-by: Pablo Neira Ayuso --- .../flowtable/0012flowtable_variable_0 | 34 ++++++++++++++++++ .../dumps/0012flowtable_variable_0.json-nft | 36 +++++++++++++++++++ .../dumps/0012flowtable_variable_0.nft | 14 ++++++++ 3 files changed, 84 insertions(+) diff --git a/tests/shell/testcases/flowtable/0012flowtable_variable_0 b/tests/shell/testcases/flowtable/0012flowtable_variable_0 index ff35548ed854..71d2638b4976 100755 --- a/tests/shell/testcases/flowtable/0012flowtable_variable_0 +++ b/tests/shell/testcases/flowtable/0012flowtable_variable_0 @@ -9,14 +9,20 @@ ft_deldev() { } iface_cleanup() { + ip link del dummy0 &>/dev/null || : ip link del dummy1 &>/dev/null || : if [ "$NFT_TEST_HAVE_ifname_based_hooks" = y ]; then ft_deldev filter1 Main_ft1 dummy1 ft_deldev filter2 Main_ft2 dummy1 + ft_deldev filter3 Main_ft3 dummy0 + ft_deldev filter3 Main_ft3 dummy1 + ft_deldev filter4 Main_ft4 dummy0 + ft_deldev filter4 Main_ft4 dummy1 fi } trap 'iface_cleanup' EXIT +ip link add name dummy0 type dummy ip link add name dummy1 type dummy EXPECTED="define if_main = { lo, dummy1 } @@ -42,3 +48,31 @@ table filter2 { }" $NFT -f - <<< $EXPECTED + +RULESET="define var1 = \"dummy0\" +define var2 = { dummy1 } +define var3 = { lo, \$var1, \$var2 } + +table filter3 { + flowtable Main_ft3 { + hook ingress priority filter + counter + devices = { \$var3 } + } +}" + +$NFT -f - <<< $RULESET + +RULESET="define var1 = \"dummy0\" +define var2 = { dummy1 } +define var3 = { lo, \$var1, \$var2 } + +table filter4 { + flowtable Main_ft4 { + hook ingress priority filter + counter + devices = \$var3 + } +}" + +$NFT -f - <<< $RULESET diff --git a/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.json-nft b/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.json-nft index 10f1df98874a..70f039fafbed 100644 --- a/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.json-nft +++ b/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.json-nft @@ -42,6 +42,42 @@ "prio": 0, "dev": "lo" } + }, + { + "table": { + "family": "ip", + "name": "filter3", + "handle": 0 + } + }, + { + "flowtable": { + "family": "ip", + "name": "Main_ft3", + "table": "filter3", + "handle": 0, + "hook": "ingress", + "prio": 0, + "dev": "lo" + } + }, + { + "table": { + "family": "ip", + "name": "filter4", + "handle": 0 + } + }, + { + "flowtable": { + "family": "ip", + "name": "Main_ft4", + "table": "filter4", + "handle": 0, + "hook": "ingress", + "prio": 0, + "dev": "lo" + } } ] } diff --git a/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.nft b/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.nft index 7863822d754b..b598420a3451 100644 --- a/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.nft +++ b/tests/shell/testcases/flowtable/dumps/0012flowtable_variable_0.nft @@ -12,3 +12,17 @@ table ip filter2 { counter } } +table ip filter3 { + flowtable Main_ft3 { + hook ingress priority filter + devices = { "lo" } + counter + } +} +table ip filter4 { + flowtable Main_ft4 { + hook ingress priority filter + devices = { "lo" } + counter + } +} -- 2.30.2