--- /dev/null
+#!/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
: ${CSV:="top-1m.csv"}
: ${IPv6:="1"}
: ${TRACE:="fail"}
+: ${DNSBULKTEST:="../pdns/dnsbulktest"}
if [ $IPv6 = 1 ]
then
<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