From 2e0ea44c99e466ea0bcb6aca5de95e2c7284f09c Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Fri, 28 Sep 2018 18:17:31 +0200 Subject: tests: shell: Test 'get element' command This command is currently broken when used in sets with ranges. Test various variants against known data and check if output is as expected. Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso --- tests/shell/testcases/sets/0034get_element_0 | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 tests/shell/testcases/sets/0034get_element_0 (limited to 'tests/shell/testcases') diff --git a/tests/shell/testcases/sets/0034get_element_0 b/tests/shell/testcases/sets/0034get_element_0 new file mode 100755 index 00000000..2bfb527b --- /dev/null +++ b/tests/shell/testcases/sets/0034get_element_0 @@ -0,0 +1,37 @@ +#!/bin/bash + +RC=0 + +check() { # (elems, expected) + out=$($NFT get element ip t s "{ $1 }" 2>/dev/null) + out=$(grep "elements =" <<< "$out") + out="${out#* \{ }" + out="${out% \}}" + [[ "$out" == "$2" ]] && return + echo "ERROR: asked for '$1', expecting '$2' 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 } +" + +$NFT -f - <<< "$RULESET" + +# simple cases, (non-)existing values and ranges +check 10 10 +check 11 "" +check 20-30 20-30 +check 15-18 "" + +# multiple single elements, ranges smaller than present +check "10, 40" "10, 40" +check 21-29 20-30 + +# non-existing ranges matching elements +check 10-40 "" +check 10-25 "" +check 25-55 "" + +exit $RC -- cgit v1.2.3