From: Pablo Neira Ayuso Date: Mon, 6 Jan 2025 20:48:56 +0000 (+0100) Subject: tests: shell: interval sets with size X-Git-Tag: v1.1.2~78 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=718d5fdf4efa0a5ca29f497a5114c85d1633e2c7;p=thirdparty%2Fnftables.git tests: shell: interval sets with size Exercise size in set with intervals (rbtree), including corner cases such as 0.0.0.0 and 255.255.255.255 (half-open interval). Signed-off-by: Pablo Neira Ayuso --- diff --git a/tests/shell/testcases/sets/interval_size b/tests/shell/testcases/sets/interval_size new file mode 100755 index 00000000..6d075967 --- /dev/null +++ b/tests/shell/testcases/sets/interval_size @@ -0,0 +1,42 @@ +#!/bin/bash + +RULESET="table inet x { + set x { + typeof ip saddr + flags interval + auto-merge + size 1 + } + + set y { + typeof ip saddr + flags interval + size 1 + } +}" + +$NFT -f - <<< $RULESET + +$NFT add element inet x x '{ 0.0.0.0, 255.255.255.255 }' && exit 1 +$NFT add element inet x x '{ 0.0.0.0 }' || exit 1 +$NFT add element inet x x '{ 255.255.255.0/24 }' && exit 1 +$NFT delete element inet x x '{ 0.0.0.0 }' || exit 1 +$NFT add element inet x x '{ 255.255.255.0/24 }' || exit 1 +$NFT add element inet x x '{ 0.0.0.0 }' && exit 1 +$NFT add element inet x x '{ 0.0.0.0-255.255.255.0 }' || exit 1 +$NFT delete element inet x x '{ 1.1.1.1 }' && exit 1 +$NFT delete element inet x x '{ 0.0.0.0/0 }' || exit 1 +$NFT add element inet x x '{ 255.255.255.0/24 }' || exit 1 +$NFT add element inet x x '{ 0.0.0.0 }' && exit 1 + +$NFT add element inet x y '{ 0.0.0.0, 255.255.255.255 }' && exit 1 +$NFT add element inet x y '{ 0.0.0.0 }' || exit 1 +$NFT add element inet x y '{ 255.255.255.0/24 }' && exit 1 +$NFT delete element inet x y '{ 0.0.0.0 }' || exit 1 +$NFT add element inet x y '{ 255.255.255.0/24 }' || exit 1 +$NFT add element inet x y '{ 0.0.0.0 }' && exit 1 +$NFT add element inet x y '{ 0.0.0.0-255.255.255.0 }' && exit 1 +$NFT delete element inet x y '{ 255.255.255.0/24 }' || exit 1 +$NFT add element inet x y '{ 0.0.0.0 }' || exit 1 +$NFT add element inet x y '{ 255.255.255.255 }' && exit 1 +exit 0