#!/bin/bash set -e ruleset_file=$(mktemp) trap 'rm -f "$ruleset_file"' EXIT 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 { echo 'define big_set = {' for ((i = 1; i < $HOWMANY; i++)); do for ((j = 1; j < 255; j++)); do echo "10.0.$i.$j," done done echo '10.1.0.0/24 }' } >"$ruleset_file" cat >>"$ruleset_file" <<\EOF table inet test68_table { set test68_set { type ipv4_addr flags interval elements = { $big_set } } } EOF ( ulimit -s 400 && $NFT -f "$ruleset_file" ) 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