Add two tests to make sure that set size checks work fine: 1) Check if set size is indeed working, this is a simple one. 2) Check if set size is correct after ENFILE error, there is bug that adds a new spare slot everytime we hit this. Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> --- tests/shell/testcases/sets/0018set_check_size_1 | 8 ++++++++ tests/shell/testcases/sets/0019set_check_size_0 | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100755 tests/shell/testcases/sets/0018set_check_size_1 create mode 100755 tests/shell/testcases/sets/0019set_check_size_0 diff --git a/tests/shell/testcases/sets/0018set_check_size_1 b/tests/shell/testcases/sets/0018set_check_size_1 new file mode 100755 index 000000000000..833b8e2bd877 --- /dev/null +++ b/tests/shell/testcases/sets/0018set_check_size_1 @@ -0,0 +1,8 @@ +#!/bin/bash + +set -e +$NFT add table x +$NFT add set x s {type ipv4_addr\; size 2\;} +$NFT add element x s {1.1.1.1} +$NFT add element x s {1.1.1.2} +$NFT add element x s {1.1.1.3} diff --git a/tests/shell/testcases/sets/0019set_check_size_0 b/tests/shell/testcases/sets/0019set_check_size_0 new file mode 100755 index 000000000000..c20970838bf9 --- /dev/null +++ b/tests/shell/testcases/sets/0019set_check_size_0 @@ -0,0 +1,20 @@ +#!/bin/bash + +$NFT add table x +$NFT add set x s {type ipv4_addr\; size 2\;} +$NFT add element x s {1.1.1.1} +$NFT add element x s {1.1.1.2} + +$NFT add element x s { 1.1.1.3 } 2>/dev/null +if [ $? -eq 0 ]; then + echo "E: set is full, but element was added" >&2 + exit 1 +fi +# +# Try again, this helps us catch incorrect set->nelems decrement from abort path +# +$NFT add element x s { 1.1.1.3 } 2>/dev/null +if [ $? -eq 0 ]; then + echo "E: set is full, but element was added" >&2 + exit 1 +fi -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html