* [PATCH nft] tests: shell: extend vmap test with updates
@ 2024-09-09 16:15 Florian Westphal
0 siblings, 0 replies; only message in thread
From: Florian Westphal @ 2024-09-09 16:15 UTC (permalink / raw)
To: netfilter-devel; +Cc: Florian Westphal
It won't validate that the update is actually effective,
but it will trigger relevant update logic in kernel.
This means the updated test works even if the kernel doesn't
support updates.
A dedicated test will be added to check timeout updates work
as expected.
Signed-off-by: Florian Westphal <fw@strlen.de>
---
tests/shell/testcases/maps/vmap_timeout | 48 +++++++++++++++++++++++--
1 file changed, 45 insertions(+), 3 deletions(-)
diff --git a/tests/shell/testcases/maps/vmap_timeout b/tests/shell/testcases/maps/vmap_timeout
index 0cd965f76d0e..3f0563afacac 100755
--- a/tests/shell/testcases/maps/vmap_timeout
+++ b/tests/shell/testcases/maps/vmap_timeout
@@ -11,18 +11,52 @@ port=23
for i in $(seq 1 100) ; do
timeout=$((RANDOM%5))
timeout=$((timeout+1))
+ expire=$((RANDOM%timeout))
j=1
batched="{ $port timeout 3s : jump other_input "
- batched_addr="{ 10.0.$((i%256)).$j . $port timeout ${timeout}s : jump other_input "
+ ubatched="$batched"
+
+ timeout_str="timeout ${timeout}s"
+ expire_str=""
+ if [ "$expire" -gt 0 ]; then
+ expire_str="expires ${expire}s"
+ fi
+
+ batched_addr="{ 10.0.$((i%256)).$j . $port ${timeout_str} ${expire_str} : jump other_input "
+ ubatched_addr="$batched_addr"
+
port=$((port + 1))
for j in $(seq 2 400); do
timeout=$((RANDOM%5))
timeout=$((timeout+1))
+ expire=$((RANDOM%timeout))
+ utimeout=$((RANDOM%5))
+ utimeout=$((timeout+1))
+
+ timeout_str="timeout ${timeout}s"
+ expire_str=""
+ if [ "$expire" -gt 0 ]; then
+ expire_str="expires ${expire}s"
+ fi
- batched="$batched, $port timeout ${timeout}s : jump other_input "
- batched_addr="$batched_addr, 10.0.$((i%256)).$((j%256)) . $port timeout ${timeout}s : jump other_input "
+ batched="$batched, $port ${timeout_str} ${expire_str} : jump other_input "
+ batched_addr="$batched_addr, 10.0.$((i%256)).$((j%256)) . $port ${timeout_str} ${expire_str} : jump other_input "
port=$((port + 1))
+
+ timeout_str="timeout ${utimeout}s"
+ expire=$((RANDOM%utimeout))
+
+ expire_str=""
+ if [ "$expires" -gt 0 ]; then
+ expire_str="expires ${expire}s"
+ fi
+
+ update=$((RANDOM%2))
+ if [ "$update" -ne 0 ]; then
+ ubatched="$batched, $port ${timeout_str} ${expire_str} : jump other_input "
+ ubatched_addr="$batched_addr, 10.0.$((i%256)).$((j%256)) . $port ${timeout_str} ${expire_str} : jump other_input "
+ fi
done
fail_addr="$batched_addr, 1.2.3.4 . 23 timeout 5m : jump other_input,
@@ -40,6 +74,14 @@ for i in $(seq 1 100) ; do
$NFT add element inet filter portmap "$batched"
$NFT add element inet filter portaddrmap "$batched_addr"
+
+ update=$((RANDOM%2))
+ if [ "$update" -ne 0 ]; then
+ ubatched="$ubatched }"
+ ubatched_addr="$ubatched_addr }"
+ $NFT add element inet filter portmap "$ubatched"
+ $NFT add element inet filter portaddrmap "$ubatched_addr"
+ fi
done
if [ "$NFT_TEST_HAVE_catchall_element" = n ] ; then
--
2.44.2
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2024-09-09 16:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-09 16:15 [PATCH nft] tests: shell: extend vmap test with updates Florian Westphal
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox