]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
tests/shell: skip test cases involving osf match if kernel lacks support
authorFlorian Westphal <fw@strlen.de>
Mon, 18 Sep 2023 10:28:24 +0000 (12:28 +0200)
committerFlorian Westphal <fw@strlen.de>
Mon, 18 Sep 2023 11:08:54 +0000 (13:08 +0200)
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Thomas Haller <thaller@redhat.com>
tests/shell/features/osf.nft [new file with mode: 0644]
tests/shell/testcases/maps/typeof_maps_0
tests/shell/testcases/sets/typeof_sets_0

diff --git a/tests/shell/features/osf.nft b/tests/shell/features/osf.nft
new file mode 100644 (file)
index 0000000..dbb6b4c
--- /dev/null
@@ -0,0 +1,7 @@
+# b96af92d6eaf ("netfilter: nf_tables: implement Passive OS fingerprint module in nft_osf")
+# v4.19-rc1~140^2~135^2~15
+table t {
+       chain c {
+               osf name "Linux"
+       }
+}
index 5cf5dddeb1d61bdac4472d81fb37551e986c3e1c..263390d51a5daa23c115d538f9c9456e0250d9ab 100755 (executable)
@@ -4,11 +4,18 @@
 # without typeof, this is 'type string' and 'type integer',
 # but neither could be used because it lacks size information.
 
-EXPECTED="table inet t {
-       map m1 {
+OSFMAP=""
+OSFRULE=""
+if [ "$NFT_TEST_HAVE_osf" != n ] ; then
+       OSFMAP="map m1 {
                typeof osf name : ct mark
                elements = { "Linux" : 0x00000001 }
-       }
+       }"
+       OSFRULE="ct mark set osf name map @m1"
+fi
+
+EXPECTED="table inet t {
+       $OSFMAP
 
        map m2 {
                typeof vlan id : mark
@@ -33,7 +40,7 @@ EXPECTED="table inet t {
        }
 
        chain c {
-               ct mark set osf name map @m1
+               $OSFRULE
                ether type vlan meta mark set vlan id map @m2
                meta mark set ip saddr . ip daddr map @m3
                iifname . ip protocol . th dport vmap @m4
@@ -45,3 +52,7 @@ EXPECTED="table inet t {
 set -e
 $NFT -f - <<< $EXPECTED
 
+if [ "$NFT_TEST_HAVE_osf" = n ] ; then
+       echo "Partial test due to NFT_TEST_HAVE_osf=n. Skip"
+       exit 77
+fi
index 9f777a8c90bc597eac602d7aba74ece8010496d4..6ed0c354bc25a40101107c23dbe50f3e21a35332 100755 (executable)
@@ -4,11 +4,20 @@
 # s1 and s2 are identical, they just use different
 # ways for declaration.
 
-EXPECTED="table inet t {
-       set s1 {
+OSFSET=""
+OSFCHAIN=""
+if [ "$NFT_TEST_HAVE_osf" != n ] ; then
+       OSFSET="set s1 {
                typeof osf name
                elements = { \"Linux\" }
-       }
+       }"
+       OSFCHAIN="chain c1 {
+               osf name @s1 accept
+       }"
+fi
+
+EXPECTED="table inet t {
+       $OSFSET
 
        set s2 {
                typeof vlan id
@@ -60,9 +69,7 @@ EXPECTED="table inet t {
                elements = { 3567 . 1.2.3.4 }
        }
 
-       chain c1 {
-               osf name @s1 accept
-       }
+       $OSFCHAIN
 
        chain c2 {
                ether type vlan vlan id @s2 accept
@@ -104,3 +111,7 @@ EXPECTED="table inet t {
 set -e
 $NFT -f - <<< $EXPECTED
 
+if [ "$NFT_TEST_HAVE_osf" = n ] ; then
+       echo "Partial test due to NFT_TEST_HAVE_osf=n. Skip"
+       exit 77
+fi