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