xref: /minix3/external/bsd/bind/dist/bin/tests/system/forward/tests.sh (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2007, 2011-2014  Internet Systems Consortium, Inc. ("ISC")
2*00b67f09SDavid van Moolenbroek# Copyright (C) 2000, 2001  Internet Software Consortium.
3*00b67f09SDavid van Moolenbroek#
4*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any
5*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above
6*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies.
7*00b67f09SDavid van Moolenbroek#
8*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10*00b67f09SDavid van Moolenbroek# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
11*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
13*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE.
15*00b67f09SDavid van Moolenbroek
16*00b67f09SDavid van Moolenbroek# Id: tests.sh,v 1.9 2011/10/13 22:48:23 tbox Exp
17*00b67f09SDavid van Moolenbroek
18*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=..
19*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh
20*00b67f09SDavid van Moolenbroek
21*00b67f09SDavid van Moolenbroekroot=10.53.0.1
22*00b67f09SDavid van Moolenbroekhidden=10.53.0.2
23*00b67f09SDavid van Moolenbroekf1=10.53.0.3
24*00b67f09SDavid van Moolenbroekf2=10.53.0.4
25*00b67f09SDavid van Moolenbroek
26*00b67f09SDavid van Moolenbroekstatus=0
27*00b67f09SDavid van Moolenbroek
28*00b67f09SDavid van Moolenbroekecho "I:checking that a forward zone overrides global forwarders"
29*00b67f09SDavid van Moolenbroekret=0
30*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$hidden -p 5300 > dig.out.hidden || ret=1
31*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$f1 -p 5300 > dig.out.f1 || ret=1
32*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f1 || ret=1
33*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
34*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
35*00b67f09SDavid van Moolenbroek
36*00b67f09SDavid van Moolenbroekecho "I:checking that a forward first zone no forwarders recurses"
37*00b67f09SDavid van Moolenbroekret=0
38*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$root -p 5300 > dig.out.root || ret=1
39*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$f1 -p 5300 > dig.out.f1 || ret=1
40*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.root dig.out.f1 || ret=1
41*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
42*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
43*00b67f09SDavid van Moolenbroek
44*00b67f09SDavid van Moolenbroekecho "I:checking that a forward only zone no forwarders fails"
45*00b67f09SDavid van Moolenbroekret=0
46*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$root -p 5300 > dig.out.root || ret=1
47*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$f1 -p 5300 > dig.out.f1 || ret=1
48*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.root dig.out.f1 || ret=1
49*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
50*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
51*00b67f09SDavid van Moolenbroek
52*00b67f09SDavid van Moolenbroekecho "I:checking that global forwarders work"
53*00b67f09SDavid van Moolenbroekret=0
54*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example4. txt @$hidden -p 5300 > dig.out.hidden || ret=1
55*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example4. txt @$f1 -p 5300 > dig.out.f1 || ret=1
56*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f1 || ret=1
57*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
58*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
59*00b67f09SDavid van Moolenbroek
60*00b67f09SDavid van Moolenbroekecho "I:checking that a forward zone works"
61*00b67f09SDavid van Moolenbroekret=0
62*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$hidden -p 5300 > dig.out.hidden || ret=1
63*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example1. txt @$f2 -p 5300 > dig.out.f2 || ret=1
64*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f2 || ret=1
65*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
66*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
67*00b67f09SDavid van Moolenbroek
68*00b67f09SDavid van Moolenbroekecho "I:checking that forwarding doesn't spontaneously happen"
69*00b67f09SDavid van Moolenbroekret=0
70*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$root -p 5300 > dig.out.root || ret=1
71*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example2. txt @$f2 -p 5300 > dig.out.f2 || ret=1
72*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.root dig.out.f2 || ret=1
73*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
74*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
75*00b67f09SDavid van Moolenbroek
76*00b67f09SDavid van Moolenbroekecho "I:checking that a forward zone with no specified policy works"
77*00b67f09SDavid van Moolenbroekret=0
78*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example3. txt @$hidden -p 5300 > dig.out.hidden || ret=1
79*00b67f09SDavid van Moolenbroek$DIG +noadd +noauth txt.example3. txt @$f2 -p 5300 > dig.out.f2 || ret=1
80*00b67f09SDavid van Moolenbroek$PERL ../digcomp.pl dig.out.hidden dig.out.f2 || ret=1
81*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
82*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
83*00b67f09SDavid van Moolenbroek
84*00b67f09SDavid van Moolenbroekecho "I:checking that a forward only doesn't recurse"
85*00b67f09SDavid van Moolenbroekret=0
86*00b67f09SDavid van Moolenbroek$DIG txt.example5. txt @$f2 -p 5300 > dig.out.f2 || ret=1
87*00b67f09SDavid van Moolenbroekgrep "SERVFAIL" dig.out.f2 > /dev/null || ret=1
88*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
89*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
90*00b67f09SDavid van Moolenbroek
91*00b67f09SDavid van Moolenbroekecho "I:checking for negative caching of forwarder response"
92*00b67f09SDavid van Moolenbroek# prime the cache, shutdown the forwarder then check that we can
93*00b67f09SDavid van Moolenbroek# get the answer from the cache.  restart forwarder.
94*00b67f09SDavid van Moolenbroekret=0
95*00b67f09SDavid van Moolenbroek$DIG nonexist. txt @10.53.0.5 -p 5300 > dig.out.f2 || ret=1
96*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.f2 > /dev/null || ret=1
97*00b67f09SDavid van Moolenbroek$PERL ../stop.pl . ns4 || ret=1
98*00b67f09SDavid van Moolenbroek$DIG nonexist. txt @10.53.0.5 -p 5300 > dig.out.f2 || ret=1
99*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.f2 > /dev/null || ret=1
100*00b67f09SDavid van Moolenbroek$PERL ../start.pl --restart --noclean . ns4 || ret=1
101*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
102*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
103*00b67f09SDavid van Moolenbroek
104*00b67f09SDavid van Moolenbroekecho "I:checking that forward only zone overrides empty zone"
105*00b67f09SDavid van Moolenbroekret=0
106*00b67f09SDavid van Moolenbroek$DIG 1.0.10.in-addr.arpa TXT @10.53.0.4 -p 5300 > dig.out.f2
107*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.f2 > /dev/null || ret=1
108*00b67f09SDavid van Moolenbroek$DIG 2.0.10.in-addr.arpa TXT @10.53.0.4 -p 5300 > dig.out.f2
109*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.f2 > /dev/null || ret=1
110*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
111*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
112*00b67f09SDavid van Moolenbroek
113*00b67f09SDavid van Moolenbroekecho "I:checking that DS lookups for grafting forward zones are isolated"
114*00b67f09SDavid van Moolenbroekret=0
115*00b67f09SDavid van Moolenbroek$DIG grafted A @10.53.0.4 -p 5300 > dig.out.q1
116*00b67f09SDavid van Moolenbroek$DIG grafted DS @10.53.0.4 -p 5300 > dig.out.q2
117*00b67f09SDavid van Moolenbroek$DIG grafted A @10.53.0.4 -p 5300 > dig.out.q3
118*00b67f09SDavid van Moolenbroek$DIG grafted AAAA @10.53.0.4 -p 5300 > dig.out.q4
119*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.q1 > /dev/null || ret=1
120*00b67f09SDavid van Moolenbroekgrep "status: NXDOMAIN" dig.out.q2 > /dev/null || ret=1
121*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.q3 > /dev/null || ret=1
122*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.q4 > /dev/null || ret=1
123*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi
124*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret`
125*00b67f09SDavid van Moolenbroek
126*00b67f09SDavid van Moolenbroekecho "I:exit status: $status"
127*00b67f09SDavid van Moolenbroekexit $status
128