[PATCH nft 2/2] tests: shell: combine flowtable devices with variable expression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Expand test with flowtable devices defined with variables to improve
coverage.

Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx>
---
 .../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





[Index of Archives]     [Netfitler Users]     [Berkeley Packet Filter]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux