summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/restore.t2
-rwxr-xr-xtests/setlist_resize.sh32
2 files changed, 34 insertions, 0 deletions
diff --git a/tests/restore.t b/tests/restore.t
index b151be8..ffde2d1 100644
--- a/tests/restore.t
+++ b/tests/restore.t
@@ -4,4 +4,6 @@
0 ipset save > .foo && diff restore.t.multi.saved .foo
# Delete all sets
0 ipset x
+# Check auto-increasing maximal number of sets
+0 ./setlist_resize.sh
# eof
diff --git a/tests/setlist_resize.sh b/tests/setlist_resize.sh
new file mode 100755
index 0000000..42b17f8
--- /dev/null
+++ b/tests/setlist_resize.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+# set -x
+
+loop=8
+
+for x in ip_set_list_set ip_set_hash_netiface ip_set_hash_ipportnet \
+ ip_set_hash_netport ip_set_hash_net ip_set_hash_ipportip \
+ ip_set_hash_ipport ip_set_bitmap_port ip_set_bitmap_ipmac \
+ ip_set_bitmap_ip xt_set ip_set; do
+ rmmod $x
+done
+
+create() {
+ n=$1
+ while [ $n -le 1024 ]; do
+ ../src/ipset c test$n hash:ip
+ n=$((n+2))
+ done
+}
+
+for x in `seq 1 $loop`; do
+ # echo "test round $x"
+ create 1 &
+ create 2 &
+ wait
+ test `../src/ipset l -n | wc -l` -eq 1024 || exit 1
+ ../src/ipset x
+ test `lsmod|grep -w ^ip_set_hash_ip | awk '{print $3}'` -eq 0 || exit 1
+ rmmod ip_set_hash_ip
+ rmmod ip_set
+done