[PATCH nft 2/5] tests: shell: let netdev_chain_0 test indicate SKIP if kernel requires netdev device

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

 



This test case only works on kernel 6.4+.
Add feature probe for this and then exit early.

We don't want to indicate a test failure, as this test doesn't apply
on older kernels.

But we should not indicate sucess either, else we might be fooled
in case something went wrong during feature probe.

Add a special return value, 123, and let run-tests.sh count this
as 'SKIPPED'.

Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
---
 tests/shell/features/netdev_chain_without_device.nft |  7 +++++++
 tests/shell/run-tests.sh                             | 11 ++++++++++-
 tests/shell/testcases/chains/netdev_chain_0          |  2 ++
 3 files changed, 19 insertions(+), 1 deletion(-)
 create mode 100644 tests/shell/features/netdev_chain_without_device.nft

diff --git a/tests/shell/features/netdev_chain_without_device.nft b/tests/shell/features/netdev_chain_without_device.nft
new file mode 100644
index 000000000000..25eb200ffe31
--- /dev/null
+++ b/tests/shell/features/netdev_chain_without_device.nft
@@ -0,0 +1,7 @@
+# 207296f1a03b ("netfilter: nf_tables: allow to create netdev chain without device")
+# v6.4-rc1~132^2~14^2
+table netdev t {
+	chain c {
+		type filter hook ingress priority 0; policy accept;
+        }
+}
diff --git a/tests/shell/run-tests.sh b/tests/shell/run-tests.sh
index 3113404de2b9..17cab3f11c9b 100755
--- a/tests/shell/run-tests.sh
+++ b/tests/shell/run-tests.sh
@@ -161,6 +161,7 @@ fi
 echo ""
 ok=0
 failed=0
+skipped=0
 taint=0
 
 check_features()
@@ -270,6 +271,9 @@ do
 				msg_warn "[DUMP FAIL]	$testfile"
 			fi
 		fi
+	elif [ "$rc_got" -eq 123 ]; then
+		((skipped++))
+		msg_info "[SKIPPED]	$testfile"
 	else
 		((failed++))
 		if [ "$VERBOSE" == "y" ] ; then
@@ -294,7 +298,12 @@ echo ""
 kmemleak_found=0
 check_kmemleak_force
 
-msg_info "results: [OK] $ok [FAILED] $failed [TOTAL] $((ok+failed))"
+msg_info "results: [OK] $ok [FAILED] $failed [SKIPPED] $skipped [TOTAL] $((ok+failed+skipped))"
+
+if [ $ok -eq 0 -a  $failed -eq 0 ]; then
+	# no test cases were run, indicate a failure
+	failed=1
+fi
 
 if [ "$VERBOSE" == "y" ] ; then
 	echo "Probed Features:"
diff --git a/tests/shell/testcases/chains/netdev_chain_0 b/tests/shell/testcases/chains/netdev_chain_0
index 67cd715fc59f..2e2a0c177fcb 100755
--- a/tests/shell/testcases/chains/netdev_chain_0
+++ b/tests/shell/testcases/chains/netdev_chain_0
@@ -1,5 +1,7 @@
 #!/bin/bash
 
+[ "$NFT_HAVE_netdev_chain_without_device" -eq 0 ] && exit 123
+
 ip link add d0 type dummy || {
         echo "Skipping, no dummy interface available"
         exit 0
-- 
2.41.0




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

  Powered by Linux