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