aboutsummaryrefslogtreecommitdiff
path: root/contrib/unbound/testdata/stat_values.tdir/stat_values.test
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/unbound/testdata/stat_values.tdir/stat_values.test')
-rw-r--r--contrib/unbound/testdata/stat_values.tdir/stat_values.test680
1 files changed, 0 insertions, 680 deletions
diff --git a/contrib/unbound/testdata/stat_values.tdir/stat_values.test b/contrib/unbound/testdata/stat_values.tdir/stat_values.test
deleted file mode 100644
index d538e4d60ec2..000000000000
--- a/contrib/unbound/testdata/stat_values.tdir/stat_values.test
+++ /dev/null
@@ -1,680 +0,0 @@
-# #-- stat_values.test --#
-# source the master var file when it's there
-[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master
-# use .tpkg.var.test for in test variable passing
-[ -f .tpkg.var.test ] && source .tpkg.var.test
-. ../common.sh
-
-PRE="../.."
-
-# Individual thread stats.
-STATS_IGNORE_THREAD="\
-^thread"
-
-# Histogram stats.
-STATS_IGNORE_HISTOGRAM="\
-^histogram"
-
-# Time dependent stats.
-STATS_IGNORE_TIME_SPECIFIC="\
-^total.recursion.time.avg=
-^total.recursion.time.median=
-^time.now=
-^time.up=
-^time.elapsed="
-
-# Usage dependent stats.
-STATS_IGNORE_USAGE_SPECIFIC="\
-^total.requestlist.avg=
-^total.requestlist.max=
-^total.requestlist.overwritten=
-^total.requestlist.exceeded=
-^total.requestlist.current.all=
-^total.requestlist.current.user=
-^total.tcpusage=
-^mem\."
-
-# Stats to ignore by default.
-STATS_IGNORE_DEFAULT="\
-$STATS_IGNORE_THREAD
-$STATS_IGNORE_HISTOGRAM
-$STATS_IGNORE_TIME_SPECIFIC
-$STATS_IGNORE_USAGE_SPECIFIC"
-
-# Various files to be used while testing.
-STATS_FILE=stats.$$
-EXPECTED_STATS_FILE=expected_stats.$$
-IGNORE_REGEX_FILE=ignore_regex.$$
-FILTERED_STATS_FILE=filtered_stats.$$
-FOUND_STATS_FILE=found_stats.$$
-REST_STATS_FILE=rest_stats.$$
-
-DEBUG=0
-
-if dig -h 2>&1 | grep "cookie" >/dev/null; then
- nocookie="+nocookie"
-else
- nocookie=""
-fi
-
-# Write stats to $STATS_FILE.
-# Call this when you want to get stats from unbound.
-get_stats () {
- echo "> Getting stats"
- echo "$PRE/unbound-control -c ub.conf stats"
- $PRE/unbound-control -c ub.conf stats > $STATS_FILE
- if test $? -ne 0; then
- echo "wrong exit value after success"
- exit 1
- fi
-}
-
-# Set the expected stat values by writing to $EXPECTED_STATS_FILE.
-# sort is used for proper diff later.
-set_expected_stats () {
- echo "$1" | sort > $EXPECTED_STATS_FILE
-}
-
-# Set the regex to ignore stats by writing to $IGNORE_REGEX_FILE.
-set_ignore_regex_stats () {
- echo "$1" > $IGNORE_REGEX_FILE
-}
-
-# Filter the stats by removing any matched regex from $IGNORE_REGEX_FILE,
-# sorts and writes the left over stats to $FILTERED_STATS_FILE.
-filter_stats () {
- grep -v -f $IGNORE_REGEX_FILE $STATS_FILE | sort > $FILTERED_STATS_FILE
-}
-
-# Check that the stats in $FILTERED_STATS_FILE include the expected stats in
-# $EXPECTED_STATS_FILE.
-check_expected_stats () {
- echo "> Checking expected stats"
- grep -F -x -f $EXPECTED_STATS_FILE $FILTERED_STATS_FILE > $FOUND_STATS_FILE
- if test $DEBUG -ne 0; then
- echo "Found:"
- cat $FOUND_STATS_FILE
- fi
- if diff $EXPECTED_STATS_FILE $FOUND_STATS_FILE; then
- echo "OK"
- else
- echo "! bad expected stats:"
- cat $FILTERED_STATS_FILE
- end 1
- fi
-}
-
-# Check that the rest (unspecified) stats are all 0 (no surprises).
-check_rest_stats () {
- echo "> Checking rest stats"
- grep -F -x -v -f $EXPECTED_STATS_FILE $FILTERED_STATS_FILE > $REST_STATS_FILE
- if test $DEBUG -ne 0; then
- echo "Rest:"
- cat $REST_STATS_FILE
- fi
- if grep -v "=0$" $REST_STATS_FILE; then
- echo "! bad rest stats"
- end 1
- else
- echo "OK"
- fi
-}
-
-# Main function to check stats by:
-# - Getting stats from unbound
-# - Filtering out the stats we are not interested in
-# - Checking that the expected stats are part of the filtered stats
-# - The rest of the stats have 0 values.
-check_stats () {
- set_expected_stats "$1"
- if test $DEBUG -ne 0; then
- echo "Expected:"
- cat $EXPECTED_STATS_FILE
- fi
- get_stats
- filter_stats
- if test $DEBUG -ne 0; then
- echo "Filtered:"
- cat $FILTERED_STATS_FILE
- fi
- check_expected_stats
- check_rest_stats
-}
-
-# Convenient function to set an option through unbound-control.
-set_ub_option () {
- name=$1
- value=$2
- echo "$PRE/unbound-control -c ub.conf set_option $name: $value"
- $PRE/unbound-control -c ub.conf set_option $name: $value
- if test $? -ne 0; then
- echo "wrong exit value after success"
- exit 1
- fi
-}
-
-# Convenient function to kill current Unbound and bring up one with an alternate configuration.
-bring_up_alternate_configuration () {
- conf_file=$1
- kill_pid $UNBOUND_PID # kill current Unbound
- echo ""
- cat unbound.log
- echo ""
- $PRE/unbound -d -c $conf_file >unbound.log 2>&1 &
- UNBOUND_PID=$!
- echo "UNBOUND_PID=$UNBOUND_PID" >> .tpkg.var.test
- wait_unbound_up unbound.log
-}
-
-# Convenient function to exit the test.
-end () {
- echo "> cat logfiles"
- cat fwd.log
- cat unbound.log
- if test $1 -eq 1; then
- echo "Not OK"
- else
- echo "> OK"
- fi
- exit $1
-}
-
-# Ignore all run specific stats.
-set_ignore_regex_stats "$STATS_IGNORE_DEFAULT"
-
-# Check if the server is up.
-echo "> dig 1ttl.example.com."
-dig @127.0.0.1 -p $UNBOUND_PORT 1ttl.example.com. | tee outfile
-echo "> check answer"
-if grep "1.1.1.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-
-
-teststep "Check initial stats based on first query."
-check_stats "\
-total.num.queries=1
-total.num.cachemiss=1
-total.num.recursivereplies=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.query.udpout=1
-msg.cache.count=1
-rrset.cache.count=1
-infra.cache.count=1
-num.answer.rcode.NOERROR=1"
-
-
-teststep "Check stat reset."
-check_stats "\
-msg.cache.count=1
-rrset.cache.count=1
-infra.cache.count=1"
-
-
-teststep "Enable serve-expired and check."
-set_ub_option serve-expired yes
-sleep 2 # make sure the TTL has expired.
-echo "> dig 1ttl.example.com."
-dig @127.0.0.1 -p $UNBOUND_PORT 1ttl.example.com. | tee outfile
-echo "> check answer"
-if grep "1.1.1.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-total.num.queries=1
-total.num.expired=1
-total.num.cachehits=1
-total.num.prefetch=1
-num.answer.rcode.NOERROR=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-num.query.udpout=1
-msg.cache.count=1
-rrset.cache.count=1
-infra.cache.count=1"
-
-
-teststep "Enable serve-expired-client-timeout and check."
-set_ub_option serve-expired-client-timeout 1
-echo "> dig servfail.expired."
-dig @127.0.0.1 -p $UNBOUND_PORT servfail.expired. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-total.num.queries=1
-total.num.cachemiss=1
-total.num.recursivereplies=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.query.udpout=1
-msg.cache.count=2
-rrset.cache.count=2
-infra.cache.count=2
-num.answer.rcode.NOERROR=1"
-kill_pid $FWD_EXPIRED_PID # kill the expired forwarder to force a servfail from upstream.
-sleep 2 # make sure the TTL has expired.
-echo "> dig servfail.expired."
-dig @127.0.0.1 -p $UNBOUND_PORT servfail.expired. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-sleep 1 # make sure the outgoing UDP (and no edns1xx0 retry because not a smaller buffer size) are accounted for.
-check_stats "\
-total.num.queries=1
-total.num.expired=1
-total.num.recursivereplies=1
-num.answer.rcode.NOERROR=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-num.query.udpout=1
-total.num.cachemiss=1
-msg.cache.count=2
-rrset.cache.count=2
-infra.cache.count=2"
-
-
-# Disable serve-expired
-set_ub_option serve-expired no
-
-
-teststep "Check REFUSED; try without RD flag."
-echo "> dig somethingelse.example.com."
-dig @127.0.0.1 -p $UNBOUND_PORT +nordflag somethingelse.example.com. | tee outfile
-echo "> check answer"
-if grep "REFUSED" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-num.answer.rcode.REFUSED=1
-total.num.cachehits=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-total.num.queries=1
-msg.cache.count=2
-rrset.cache.count=2
-infra.cache.count=2"
-
-
-teststep "Check the AD flag."
-echo "> dig www.example.com."
-dig @127.0.0.1 -p $UNBOUND_PORT +noadflag www.example.com. | tee outfile
-echo "> check answer"
-if grep "10.20.30.40" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-num.query.flags.AD=0
-total.num.cachemiss=1
-num.answer.rcode.NOERROR=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-num.query.udpout=1
-total.num.queries=1
-total.num.recursivereplies=1
-msg.cache.count=3
-rrset.cache.count=3
-infra.cache.count=2"
-
-
-teststep "Check local zone."
-echo "> dig www.local.zone."
-dig @127.0.0.1 -p $UNBOUND_PORT www.local.zone. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-num.answer.rcode.NOERROR=1
-total.num.cachehits=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-total.num.queries=1
-msg.cache.count=3
-rrset.cache.count=3
-infra.cache.count=2"
-
-
-teststep "Check NXDOMAIN (with local data)."
-echo "> dig mail.local.zone."
-dig @127.0.0.1 -p $UNBOUND_PORT mail.local.zone. | tee outfile
-echo "> check answer"
-if grep "NXDOMAIN" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-num.answer.rcode.NXDOMAIN=1
-total.num.cachehits=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-total.num.queries=1
-msg.cache.count=3
-rrset.cache.count=3
-infra.cache.count=2"
-
-
-teststep "Check CHAOS."
-echo "> dig id.server. ch txt"
-dig @127.0.0.1 -p $UNBOUND_PORT id.server. ch txt | tee outfile
-echo "> check answer"
-if grep "stat_values" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-num.query.class.CH=1
-total.num.cachehits=1
-num.answer.rcode.NOERROR=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.TXT=1
-total.num.queries=1
-msg.cache.count=3
-rrset.cache.count=3
-infra.cache.count=2"
-
-
-teststep "Check dns-error-reporting."
-echo "> dig www.bogusdnssec."
-dig @127.0.0.1 -p $UNBOUND_PORT www.bogusdnssec. | tee outfile
-echo "> check answer"
-if grep "SERVFAIL" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-infra.cache.count=4
-key.cache.count=1
-msg.cache.count=7
-num.answer.bogus=1
-num.answer.rcode.SERVFAIL=1
-num.query.class.IN=1
-num.query.edns.present=1
-num.query.flags.AD=1
-num.query.flags.RD=1
-num.query.opcode.QUERY=1
-num.query.type.A=1
-num.query.udpout=9
-rrset.cache.count=4
-total.num.cachemiss=1
-total.num.dns_error_reports=1
-total.num.queries=1
-total.num.recursivereplies=1"
-
-
-###
-#
-# Bring the discard-timeout, wait-limit configured Unbound up
-#
-bring_up_alternate_configuration ub_discard_wait_limit.conf
-#
-###
-
-
-teststep "Check discard-timeout and wait-limit"
-echo "> dig www.unresponsive"
-dig @127.0.0.1 -p $UNBOUND_PORT +retry=2 +timeout=1 www.unresponsive. | tee outfile
-echo "> check answer"
-if grep "no servers could be reached" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-infra.cache.count=1
-msg.cache.count=1
-num.query.class.IN=3
-num.query.edns.present=3
-num.query.flags.AD=3
-num.query.flags.RD=3
-num.query.opcode.QUERY=3
-num.query.type.A=3
-num.query.udpout=1
-total.num.cachemiss=3
-total.num.queries=3
-total.num.queries_discard_timeout=2
-total.num.queries_wait_limit=1"
-
-
-###
-#
-# Bring the downstream DNS Cookies configured Unbound up
-#
-bring_up_alternate_configuration ub_downstream_cookies.conf
-#
-###
-
-
-teststep "Get a DNS Cookie."
-echo "> dig www.local.zone +tcp $nocookie +ednsopt=10:0102030405060708"
-dig @127.0.0.1 -p $UNBOUND_PORT +tcp $nocookie +ednsopt=10:0102030405060708 +retry=0 +time=1 www.local.zone. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-# Save valid cookie
-valid_cookie=`grep "COOKIE: " outfile | cut -d ' ' -f 3`
-invalid_cookie=`echo $valid_cookie | tr '0' '4'`
-check_stats "\
-total.num.queries=1
-total.num.queries_cookie_client=1
-total.num.cachehits=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.query.tcp=1
-num.answer.rcode.NOERROR=1"
-
-
-teststep "Present the valid DNS Cookie."
-echo "> dig www.local.zone $nocookie +ednsopt=10:valid_cookie"
-dig @127.0.0.1 -p $UNBOUND_PORT $nocookie +ednsopt=10:$valid_cookie +retry=0 +time=1 www.local.zone. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-total.num.queries=1
-total.num.queries_cookie_valid=1
-total.num.cachehits=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.answer.rcode.NOERROR=1"
-
-
-teststep "Present an invalid DNS Cookie."
-echo "> dig www.local.zone $nocookie +ednsopt=10:invalid_cookie"
-dig @127.0.0.1 -p $UNBOUND_PORT $nocookie +ednsopt=10:$invalid_cookie +retry=0 +time=1 www.local.zone. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- end 1
-else
- echo "OK"
-fi
-# A lot of stats are missing since BADCOOKIE error response is before
-# those stat calculations.
-# BADCOOKIE is an extended error code; we record YXRRSET below.
-check_stats "\
-total.num.queries=1
-total.num.queries_cookie_invalid=1
-total.num.cachehits=1
-num.answer.rcode.YXRRSET=1"
-
-
-teststep "Present no DNS Cookie."
-echo "> dig www.local.zone +ignore"
-dig @127.0.0.1 -p $UNBOUND_PORT +ignore $nocookie +retry=0 +time=1 www.local.zone. | tee outfile
-echo "> check answer"
-if grep "192.0.2.1" outfile; then
- end 1
-else
- echo "OK"
-fi
-# A lot of stats are missing since REFUSED error response because of no DNS
-# Cookie is before those stat calculations.
-check_stats "\
-total.num.queries=1
-total.num.cachehits=1
-num.answer.rcode.REFUSED=1"
-
-if test x$USE_CACHEDB = "x1"; then
-
-
-###
-#
-# Bring the cachedb configured Unbound up
-#
-bring_up_alternate_configuration ub_cachedb.conf
-#
-###
-
-
-teststep "Check cachedb cache miss."
-echo "> dig www.example.com."
-dig @127.0.0.1 +ednsopt=65534 -p $UNBOUND_PORT www.example.com. | tee outfile
-echo "> check answer"
-if grep "10.20.30.40" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-total.num.queries=1
-total.num.cachemiss=1
-total.num.cachehits=0
-total.num.recursivereplies=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.query.udpout=1
-num.query.cachedb=0
-msg.cache.count=1
-rrset.cache.count=1
-infra.cache.count=1
-num.answer.rcode.NOERROR=1"
-
-
-teststep "Check cachedb cache hit."
-echo "> dig www.example.com."
-dig @127.0.0.1 +ednsopt=65534 -p $UNBOUND_PORT www.example.com. | tee outfile
-echo "> check answer"
-if grep "10.20.30.40" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-total.num.queries=1
-total.num.cachemiss=1
-total.num.cachehits=0
-total.num.recursivereplies=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.query.udpout=0
-num.query.cachedb=1
-msg.cache.count=1
-rrset.cache.count=1
-infra.cache.count=1
-num.answer.rcode.NOERROR=1"
-
-
-teststep "Check cachedb cache hit with stat reset."
-echo "> dig www.example.com."
-dig @127.0.0.1 +ednsopt=65534 -p $UNBOUND_PORT www.example.com. | tee outfile
-echo "> check answer"
-if grep "10.20.30.40" outfile; then
- echo "OK"
-else
- end 1
-fi
-check_stats "\
-total.num.queries=1
-total.num.cachemiss=1
-total.num.cachehits=0
-total.num.recursivereplies=1
-num.query.type.A=1
-num.query.class.IN=1
-num.query.opcode.QUERY=1
-num.query.flags.RD=1
-num.query.flags.AD=1
-num.query.edns.present=1
-num.query.cachedb=1
-msg.cache.count=1
-rrset.cache.count=1
-infra.cache.count=1
-num.answer.rcode.NOERROR=1"
-
-fi # USE_CACHEDB
-
-end 0