#!/bin/bash # test adding and deleting many sets elements in two nft -f runs. HOWMANY=255 if [ "$NFT_TEST_HAS_SOCKET_LIMITS" = y ] ; then # The socket limit /proc/sys/net/core/wmem_max may be unsuitable for # the test. # # Run only a subset of the test and mark as skipped at the end. HOWMANY=30 fi tmpfile=$(mktemp) if [ ! -w $tmpfile ] ; then echo "Failed to create tmp file" >&2 exit 0 fi trap "rm -rf $tmpfile" EXIT # cleanup if aborted generate() { echo -n "{" for ((i=1; i<=HOWMANY; i++)) ; do for ((j=1; j<=HOWMANY; j++)) ; do echo -n "10.0.${i}.${j}" [ "$i" == "$HOWMANY" ] && [ "$j" == "$HOWMANY" ] && break echo -n ", " done done echo -n "}" } set -e echo "add table x add set x y { type ipv4_addr; } add element x y $(generate)" > $tmpfile $NFT -f $tmpfile echo "delete element x y $(generate)" > $tmpfile $NFT -f $tmpfile if [ "$HOWMANY" != 255 ] ; then echo "NFT_TEST_HAS_SOCKET_LIMITS indicates that the socket limit for" echo "/proc/sys/net/core/wmem_max is too small for this test. Mark as SKIPPED" echo "You may bump the limit and rerun with \`NFT_TEST_HAS_SOCKET_LIMITS=n\`." exit 77 fi