From 7495deea3e80fe20dd32dabf1d174d1458ce2b47 Mon Sep 17 00:00:00 2001 From: Tom Krizek Date: Fri, 14 Oct 2022 16:59:50 +0200 Subject: [PATCH] Revive the stress system test Ensure the port numbers are dynamically filled in with copy_setports. Clarify test fail condition. Make the stress test part of the default test suite since it doesn't seem to run too long or interfere with other tests any more (the original note claiming so is more than 20 years old). Related !6883 --- bin/tests/system/Makefile.am | 5 ++--- bin/tests/system/conf.sh.common | 2 -- bin/tests/system/stress/clean.sh | 3 +++ bin/tests/system/stress/ns1/{named.conf => named.conf.in} | 2 +- bin/tests/system/stress/ns2/{named.conf => named.conf.in} | 2 +- bin/tests/system/stress/ns3/{named.conf => named.conf.in} | 4 ++-- bin/tests/system/stress/ns4/{named.conf => named.conf.in} | 2 +- bin/tests/system/stress/setup.sh | 5 +++++ bin/tests/system/stress/tests.sh | 8 ++++++-- 9 files changed, 21 insertions(+), 12 deletions(-) rename bin/tests/system/stress/ns1/{named.conf => named.conf.in} (98%) rename bin/tests/system/stress/ns2/{named.conf => named.conf.in} (98%) rename bin/tests/system/stress/ns3/{named.conf => named.conf.in} (91%) rename bin/tests/system/stress/ns4/{named.conf => named.conf.in} (98%) diff --git a/bin/tests/system/Makefile.am b/bin/tests/system/Makefile.am index e3beebbbf2..79450fb99c 100644 --- a/bin/tests/system/Makefile.am +++ b/bin/tests/system/Makefile.am @@ -162,11 +162,9 @@ TESTS += \ xferquota \ zonechecks -# The "stress" test is not run by default since it creates enough -# load on the machine to make it unusable to other users. # The "dupsigs" test is not run by default because it takes # a very long time to complete. -# TESTS += dupsigs stress +# TESTS += dupsigs if HAVE_LMDB TESTS += nzd2nzf @@ -180,6 +178,7 @@ TESTS += \ nsupdate \ resolver \ statistics \ + stress \ upforwd \ zero diff --git a/bin/tests/system/conf.sh.common b/bin/tests/system/conf.sh.common index cf87df43b4..dbb8490885 100644 --- a/bin/tests/system/conf.sh.common +++ b/bin/tests/system/conf.sh.common @@ -26,8 +26,6 @@ export LANG=C # # Common lists of system tests to run. # -# The "stress" test is not run by default since it creates enough -# load on the machine to make it unusable to other users. # The "dupsigs" test is not run by default because it takes # a very long time to complete. diff --git a/bin/tests/system/stress/clean.sh b/bin/tests/system/stress/clean.sh index 0f8403c83a..b365d7cc77 100644 --- a/bin/tests/system/stress/clean.sh +++ b/bin/tests/system/stress/clean.sh @@ -17,9 +17,12 @@ rm -f ns?/zones.conf rm -f ns?/zone*.bk rm -f ns1/delegations.db +rm -f ns1/root.db rm -f ns2/zone0*.db rm -f ns2/zone0*.jnl rm -f */named.memstats rm -f ns*/named.lock rm -f ns*/managed-keys.bind* +rm -f ns*/named.run +rm -f ns*/named.conf diff --git a/bin/tests/system/stress/ns1/named.conf b/bin/tests/system/stress/ns1/named.conf.in similarity index 98% rename from bin/tests/system/stress/ns1/named.conf rename to bin/tests/system/stress/ns1/named.conf.in index a8378d2034..74ad00787b 100644 --- a/bin/tests/system/stress/ns1/named.conf +++ b/bin/tests/system/stress/ns1/named.conf.in @@ -17,7 +17,7 @@ options { query-source address 10.53.0.1; notify-source 10.53.0.1; transfer-source 10.53.0.1; - port 5300; + port @PORT@; pid-file "named.pid"; listen-on { 10.53.0.1; }; listen-on-v6 { none; }; diff --git a/bin/tests/system/stress/ns2/named.conf b/bin/tests/system/stress/ns2/named.conf.in similarity index 98% rename from bin/tests/system/stress/ns2/named.conf rename to bin/tests/system/stress/ns2/named.conf.in index f8317823b1..5bbea78aca 100644 --- a/bin/tests/system/stress/ns2/named.conf +++ b/bin/tests/system/stress/ns2/named.conf.in @@ -17,7 +17,7 @@ options { query-source address 10.53.0.2; notify-source 10.53.0.2; transfer-source 10.53.0.2; - port 5300; + port @PORT@; pid-file "named.pid"; listen-on { 10.53.0.2; }; listen-on-v6 { none; }; diff --git a/bin/tests/system/stress/ns3/named.conf b/bin/tests/system/stress/ns3/named.conf.in similarity index 91% rename from bin/tests/system/stress/ns3/named.conf rename to bin/tests/system/stress/ns3/named.conf.in index d4f331c4ce..036ffdbac2 100644 --- a/bin/tests/system/stress/ns3/named.conf +++ b/bin/tests/system/stress/ns3/named.conf.in @@ -17,7 +17,7 @@ options { query-source address 10.53.0.3; notify-source 10.53.0.3; transfer-source 10.53.0.3; - port 5300; + port @PORT@; pid-file "named.pid"; listen-on { 10.53.0.3; }; listen-on-v6 { none; }; @@ -32,7 +32,7 @@ key rndc_key { }; controls { - inet 10.53.0.3 port 9953 allow { any; } keys { rndc_key; }; + inet 10.53.0.3 port @CONTROLPORT@ allow { any; } keys { rndc_key; }; }; zone "." { diff --git a/bin/tests/system/stress/ns4/named.conf b/bin/tests/system/stress/ns4/named.conf.in similarity index 98% rename from bin/tests/system/stress/ns4/named.conf rename to bin/tests/system/stress/ns4/named.conf.in index e41d194705..57f7e40fdd 100644 --- a/bin/tests/system/stress/ns4/named.conf +++ b/bin/tests/system/stress/ns4/named.conf.in @@ -17,7 +17,7 @@ options { query-source address 10.53.0.4; notify-source 10.53.0.4; transfer-source 10.53.0.4; - port 5300; + port @PORT@; pid-file "named.pid"; listen-on { 10.53.0.4; }; listen-on-v6 { none; }; diff --git a/bin/tests/system/stress/setup.sh b/bin/tests/system/stress/setup.sh index 7d7d8b34a9..cc751d3b7a 100644 --- a/bin/tests/system/stress/setup.sh +++ b/bin/tests/system/stress/setup.sh @@ -19,3 +19,8 @@ # $PERL setup.pl + +copy_setports ns1/named.conf.in ns1/named.conf +copy_setports ns2/named.conf.in ns2/named.conf +copy_setports ns3/named.conf.in ns3/named.conf +copy_setports ns4/named.conf.in ns4/named.conf diff --git a/bin/tests/system/stress/tests.sh b/bin/tests/system/stress/tests.sh index e0c6ea7466..43e373e09f 100644 --- a/bin/tests/system/stress/tests.sh +++ b/bin/tests/system/stress/tests.sh @@ -17,7 +17,7 @@ status=0 ( $SHELL -c "while true - do $RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 reload 2>&1 | + do $RNDC -c ../common/rndc.conf -s 10.53.0.3 -p $CONTROLPORT reload 2>&1 | sed 's/^/I:ns3 /'; sleep 1 done" & echo $! >reload.pid @@ -25,7 +25,7 @@ $SHELL -c "while true for i in 0 1 2 3 4 do - $PERL update.pl -s 10.53.0.2 -p 5300 zone00000$i.example. & + $PERL update.pl -s 10.53.0.2 -p $PORT zone00000$i.example. & done echo_i "waiting for background processes to finish" @@ -34,5 +34,9 @@ wait echo_i "killing reload loop" kill `cat reload.pid` +# If the test has run to completion without named crashing, it has succeeded. +# Otherwise, the crash will be detected by the test framework and the test will +# fail. + echo_i "exit status: $status" [ $status -eq 0 ] || exit 1