From: Pieter Lexis Date: Thu, 22 Oct 2015 15:27:20 +0000 (+0200) Subject: Add a script to bulk-test the recursor on buildbot X-Git-Tag: dnsdist-1.0.0-alpha1~252^2~14^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae7072eb6db90489dabd87bbcbcc3a4911788d04;p=thirdparty%2Fpdns.git Add a script to bulk-test the recursor on buildbot --- diff --git a/build-scripts/test-master b/build-scripts/test-master deleted file mode 100644 index ff48c7e384..0000000000 --- a/build-scripts/test-master +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ "$0" != "./build-scripts/test-auth" ]; then - echo "Please run me from the root checkout dir" - exit 1 -fi - -set -x - -cd regression-tests - -./runtests auth diff --git a/build-scripts/test-recursor-bulk b/build-scripts/test-recursor-bulk new file mode 100755 index 0000000000..93bec15897 --- /dev/null +++ b/build-scripts/test-recursor-bulk @@ -0,0 +1,52 @@ +#!/bin/sh + +export PDNSRECURSOR=${PDNSRECURSOR:-/usr/sbin/pdns_recursor} +export DNSBULKTEST=${DNSBULKTEST:-/usr/bin/dnsbulktest} + +if [ "$0" != "./build-scripts/test-recursor-bulk" ]; then + echo "Please run me from the root checkout dir" + exit 1 +fi + +set -e +set -x + +cd regression-tests + +wget -c -N http://s3.amazonaws.com/alexa-static/top-1m.csv.zip + +rm -rf csv +mkdir csv + +unzip top-1m.csv.zip -d csv + +numdomains="1000 5000 10000 50000 100000 500000 100000" +if [ ! -z "$1" ]; then + numdomains="$1" +fi + +for prefix in 'www' 'wildcard'; do + for num in $(seq 0 1000000); do + echo "${num},${prefix}.www.powerdnssec.org" >> csv/${prefix}.csv + done +done + +version=$($PDNSRECURSOR --version 2>&1 | awk '/PowerDNS Recursor/ { print $6 }') +for IPv6 in 0 1; do + for CSV in $(ls csv/); do + for domains in $numdomains; do + export context="${version}.v6:${IPv6}.csv:${CSV%%.*}" + export IPv6 + export CSV + RECURSOR=$PDNSRECURSOR THRESHOLD=0 TRACE=no time ./recursor-test 5401 $domains + mv recursor.log recursor-${context}.log + sleep 10 + done + done +done +./bulktest-to-json.py | tee bulktest-results.json + +# cleanup +rm -rf csv/ +rm *.log +rm bulktest-results.json diff --git a/regression-tests/recursor-test b/regression-tests/recursor-test index ddc04d02b3..96ef57e1c3 100755 --- a/regression-tests/recursor-test +++ b/regression-tests/recursor-test @@ -8,6 +8,7 @@ limit=$2 : ${CSV:="top-1m.csv"} : ${IPv6:="1"} : ${TRACE:="fail"} +: ${DNSBULKTEST:="../pdns/dnsbulktest"} if [ $IPv6 = 1 ] then @@ -25,7 +26,7 @@ rm -f recursor.pid pdns_recursor.pid %% CPU used%P ' ${RECURSOR} --daemon=no --local-port=$port --socket-dir=./ --trace=$TRACE --config-dir=. --query-local-address6="${QLA6}" > recursor.log 2>&1 & sleep 3 -../pdns/dnsbulktest -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results +${DNSBULKTEST} -qe 127.0.0.1 $port $limit < ${CSV} > bulktest.results kill $(cat pdns_recursor.pid) sleep 5