tests.sh revision 1.1.1.1 1 # Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2 #
3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 #
7 # See the COPYRIGHT file distributed with this work for additional
8 # information regarding copyright ownership.
9
10 SYSTEMTESTTOP=..
11 . $SYSTEMTESTTOP/conf.sh
12
13 DIGOPTS="-p ${PORT}"
14
15 status=0
16 n=0
17
18 n=`expr $n + 1`
19 echo_i "check lookups against TTL=0 records ($n)"
20 i=0
21 passes=10
22 $DIG $DIGOPTS @10.53.0.2 axfr example | grep -v "^ds0" |
23 awk '$2 == "0" { print "-q", $1, $4; print "-q", "zzz"$1, $4;}' > query.list
24 while [ $i -lt $passes ]
25 do
26 ret=0
27 $DIG $DIGOPTS @10.53.0.3 -f query.list > dig.out$i.1.test$n &
28 $DIG $DIGOPTS @10.53.0.3 -f query.list > dig.out$i.2.test$n &
29 $DIG $DIGOPTS @10.53.0.3 -f query.list > dig.out$i.3.test$n &
30 $DIG $DIGOPTS @10.53.0.3 -f query.list > dig.out$i.4.test$n &
31 $DIG $DIGOPTS @10.53.0.3 -f query.list > dig.out$i.5.test$n &
32 $DIG $DIGOPTS @10.53.0.3 -f query.list > dig.out$i.6.test$n &
33 wait
34 grep "status: SERVFAIL" dig.out$i.1.test$n && ret=1
35 grep "status: SERVFAIL" dig.out$i.2.test$n && ret=1
36 grep "status: SERVFAIL" dig.out$i.3.test$n && ret=1
37 grep "status: SERVFAIL" dig.out$i.4.test$n && ret=1
38 grep "status: SERVFAIL" dig.out$i.5.test$n && ret=1
39 grep "status: SERVFAIL" dig.out$i.6.test$n && ret=1
40 [ $ret = 1 ] && break
41 i=`expr $i + 1`
42 echo_i "successfully completed pass $i of $passes"
43 done
44 if [ $ret != 0 ]; then echo_i "failed"; fi
45 status=`expr $status + $ret`
46
47 n=`expr $n + 1`
48 echo_i "check repeated recursive lookups of non recurring TTL=0 responses get new values ($n)"
49 count=`(
50 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
51 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
52 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
53 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
54 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
55 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
56 $DIG $DIGOPTS +short @10.53.0.3 foo.increment
57 ) | sort -u | wc -l `
58 if [ $count -ne 7 ] ; then echo_i "failed (count=$count)"; ret=1; fi
59 status=`expr $status + $ret`
60
61 n=`expr $n + 1`
62 echo_i "check lookups against TTL=1 records ($n)"
63 i=0
64 passes=10
65 while [ $i -lt $passes ]
66 do
67 ret=0
68 $DIG $DIGOPTS @10.53.0.3 www.one.tld > dig.out$i.1.test$n
69 $DIG $DIGOPTS @10.53.0.3 www.one.tld > dig.out$i.2.test$n
70 $DIG $DIGOPTS @10.53.0.3 www.one.tld > dig.out$i.3.test$n
71 $DIG $DIGOPTS @10.53.0.3 www.one.tld > dig.out$i.4.test$n
72 $DIG $DIGOPTS @10.53.0.3 www.one.tld > dig.out$i.5.test$n
73 $DIG $DIGOPTS @10.53.0.3 www.one.tld > dig.out$i.6.test$n
74 grep "status: SERVFAIL" dig.out$i.1.test$n && ret=1
75 grep "status: SERVFAIL" dig.out$i.2.test$n && ret=1
76 grep "status: SERVFAIL" dig.out$i.3.test$n && ret=1
77 grep "status: SERVFAIL" dig.out$i.4.test$n && ret=1
78 grep "status: SERVFAIL" dig.out$i.5.test$n && ret=1
79 grep "status: SERVFAIL" dig.out$i.6.test$n && ret=1
80 [ $ret = 1 ] && break
81 i=`expr $i + 1`
82 echo_i "successfully completed pass $i of $passes"
83 $PERL -e 'select(undef, undef, undef, 0.3);'
84 done
85 if [ $ret != 0 ]; then echo_i "failed"; fi
86 status=`expr $status + $ret`
87
88 echo_i "exit status: $status"
89 [ $status -eq 0 ] || exit 1
90