]> git.ipfire.org Git - thirdparty/pdns.git/blame - regression-tests/runtests
Add test for rec_control manpage
[thirdparty/pdns.git] / regression-tests / runtests
CommitLineData
cf4d037d 1#!/usr/bin/env bash
fc132a05 2PATH=.:$PATH:/usr/sbin
04aaf527 3MAKE=${MAKE:-make}
d4886eb4 4
d9c6538e
PL
5export PDNS=${PDNS:-${PWD}/../pdns/pdns_server}
6export PDNS2=${PDNS2:-${PWD}/../pdns/pdns_server}
7export PDNSRECURSOR=${PDNSRECURSOR:-${PWD}/../pdns_recursor}
c093909c 8export RECCONTROL=${RECCONTROL:-${PWD}/../rec_control}
d9c6538e 9export SDIG=${SDIG:-${PWD}/../pdns/sdig}
6e038794 10export NOTIFY=${NOTIFY:-${PWD}/../pdns/notify}
d9c6538e
PL
11export NSEC3DIG=${NSEC3DIG:-${PWD}/../pdns/nsec3dig}
12export SAXFR=${SAXFR:-${PWD}/../pdns/saxfr}
13export ZONE2SQL=${ZONE2SQL:-${PWD}/../pdns/zone2sql}
8c907653 14export ZONE2LDAP=${ZONE2LDAP:-${PWD}/../pdns/zone2ldap}
fd5076c8 15export PDNSUTIL=${PDNSUTIL:-${PWD}/../pdns/pdnsutil}
d9c6538e
PL
16export PDNSCONTROL=${PDNSCONTROL:-${PWD}/../pdns/pdns_control}
17
388cdf7a
RA
18spectest=$1
19[ -z $spectest ] && spectest=""
20
6e038794 21for 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
25done
388cdf7a 26
5f1e3267
AT
27export SDIG="timeout 5 $SDIG"
28export NSEC3DIG="timeout 5 $NSEC3DIG"
29export SAXFR="timeout 30 $SAXFR"
30export PDNSCONTROL="timeout 5 $PDNSCONTROL"
31
ff83f2ff 32rm -f test-results failed_tests passed_tests skipped_tests ${testsdir}/*/real_result ${testsdir}/*/diff ${testsdir}/*/*.out ${testsdir}/*/start ${testsdir}/*/step.*
d4886eb4
BH
33
34passed=0
35failed=0
e87e682b 36skipped=0
d4886eb4 37
7dbdd1e7
PD
38touch passed_tests failed_tests skipped_tests
39
53f66707 40for a in $(find $testsdir -type d | grep -v ^.$ | grep -v .svn | grep -v ^confdir | LC_ALL=C sort)
d4886eb4 41do
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
137done
138
e87e682b 139echo -n $passed out of $[$passed+$failed]
d4886eb4
BH
140echo -n " ("
141res=$((echo scale=2; echo 100*$passed/\($passed+$failed\)) | bc )
142echo -n "$res%) "
c823f41c 143echo tests passed, $skipped were skipped