diff options
Diffstat (limited to 'tests/shell/testcases')
-rwxr-xr-x | tests/shell/testcases/sets/0034get_element_0 | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/tests/shell/testcases/sets/0034get_element_0 b/tests/shell/testcases/sets/0034get_element_0 index e23dbda0..3343529b 100755 --- a/tests/shell/testcases/sets/0034get_element_0 +++ b/tests/shell/testcases/sets/0034get_element_0 @@ -2,43 +2,69 @@ RC=0 -check() { # (elems, expected) - out=$($NFT get element ip t s "{ $1 }") +check() { # (set, elems, expected) + out=$($NFT get element ip t $1 "{ $2 }") out=$(grep "elements =" <<< "$out") out="${out#* \{ }" out="${out% \}}" - [[ "$out" == "$2" ]] && return - echo "ERROR: asked for '$1', expecting '$2' but got '$out'" + [[ "$out" == "$3" ]] && return + echo "ERROR: asked for '$2' in set $1, expecting '$3' but got '$out'" ((RC++)) } RULESET="add table ip t add set ip t s { type inet_service; flags interval; } add element ip t s { 10, 20-30, 40, 50-60 } +add set ip t ips { type ipv4_addr; flags interval; } +add element ip t ips { 10.0.0.1, 10.0.0.5-10.0.0.8 } +add element ip t ips { 10.0.0.128/25, 10.0.1.0/24, 10.0.2.3-10.0.2.12 } +add set ip t cs { type ipv4_addr . inet_service; flags interval; } +add element ip t cs { 10.0.0.1 . 22, 10.1.0.0/16 . 1-1024 } +add element ip t cs { 10.2.0.1-10.2.0.8 . 1024-65535 } " $NFT -f - <<< "$RULESET" # simple cases, (non-)existing values and ranges -check 10 10 -check 11 "" -check 20-30 20-30 -check 15-18 "" +check s 10 10 +check s 11 "" +check s 20-30 20-30 +check s 15-18 "" # multiple single elements, ranges smaller than present -check "10, 40" "10, 40" -check "22-24, 26-28" "20-30, 20-30" -check 21-29 20-30 +check s "10, 40" "10, 40" +check s "22-24, 26-28" "20-30, 20-30" +check s 21-29 20-30 # mixed single elements and ranges -check "10, 20" "10, 20-30" -check "10, 22" "10, 20-30" -check "10, 22-24" "10, 20-30" +check s "10, 20" "10, 20-30" +check s "10, 22" "10, 20-30" +check s "10, 22-24" "10, 20-30" # non-existing ranges matching elements -check 10-40 "" -check 10-20 "" -check 10-25 "" -check 25-55 "" +check s 10-40 "" +check s 10-20 "" +check s 10-25 "" +check s 25-55 "" + +# playing with IPs, ranges and prefixes +check ips 10.0.0.1 10.0.0.1 +check ips 10.0.0.2 "" +check ips 10.0.1.0/24 10.0.1.0/24 +check ips 10.0.1.2/31 10.0.1.0/24 +check ips 10.0.1.0 10.0.1.0/24 +check ips 10.0.1.3 10.0.1.0/24 +check ips 10.0.1.255 10.0.1.0/24 +check ips 10.0.2.3-10.0.2.12 10.0.2.3-10.0.2.12 +check ips 10.0.2.10 10.0.2.3-10.0.2.12 +check ips 10.0.2.12 10.0.2.3-10.0.2.12 + +# test concatenated ranges, i.e. Pi, Pa and Po +check cs "10.0.0.1 . 22" "10.0.0.1 . 22" +check cs "10.0.0.1 . 23" "" +check cs "10.0.0.2 . 22" "" +check cs "10.1.0.1 . 42" "10.1.0.0/16 . 1-1024" +check cs "10.1.1.0/24 . 10-20" "10.1.0.0/16 . 1-1024" +check cs "10.2.0.3 . 20000" "10.2.0.1-10.2.0.8 . 1024-65535" exit $RC |