]> git.ipfire.org Git - thirdparty/ipset.git/commitdiff
tests: make setlist_resize.sh more verbose on error
authorFlorian Westphal <fw@strlen.de>
Thu, 9 Jul 2026 20:03:57 +0000 (22:03 +0200)
committerJozsef Kadlecsik <kadlec@netfilter.org>
Mon, 13 Jul 2026 13:25:01 +0000 (15:25 +0200)
Instead of just existing, tell where we failed.
Use -x and take advantage of $IPSET_TMP to capture the
full output.

On success, remove the file.
cleanup handler will dump the content in case we failed somewhere.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Jozsef Kadlecsik <kadlec@netfilter.org>
tests/setlist_resize.sh

index db347ca06517101ff5f115fc8069238514b0311b..393048adac38e5710d4312d4c69df4089a35c228 100755 (executable)
@@ -1,22 +1,41 @@
 #!/bin/sh
 
 set -e
-# set -x
-# exec > setlist.res
-# exec 2>&1
+
+cleanup() {
+       exec 1>&3
+       exec 2>&4
+       if [ -r "$IPSET_TMP/setlist.res" ]; then
+               cat "$IPSET_TMP/setlist.res"
+               rm -f "$IPSET_TMP/setlist.res"
+       fi
+}
+trap cleanup EXIT
+
+exec 3>&1
+exec 4>&2
+exec > "$IPSET_TMP/setlist.res" 2>&1
+
+set -x
 
 ipset=${IPSET_BIN:-../src/ipset}
 
 loop=8
 
+fail() {
+       echo "FAILED: $0 $@"
+       exit 1
+}
+
 n=0
 while [ $n -le 9 ]; do
     egrep '^(ip_set_|xt_set)' /proc/modules | while read x y; do
-       rmmod $x >/dev/null 2>&1
+       rmmod $x || :
     done
     if [ "`egrep '^(ip_set_|xt_set)' /proc/modules`" ]; then
        sleep 1s
     else
+       echo "Modules unloaded after $n attempts."
        n=10
     fi
 done
@@ -35,7 +54,7 @@ for x in `seq 1 $loop`; do
     create 1 &
     create 2 &
     wait
-    test `$ipset l -n | wc -l` -eq 1024 || exit 1
+    test `$ipset l -n | wc -l` -eq 1024 || fail "expected 1024 sets"
     $ipset x
     # Wait for destroy to be finished and reference counts releases
     n=0
@@ -53,7 +72,10 @@ for x in `seq 1 $loop`; do
        lsmod
        echo $ref
     fi
-    test "$ref" -eq 0 || exit 1
+    test "$ref" -eq 0 || fail "ref was $ref"
     rmmod ip_set_hash_ip >/dev/null 2>&1
     rmmod ip_set >/dev/null 2>&1
 done
+
+rm -f "$IPSET_TMP/setlist.res"
+cleanup