diff options
author | Florian Westphal <fw@strlen.de> | 2023-09-18 12:28:24 +0200 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2023-09-18 13:08:54 +0200 |
commit | 5b7d55bafeb306f95b3a16b28c7d00bf79635aab (patch) | |
tree | a8edd2102515a17331f7fb3a99da226dc4a2fa5b /tests | |
parent | b512f79edbf476fe6b551cb6c7d007d81dd9f154 (diff) |
tests/shell: skip test cases involving osf match if kernel lacks support
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Thomas Haller <thaller@redhat.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/shell/features/osf.nft | 7 | ||||
-rwxr-xr-x | tests/shell/testcases/maps/typeof_maps_0 | 19 | ||||
-rwxr-xr-x | tests/shell/testcases/sets/typeof_sets_0 | 23 |
3 files changed, 39 insertions, 10 deletions
diff --git a/tests/shell/features/osf.nft b/tests/shell/features/osf.nft new file mode 100644 index 00000000..dbb6b4c3 --- /dev/null +++ b/tests/shell/features/osf.nft @@ -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" + } +} diff --git a/tests/shell/testcases/maps/typeof_maps_0 b/tests/shell/testcases/maps/typeof_maps_0 index 5cf5ddde..263390d5 100755 --- a/tests/shell/testcases/maps/typeof_maps_0 +++ b/tests/shell/testcases/maps/typeof_maps_0 @@ -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 diff --git a/tests/shell/testcases/sets/typeof_sets_0 b/tests/shell/testcases/sets/typeof_sets_0 index 9f777a8c..6ed0c354 100755 --- a/tests/shell/testcases/sets/typeof_sets_0 +++ b/tests/shell/testcases/sets/typeof_sets_0 @@ -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 |