]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Test rndc reset-stats counter-name
authorAram Sargsyan <aram@isc.org>
Tue, 25 Mar 2025 10:49:03 +0000 (10:49 +0000)
committerArаm Sаrgsyаn <aram@isc.org>
Thu, 27 Mar 2025 08:51:12 +0000 (08:51 +0000)
A a check to test if 'rndc reset-stats' works as expected.

bin/tests/system/tcp/tests.sh

index 2e7d30ea12cabf1713ab4f244f42ada3e7be90c4..18276c8441b53e9a261e797e1a48231caa41ff54 100644 (file)
@@ -77,6 +77,7 @@ refresh_tcp_stats() {
   TCP_CUR="$(sed -n "s/^tcp clients: \([0-9][0-9]*\).*/\1/p" rndc.out.$n)"
   TCP_LIMIT="$(sed -n "s/^tcp clients: .*\/\([0-9][0-9]*\)/\1/p" rndc.out.$n)"
   TCP_HIGH="$(sed -n "s/^TCP high-water: \([0-9][0-9]*\)/\1/p" rndc.out.$n)"
+  REC_HIGH="$(sed -n "s/^recursive high-water: \([0-9][0-9]*\)/\1/p" rndc.out.$n)"
 }
 
 # Send a command to the tool script listening on 10.53.0.6.
@@ -112,7 +113,7 @@ status=$((status + ret))
 # Check TCP statistics after server startup before using them as a baseline for
 # subsequent checks.
 n=$((n + 1))
-echo_i "TCP high-water: check initial statistics ($n)"
+echo_i "TCP and recursive high-water: check initial statistics ($n)"
 ret=0
 refresh_tcp_stats
 assert_int_equal "${TCP_CUR}" 0 "current TCP clients count" || ret=1
@@ -120,21 +121,45 @@ assert_int_equal "${TCP_CUR}" 0 "current TCP clients count" || ret=1
 # system test startup, the script start.pl executes dig to check if target
 # named is running, and that increments tcp-quota by one.
 assert_int_equal "${TCP_HIGH}" 1 "tcp-highwater count" || ret=1
+assert_int_equal "${REC_HIGH}" 1 "recursive-highwater count" || ret=1
+if [ $ret != 0 ]; then echo_i "failed"; fi
+status=$((status + ret))
+
+# Reset TCP high-water statistics
+n=$((n + 1))
+echo_i "TCP and recursive high-water: reset ($n)"
+ret=0
+rndccmd 10.53.0.5 reset-stats tcp-high-water recursive-high-water || ret=1
+if [ $ret != 0 ]; then echo_i "failed"; fi
+status=$((status + ret))
+
+# Check TCP statistics after reset
+n=$((n + 1))
+echo_i "TCP and recursive high-water: check statistics after reset ($n)"
+ret=0
+refresh_tcp_stats
+assert_int_equal "${TCP_CUR}" 0 "current TCP clients count" || ret=1
+assert_int_equal "${TCP_HIGH}" 0 "tcp-highwater count" || ret=1
+assert_int_equal "${REC_HIGH}" 0 "recursive-highwater count" || ret=1
 if [ $ret != 0 ]; then echo_i "failed"; fi
 status=$((status + ret))
 
 # Ensure the TCP high-water statistic gets updated after some TCP connections
-# are established.
+# are established, and recursive high-water is unchanged.
 n=$((n + 1))
-echo_i "TCP high-water: check value after some TCP connections are established ($n)"
+echo_i "TCP and recursive high-water: check values after some TCP and UDP connections are established ($n)"
 ret=0
 OLD_TCP_CUR="${TCP_CUR}"
+OLD_REC_HIGH="${REC_HIGH}"
 TCP_ADDED=9
+REC_ADDED=1
+dig_with_opts +udp @10.53.0.5 recurse.example >dig.out.test$n
 open_connections "${TCP_ADDED}" || ret=1
 check_stats_added() {
   refresh_tcp_stats
   assert_int_equal "${TCP_CUR}" $((OLD_TCP_CUR + TCP_ADDED)) "current TCP clients count" || return 1
   assert_int_equal "${TCP_HIGH}" $((OLD_TCP_CUR + TCP_ADDED)) "TCP high-water value" || return 1
+  assert_int_equal "${REC_HIGH}" $((OLD_REC_HIGH + REC_ADDED)) "recursive high-water value" || return 1
 }
 retry 2 check_stats_added || ret=1
 if [ $ret != 0 ]; then echo_i "failed"; fi