]> git.ipfire.org Git - thirdparty/pdns.git/blob - build-scripts/test-recursor-bulk
Merge pull request #13145 from rgacogne/fuzz-targets-dist
[thirdparty/pdns.git] / build-scripts / test-recursor-bulk
1 #!/bin/sh
2
3 export PDNSRECURSOR=${PDNSRECURSOR:-/usr/sbin/pdns_recursor}
4 export PDNSRECCONTROL=${PDNSRECCONTROL:-/usr/bin/rec_control}
5 export DNSBULKTEST=${DNSBULKTEST:-/usr/bin/dnsbulktest}
6
7 if [ "$0" != "./build-scripts/test-recursor-bulk" ]; then
8 echo "Please run me from the root checkout dir"
9 exit 1
10 fi
11
12 set -x
13
14 cd regression-tests
15
16 rm -f top-1m.csv
17 wget -c -N http://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip
18
19 unzip top-1m.csv.zip
20
21 numdomains="1000 5000 10000 50000 100000 500000"
22 if [ ! -z "$1" ]; then
23 numdomains="$1"
24 fi
25
26 if false; then
27 set +x
28 for prefix in 'www' 'wildcard'; do
29 rm -f ${prefix}.csv
30 for num in $(seq 0 1000000); do
31 echo "${num},${prefix}.powerdnssec.org" >> ${prefix}.csv
32 done
33 done
34 set -x
35 fi
36
37 EXIT=0
38
39 version=$($PDNSRECURSOR --version 2>&1 | awk '/PowerDNS Recursor/ { print $6 }')
40 for IPv6 in 0 1; do
41 for CSV in $(ls *.csv); do
42 for domains in $numdomains; do
43 export context="${version}_v6:${IPv6}_csv:${CSV%%.*}_domains:${domains}"
44 export IPv6
45 export CSV
46 RECURSOR=$PDNSRECURSOR RECCONTROL=$PDNSRECCONTROL THRESHOLD=0 TRACE=no time ./recursor-test 5401 $domains || EXIT=1
47 mv -f recursor.log recursor-${context}.log
48 sleep 10
49 done
50 done
51 done
52 ./bulktest-to-json.py | tee bulktest-results.json
53
54 # cleanup
55 rm -rf csv/
56 rm -f *.log
57 rm -f bulktest-results.json
58
59 exit $EXIT