]> git.ipfire.org Git - thirdparty/pdns.git/blobdiff - regression-tests/recursor-test
dnsdist doc typo fix
[thirdparty/pdns.git] / regression-tests / recursor-test
index 55da5cd30c62268d99c14108c18b5f560aea7239..e0cfddc18e5de5bcdc83866afa391de2e833c1d4 100755 (executable)
@@ -1,27 +1,60 @@
-#!/bin/sh -ex
+#!/bin/bash -ex
 port=$1
 [ -z "$port" ] && port=5300
 limit=$2
 [ -z "$limit" ] && limit=100000
 
-../pdns/pdns_recursor --daemon=no --local-port=$port --socket-dir=./ --trace=no --config-dir=. &
+: ${RECURSOR:="../pdns/recursordist/pdns_recursor"}
+: ${CSV:="top-1m.csv"}
+: ${IPv6:="0"}
+: ${TRACE:="fail"}
+: ${DNSBULKTEST:="../pdns/dnsbulktest"}
+
+if [ $IPv6 = 1 ]
+then
+       QLA6="::"
+else
+       QLA6=""
+fi
+
+rm -f recursor.pid pdns_recursor.pid
+/usr/bin/time --format '%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
+%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
+<measurement><name>user CPU seconds</name><value>%U</value></measurement>
+<measurement><name>system CPU seconds</name><value>%S</value></measurement>
+<measurement><name>wallclock seconds</name><value>%e</value></measurement>
+<measurement><name>%% CPU used</name><value>%P</value></measurement>
+'         ${RECURSOR} --daemon=no --local-port=$port --socket-dir=./ --trace=$TRACE --config-dir=. --max-mthreads=100 --query-local-address6="${QLA6}" > recursor.log 2>&1 &
 sleep 3
-../pdns/dnsbulktest -qe 127.0.0.1 $port $limit < top-1m.csv > bulktest.results
+${DNSBULKTEST} --www=false -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results
 kill $(cat pdns_recursor.pid)
+sleep 5
 
 . ./bulktest.results
 
 mkdir -p recursor-bulktest
 rm -f failed_tests passed_tests
 touch failed_tests passed_tests
-if [ "$DBT_OKPERCENTAGEINT" -ge 95 ]
+: ${THRESHOLD:="95"}
+
+ANANSWER=$[(100*(${DBT_QUEUED}-${DBT_ERRORS}-${DBT_TIMEOUTS}) )/${DBT_QUEUED}]
+
+if [ "$ANANSWER" -ge $THRESHOLD ]
 then
        echo recursor-bulktest >> passed_tests
+       RETVAL=0
 else
        echo recursor-bulktest >> failed_tests
+       RETVAL=1
 fi
 
 echo "$DBT_OKPERCENTAGE% of domains resolved" > recursor-bulktest/diff
-echo "<measurement><name>% domains resolved</name><value>$DBT_OKPERCENTAGE</value></measurement>" > recursor-bulktest/stdout
+egrep 'PowerDNS.COM|^<measurement' recursor.log > recursor-bulktest/stdout
+echo "<measurement><name>% domains resolved</name><value>$DBT_OKPERCENTAGE</value></measurement>" >> recursor-bulktest/stdout
+
+: ${context:="recursor-bulktest"}
+
+export context
+testsdir=. ./toxml
 
-context=recursor-bulktest ./toxml
+exit $RETVAL