]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Check synth-from-dnssec JSON counters
authorMark Andrews <marka@isc.org>
Thu, 28 Oct 2021 23:41:37 +0000 (10:41 +1100)
committerPetr Špaček <pspacek@isc.org>
Thu, 2 Dec 2021 13:18:41 +0000 (14:18 +0100)
bin/tests/system/synthfromdnssec/clean.sh
bin/tests/system/synthfromdnssec/tests.sh

index 9d247e78bf396ef15912a97854248cc1c8543428..6fb8784a0687d25ca5bd916906f3209b78f625b4 100644 (file)
@@ -40,3 +40,4 @@ rm -f ./wildcname.out ./insecure.wildcname.out
 rm -f ./minimal.nxdomain.out
 rm -f ./black.out
 rm -f ./xml.out*
+rm -f ./json.out*
index a7cd51266d97d2d1a7062916a3e35d83bab2c656..be5472bddbdc253a25b5ec5f66b3201548183edc 100644 (file)
@@ -489,6 +489,69 @@ do
    else
        echo_i "Skipping XML statistics checks"
    fi
+
+   if [ ${HAVEJSONSTATS} ] && [ -x "${CURL}" ] ; then
+       echo_i "getting JSON statisistcs for (synth-from-dnssec ${description};) ($n)"
+       ret=0
+       json=json.out$n
+       ${CURL} http://10.53.0.${ns}:${EXTRAPORT1}/json/v1/server > $json 2>/dev/null || ret=1
+       n=$((n+1))
+       if [ $ret != 0 ]; then echo_i "failed"; fi
+       status=$((status+ret))
+
+       echo_i "check JSON for 'CoveringNSEC' with (synth-from-dnssec ${description};) ($n)"
+       ret=0
+       count=$(grep '"CoveringNSEC":' $json | wc -l)
+       test $count = 2 || ret=1
+       zero=$(grep '"CoveringNSEC":0' $json | wc -l)
+       if [ ${synth} = yes ]
+       then
+           test $zero = 1 || ret=1
+       else
+           test $zero = 2 || ret=1
+       fi
+       n=$((n+1))
+       if [ $ret != 0 ]; then echo_i "failed"; fi
+       status=$((status+ret))
+
+       echo_i "check JSON for 'CacheNSECNodes' with (synth-from-dnssec ${description};) ($n)"
+       ret=0
+       count=$(grep '"CacheNSECNodes":' $json | wc -l)
+       test $count = 2 || ret=1
+       zero=$(grep '"CacheNSECNodes":0' $json | wc -l)
+       if [ ${ad} = yes ]
+       then
+           test $zero = 1 || ret=1
+       else
+           test $zero = 2 || ret=1
+       fi
+       n=$((n+1))
+       if [ $ret != 0 ]; then echo_i "failed"; fi
+       status=$((status+ret))
+
+       for synthesized in SynthNXDOMAIN SynthNODATA SynthWILDCARD
+       do
+           case $synthesized in
+           SynthNXDOMAIN) count=1;;
+           SynthNODATA) count=2;;
+           SynthWILDCARD) count=2;;
+           esac
+
+           echo_i "check JSON for '$synthesized}' with (synth-from-dnssec ${description};) ($n)"
+           ret=0
+           if [ ${synth} = yes ]
+           then
+               grep '"'$synthesized'":'$count'' $json > /dev/null || ret=1
+           else
+               grep '"'$synthesized'":' $json > /dev/null && ret=1
+           fi
+           n=$((n+1))
+           if [ $ret != 0 ]; then echo_i "failed"; fi
+           status=$((status+ret))
+       done
+   else
+       echo_i "Skipping JSON statistics checks"
+   fi
 done
 
 echo_i "check redirect response (+dnssec) (synth-from-dnssec <default>;) ($n)"