xref: /minix3/external/bsd/bind/dist/bin/tests/system/builtin/tests.sh (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
1*00b67f09SDavid van Moolenbroek# Copyright (C) 2011, 2012, 2014  Internet Systems Consortium, Inc. ("ISC")
2*00b67f09SDavid van Moolenbroek#
3*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any
4*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above
5*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies.
6*00b67f09SDavid van Moolenbroek#
7*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
8*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9*00b67f09SDavid van Moolenbroek# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
10*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
12*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE.
14*00b67f09SDavid van Moolenbroek
15*00b67f09SDavid van Moolenbroek# Id: tests.sh,v 1.3 2011/08/09 04:12:25 tbox Exp
16*00b67f09SDavid van Moolenbroek
17*00b67f09SDavid van Moolenbroekstatus=0
18*00b67f09SDavid van Moolenbroekn=0
19*00b67f09SDavid van Moolenbroek
20*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
21*00b67f09SDavid van Moolenbroekecho "I:Checking that reconfiguring empty zones is silent ($n)"
22*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reconfig
23*00b67f09SDavid van Moolenbroekret=0
24*00b67f09SDavid van Moolenbroekgrep "automatic empty zone" ns1/named.run > /dev/null || ret=1
25*00b67f09SDavid van Moolenbroekgrep "received control channel command 'reconfig'" ns1/named.run > /dev/null || ret=1
26*00b67f09SDavid van Moolenbroekgrep "reloading configuration succeeded" ns1/named.run > /dev/null || ret=1
27*00b67f09SDavid van Moolenbroeksleep 1
28*00b67f09SDavid van Moolenbroekgrep "zone serial (0) unchanged." ns1/named.run > /dev/null && ret=1
29*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
30*00b67f09SDavid van Moolenbroek
31*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
32*00b67f09SDavid van Moolenbroekecho "I:Checking that reloading empty zones is silent ($n)"
33*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 reload > /dev/null
34*00b67f09SDavid van Moolenbroekret=0
35*00b67f09SDavid van Moolenbroekgrep "automatic empty zone" ns1/named.run > /dev/null || ret=1
36*00b67f09SDavid van Moolenbroekgrep "received control channel command 'reload'" ns1/named.run > /dev/null || ret=1
37*00b67f09SDavid van Moolenbroekgrep "reloading configuration succeeded" ns1/named.run > /dev/null || ret=1
38*00b67f09SDavid van Moolenbroeksleep 1
39*00b67f09SDavid van Moolenbroekgrep "zone serial (0) unchanged." ns1/named.run > /dev/null && ret=1
40*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
41*00b67f09SDavid van Moolenbroek
42*00b67f09SDavid van MoolenbroekVERSION=`../../../../isc-config.sh  --version | cut -d = -f 2`
43*00b67f09SDavid van MoolenbroekHOSTNAME=`./gethostname`
44*00b67f09SDavid van Moolenbroek
45*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
46*00b67f09SDavid van Moolenbroekret=0
47*00b67f09SDavid van Moolenbroekecho "I:Checking that default version works for rndc ($n)"
48*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.1 -p 9953 status > rndc.status.ns1.$n 2>&1
49*00b67f09SDavid van Moolenbroekgrep "^version: $VERSION " rndc.status.ns1.$n > /dev/null || ret=1
50*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
51*00b67f09SDavid van Moolenbroek
52*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
53*00b67f09SDavid van Moolenbroekret=0
54*00b67f09SDavid van Moolenbroekecho "I:Checking that custom version works for rndc ($n)"
55*00b67f09SDavid van Moolenbroek$RNDC -c ../common/rndc.conf -s 10.53.0.3 -p 9953 status > rndc.status.ns3.$n 2>&1
56*00b67f09SDavid van Moolenbroekgrep "^version: $VERSION (this is a test of version) " rndc.status.ns3.$n > /dev/null || ret=1
57*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
58*00b67f09SDavid van Moolenbroek
59*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
60*00b67f09SDavid van Moolenbroekret=0
61*00b67f09SDavid van Moolenbroekecho "I:Checking that default version works for query ($n)"
62*00b67f09SDavid van Moolenbroek$DIG +short version.bind txt ch @10.53.0.1 -p 5300 > dig.out.ns1.$n
63*00b67f09SDavid van Moolenbroekgrep "^\"$VERSION\"$" dig.out.ns1.$n > /dev/null || ret=1
64*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
65*00b67f09SDavid van Moolenbroek
66*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
67*00b67f09SDavid van Moolenbroekret=0
68*00b67f09SDavid van Moolenbroekecho "I:Checking that custom version works for query ($n)"
69*00b67f09SDavid van Moolenbroek$DIG +short version.bind txt ch @10.53.0.3 -p 5300 > dig.out.ns3.$n
70*00b67f09SDavid van Moolenbroekgrep "^\"this is a test of version\"$" dig.out.ns3.$n > /dev/null || ret=1
71*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
72*00b67f09SDavid van Moolenbroek
73*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
74*00b67f09SDavid van Moolenbroekret=0
75*00b67f09SDavid van Moolenbroekecho "I:Checking that default hostname works for query ($n)"
76*00b67f09SDavid van Moolenbroek$DIG +short hostname.bind txt ch @10.53.0.1 -p 5300 > dig.out.ns1.$n
77*00b67f09SDavid van Moolenbroekgrep "^\"$HOSTNAME\"$" dig.out.ns1.$n > /dev/null || ret=1
78*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
79*00b67f09SDavid van Moolenbroek
80*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
81*00b67f09SDavid van Moolenbroekret=0
82*00b67f09SDavid van Moolenbroekecho "I:Checking that custom hostname works for query ($n)"
83*00b67f09SDavid van Moolenbroek$DIG +short hostname.bind txt ch @10.53.0.3 -p 5300 > dig.out.ns3.$n
84*00b67f09SDavid van Moolenbroekgrep "^\"this.is.a.test.of.hostname\"$" dig.out.ns3.$n > /dev/null || ret=1
85*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
86*00b67f09SDavid van Moolenbroek
87*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
88*00b67f09SDavid van Moolenbroekret=0
89*00b67f09SDavid van Moolenbroekecho "I:Checking that default server-id is none for query ($n)"
90*00b67f09SDavid van Moolenbroek$DIG id.server txt ch @10.53.0.1 -p 5300 > dig.out.ns1.$n
91*00b67f09SDavid van Moolenbroekgrep "status: NOERROR" dig.out.ns1.$n > /dev/null || ret=1
92*00b67f09SDavid van Moolenbroekgrep "ANSWER: 0" dig.out.ns1.$n > /dev/null || ret=1
93*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
94*00b67f09SDavid van Moolenbroek
95*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
96*00b67f09SDavid van Moolenbroekret=0
97*00b67f09SDavid van Moolenbroekecho "I:Checking that server-id hostname works for query ($n)"
98*00b67f09SDavid van Moolenbroek$DIG +short id.server txt ch @10.53.0.2 -p 5300 > dig.out.ns2.$n
99*00b67f09SDavid van Moolenbroekgrep "^\"$HOSTNAME\"$" dig.out.ns2.$n > /dev/null || ret=1
100*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
101*00b67f09SDavid van Moolenbroek
102*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
103*00b67f09SDavid van Moolenbroekret=0
104*00b67f09SDavid van Moolenbroekecho "I:Checking that server-id hostname works for EDNS name server ID request ($n)"
105*00b67f09SDavid van Moolenbroek$DIG +norec +nsid foo @10.53.0.2 -p 5300 > dig.out.ns2.$n
106*00b67f09SDavid van Moolenbroekgrep "^; NSID: .* (\"$HOSTNAME\")$" dig.out.ns2.$n > /dev/null || ret=1
107*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
108*00b67f09SDavid van Moolenbroek
109*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
110*00b67f09SDavid van Moolenbroekret=0
111*00b67f09SDavid van Moolenbroekecho "I:Checking that custom server-id works for query ($n)"
112*00b67f09SDavid van Moolenbroek$DIG +short id.server txt ch @10.53.0.3 -p 5300 > dig.out.ns3.$n
113*00b67f09SDavid van Moolenbroekgrep "^\"this.is.a.test.of.server-id\"$" dig.out.ns3.$n > /dev/null || ret=1
114*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
115*00b67f09SDavid van Moolenbroek
116*00b67f09SDavid van Moolenbroekn=`expr $n + 1`
117*00b67f09SDavid van Moolenbroekret=0
118*00b67f09SDavid van Moolenbroekecho "I:Checking that custom server-id works for EDNS name server ID request ($n)"
119*00b67f09SDavid van Moolenbroek$DIG +norec +nsid foo @10.53.0.3 -p 5300 > dig.out.ns3.$n
120*00b67f09SDavid van Moolenbroekgrep "^; NSID: .* (\"this.is.a.test.of.server-id\")$" dig.out.ns3.$n > /dev/null || ret=1
121*00b67f09SDavid van Moolenbroekif [ $ret != 0 ] ; then echo I:failed; status=`expr $status + $ret`; fi
122*00b67f09SDavid van Moolenbroek
123*00b67f09SDavid van Moolenbroekexit $status
124