summaryrefslogtreecommitdiffstats
path: root/tests/shell/testcases/nft-f/0011manydefines_0
diff options
context:
space:
mode:
Diffstat (limited to 'tests/shell/testcases/nft-f/0011manydefines_0')
-rwxr-xr-xtests/shell/testcases/nft-f/0011manydefines_053
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/shell/testcases/nft-f/0011manydefines_0 b/tests/shell/testcases/nft-f/0011manydefines_0
new file mode 100755
index 0000000..aac0670
--- /dev/null
+++ b/tests/shell/testcases/nft-f/0011manydefines_0
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# tests many defines in a single nft -f run
+
+HOWMANY=20000
+
+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=2000
+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
+
+generate1()
+{
+ for ((i=0; i<=HOWMANY; i++)) ; do
+ echo "define data_${i} = ${i}"
+ done
+}
+
+generate2()
+{
+ for ((i=0; i<=HOWMANY; i++)) ; do
+ echo "iifname \$data_${i}"
+ done
+}
+
+echo " $(generate1)
+table t {
+ chain c {
+ $(generate2)
+ }
+}" > $tmpfile
+
+set -e
+$NFT -f $tmpfile
+
+if [ "$HOWMANY" != 20000 ] ; 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