]>
Commit | Line | Data |
---|---|---|
cf4d037d | 1 | #!/usr/bin/env bash |
fc132a05 | 2 | PATH=.:$PATH:/usr/sbin |
04aaf527 | 3 | MAKE=${MAKE:-make} |
d4886eb4 | 4 | |
d9c6538e PL |
5 | export PDNS=${PDNS:-${PWD}/../pdns/pdns_server} |
6 | export PDNS2=${PDNS2:-${PWD}/../pdns/pdns_server} | |
1cedb848 PL |
7 | export PDNSRECURSOR=${PDNSRECURSOR:-${PWD}/../pdns/recursordist/pdns_recursor} |
8 | export RECCONTROL=${RECCONTROL:-${PWD}/../pdns/recursordist/rec_control} | |
d9c6538e | 9 | export SDIG=${SDIG:-${PWD}/../pdns/sdig} |
a4437033 | 10 | export NOTIFY=${NOTIFY:-${PWD}/../pdns/pdns_notify} |
d9c6538e PL |
11 | export NSEC3DIG=${NSEC3DIG:-${PWD}/../pdns/nsec3dig} |
12 | export SAXFR=${SAXFR:-${PWD}/../pdns/saxfr} | |
13 | export ZONE2SQL=${ZONE2SQL:-${PWD}/../pdns/zone2sql} | |
7fd6c67e | 14 | export ZONE2JSON=${ZONE2JSON:-${PWD}/../pdns/zone2json} |
8c907653 | 15 | export ZONE2LDAP=${ZONE2LDAP:-${PWD}/../pdns/zone2ldap} |
fd5076c8 | 16 | export PDNSUTIL=${PDNSUTIL:-${PWD}/../pdns/pdnsutil} |
d9c6538e PL |
17 | export PDNSCONTROL=${PDNSCONTROL:-${PWD}/../pdns/pdns_control} |
18 | ||
a20029ad RG |
19 | unset _JAVA_OPTIONS |
20 | ||
388cdf7a RA |
21 | spectest=$1 |
22 | [ -z $spectest ] && spectest="" | |
23 | ||
6e038794 | 24 | for prog in $SDIG $SAXFR $NOTIFY $NSEC3DIG; do |
de15d483 | 25 | if `echo $prog | grep -q '\.\./pdns'`; then |
e55a07c9 | 26 | ${MAKE} -C ../pdns ${prog##*../pdns/} || exit |
d9c6538e PL |
27 | fi |
28 | done | |
388cdf7a | 29 | |
5f1e3267 AT |
30 | export SDIG="timeout 5 $SDIG" |
31 | export NSEC3DIG="timeout 5 $NSEC3DIG" | |
32 | export SAXFR="timeout 30 $SAXFR" | |
33 | export PDNSCONTROL="timeout 5 $PDNSCONTROL" | |
34 | ||
ff83f2ff | 35 | rm -f test-results failed_tests passed_tests skipped_tests ${testsdir}/*/real_result ${testsdir}/*/diff ${testsdir}/*/*.out ${testsdir}/*/start ${testsdir}/*/step.* |
d4886eb4 BH |
36 | |
37 | passed=0 | |
38 | failed=0 | |
e87e682b | 39 | skipped=0 |
d4886eb4 | 40 | |
7dbdd1e7 PD |
41 | touch passed_tests failed_tests skipped_tests |
42 | ||
53f66707 | 43 | for a in $(find $testsdir -type d | grep -v ^.$ | grep -v .svn | grep -v ^confdir | LC_ALL=C sort) |
d4886eb4 | 44 | do |
7241f22f PD |
45 | if [ ! -x $a/command ] |
46 | then | |
47 | continue | |
48 | fi | |
53f66707 | 49 | testname=$(basename $a) |
d3625be4 | 50 | export testname |
c823f41c | 51 | echo "$testname: " |
42f1f726 | 52 | if [ "${PDNS_DEBUG}" = "YES" ]; then |
53 | cat $a/description | |
54 | fi | |
d4886eb4 | 55 | |
53f66707 | 56 | echo "$testname: " >> test-results |
d4886eb4 BH |
57 | cat $a/description >> test-results |
58 | ||
1bccd246 | 59 | SKIPIT=0 |
e87e682b | 60 | if [ -e $a/skip ] |
d4886eb4 | 61 | then |
1bccd246 | 62 | SKIPIT=1 |
e87e682b | 63 | result=" Skipped test $a" |
1bccd246 | 64 | else |
388cdf7a | 65 | for reason in $skipreasons $context |
1bccd246 PD |
66 | do |
67 | if [ -e $a/skip.$reason ] | |
68 | then | |
69 | SKIPIT=1 | |
70 | result=" Skipped test $a for reason $reason" | |
71 | break | |
72 | fi | |
73 | done | |
74 | fi | |
388cdf7a | 75 | |
fe2b08f4 | 76 | FAIL=0 |
d6fbf4e2 KM |
77 | for reason in $skipreasons $context |
78 | do | |
fe2b08f4 | 79 | if [ -e $a/fail.$reason ] |
d6fbf4e2 | 80 | then |
fe2b08f4 | 81 | FAIL=1 |
d6fbf4e2 KM |
82 | break |
83 | fi | |
84 | done | |
85 | ||
388cdf7a RA |
86 | if [ "$spectest" != "" ] && [ "$spectest" != "$testname" ] && [ "$testname" != "00dnssec-grabkeys" ] |
87 | then | |
88 | SKIPIT=1 | |
89 | result=" Skipped test $a because it's not the specified single test" | |
90 | fi | |
91 | ||
1bccd246 PD |
92 | |
93 | if [ $SKIPIT = 1 ] | |
94 | then | |
53f66707 | 95 | echo $testname >> skipped_tests |
e87e682b | 96 | skipped=$[$skipped+1] |
914353ca | 97 | else |
e87e682b | 98 | $a/command > $a/real_result |
dff80aa2 | 99 | expected=$a/expected_result |
8a4a3c5c | 100 | |
a9330594 MS |
101 | diffopts="-u" |
102 | if [ -e $a/expected_result.i ]; then | |
103 | expected=$a/expected_result.i | |
104 | diffopts="${diffopts} -i" | |
105 | fi | |
8a4a3c5c | 106 | |
9eb3131a | 107 | for extracontext in $extracontexts |
1bccd246 PD |
108 | do |
109 | [ -e "$a/expected_result.$extracontext" ] && expected=$a/expected_result.$extracontext | |
110 | done | |
dff80aa2 | 111 | [ -n "$context" ] && [ -e "$a/expected_result.$context" ] && expected=$a/expected_result.$context |
8a4a3c5c | 112 | diff ${diffopts} $expected $a/real_result > $a/diff 2>&1 |
e87e682b BH |
113 | if [ -s $a/diff ] |
114 | then | |
fe2b08f4 | 115 | if [ $FAIL = 0 ] |
d6fbf4e2 KM |
116 | then |
117 | result=" Failed test $a" | |
118 | echo $testname >> failed_tests | |
119 | failed=$[$failed+1] | |
120 | else | |
121 | result=" Expected failure for reason $reason, test passed $a" | |
122 | echo $testname >> passed_tests | |
123 | passed=$[$passed+1] | |
124 | fi | |
e87e682b | 125 | else |
fe2b08f4 | 126 | if [ $FAIL = 0 ] |
d6fbf4e2 KM |
127 | then |
128 | result=" Passed test $a" | |
129 | echo $testname >> passed_tests | |
130 | passed=$[$passed+1] | |
131 | else | |
132 | result=" Unexpected pass for reason $reason, test failed $a" | |
133 | echo $testname >> failed_tests | |
134 | failed=$[$failed+1] | |
135 | fi | |
e87e682b BH |
136 | fi |
137 | fi | |
c823f41c | 138 | echo "$result" |
d4886eb4 BH |
139 | echo |
140 | echo "$result" >> test-results | |
141 | echo >> test-results | |
142 | done | |
143 | ||
e87e682b | 144 | echo -n $passed out of $[$passed+$failed] |
d4886eb4 BH |
145 | echo -n " (" |
146 | res=$((echo scale=2; echo 100*$passed/\($passed+$failed\)) | bc ) | |
147 | echo -n "$res%) " | |
c823f41c | 148 | echo tests passed, $skipped were skipped |