]>
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 |
d9c6538e | 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: " |
d4886eb4 BH |
52 | cat $a/description |
53 | ||
53f66707 | 54 | echo "$testname: " >> test-results |
d4886eb4 BH |
55 | cat $a/description >> test-results |
56 | ||
1bccd246 | 57 | SKIPIT=0 |
e87e682b | 58 | if [ -e $a/skip ] |
d4886eb4 | 59 | then |
1bccd246 | 60 | SKIPIT=1 |
e87e682b | 61 | result=" Skipped test $a" |
1bccd246 | 62 | else |
388cdf7a | 63 | for reason in $skipreasons $context |
1bccd246 PD |
64 | do |
65 | if [ -e $a/skip.$reason ] | |
66 | then | |
67 | SKIPIT=1 | |
68 | result=" Skipped test $a for reason $reason" | |
69 | break | |
70 | fi | |
71 | done | |
72 | fi | |
388cdf7a | 73 | |
fe2b08f4 | 74 | FAIL=0 |
d6fbf4e2 KM |
75 | for reason in $skipreasons $context |
76 | do | |
fe2b08f4 | 77 | if [ -e $a/fail.$reason ] |
d6fbf4e2 | 78 | then |
fe2b08f4 | 79 | FAIL=1 |
d6fbf4e2 KM |
80 | break |
81 | fi | |
82 | done | |
83 | ||
388cdf7a RA |
84 | if [ "$spectest" != "" ] && [ "$spectest" != "$testname" ] && [ "$testname" != "00dnssec-grabkeys" ] |
85 | then | |
86 | SKIPIT=1 | |
87 | result=" Skipped test $a because it's not the specified single test" | |
88 | fi | |
89 | ||
1bccd246 PD |
90 | |
91 | if [ $SKIPIT = 1 ] | |
92 | then | |
53f66707 | 93 | echo $testname >> skipped_tests |
e87e682b | 94 | skipped=$[$skipped+1] |
914353ca | 95 | else |
e87e682b | 96 | $a/command > $a/real_result |
dff80aa2 | 97 | expected=$a/expected_result |
8a4a3c5c | 98 | |
a9330594 MS |
99 | diffopts="-u" |
100 | if [ -e $a/expected_result.i ]; then | |
101 | expected=$a/expected_result.i | |
102 | diffopts="${diffopts} -i" | |
103 | fi | |
8a4a3c5c | 104 | |
9eb3131a | 105 | for extracontext in $extracontexts |
1bccd246 PD |
106 | do |
107 | [ -e "$a/expected_result.$extracontext" ] && expected=$a/expected_result.$extracontext | |
108 | done | |
dff80aa2 | 109 | [ -n "$context" ] && [ -e "$a/expected_result.$context" ] && expected=$a/expected_result.$context |
8a4a3c5c | 110 | diff ${diffopts} $expected $a/real_result > $a/diff 2>&1 |
e87e682b BH |
111 | if [ -s $a/diff ] |
112 | then | |
fe2b08f4 | 113 | if [ $FAIL = 0 ] |
d6fbf4e2 KM |
114 | then |
115 | result=" Failed test $a" | |
116 | echo $testname >> failed_tests | |
117 | failed=$[$failed+1] | |
118 | else | |
119 | result=" Expected failure for reason $reason, test passed $a" | |
120 | echo $testname >> passed_tests | |
121 | passed=$[$passed+1] | |
122 | fi | |
e87e682b | 123 | else |
fe2b08f4 | 124 | if [ $FAIL = 0 ] |
d6fbf4e2 KM |
125 | then |
126 | result=" Passed test $a" | |
127 | echo $testname >> passed_tests | |
128 | passed=$[$passed+1] | |
129 | else | |
130 | result=" Unexpected pass for reason $reason, test failed $a" | |
131 | echo $testname >> failed_tests | |
132 | failed=$[$failed+1] | |
133 | fi | |
e87e682b BH |
134 | fi |
135 | fi | |
c823f41c | 136 | echo "$result" |
d4886eb4 BH |
137 | echo |
138 | echo "$result" >> test-results | |
139 | echo >> test-results | |
140 | done | |
141 | ||
e87e682b | 142 | echo -n $passed out of $[$passed+$failed] |
d4886eb4 BH |
143 | echo -n " (" |
144 | res=$((echo scale=2; echo 100*$passed/\($passed+$failed\)) | bc ) | |
145 | echo -n "$res%) " | |
c823f41c | 146 | echo tests passed, $skipped were skipped |