]> granicus.if.org Git - pdns/commitdiff
Add a script to bulk-test the recursor on buildbot
authorPieter Lexis <pieter.lexis@powerdns.com>
Thu, 22 Oct 2015 15:27:20 +0000 (17:27 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Thu, 22 Oct 2015 15:27:20 +0000 (17:27 +0200)
build-scripts/test-master [deleted file]
build-scripts/test-recursor-bulk [new file with mode: 0755]
regression-tests/recursor-test

diff --git a/build-scripts/test-master b/build-scripts/test-master
deleted file mode 100644 (file)
index ff48c7e..0000000
+++ /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 (executable)
index 0000000..93bec15
--- /dev/null
@@ -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
index ddc04d02b33fd5aadbeb5c768437b515990beffc..96ef57e1c3e59fd18dfb68a065dc89c6312c41a4 100755 (executable)
@@ -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
 <measurement><name>%% CPU used</name><value>%P</value></measurement>
 '         ${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