1*00b67f09SDavid van Moolenbroek#!/bin/sh 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Copyright (C) 2004, 2007, 2011-2013 Internet Systems Consortium, Inc. ("ISC") 4*00b67f09SDavid van Moolenbroek# Copyright (C) 2000, 2001 Internet Software Consortium. 5*00b67f09SDavid van Moolenbroek# 6*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any 7*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above 8*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies. 9*00b67f09SDavid van Moolenbroek# 10*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 11*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 12*00b67f09SDavid van Moolenbroek# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 13*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 14*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 15*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 16*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE. 17*00b67f09SDavid van Moolenbroek 18*00b67f09SDavid van Moolenbroek# Id: tests.sh,v 1.12 2011/11/02 23:46:24 tbox Exp 19*00b67f09SDavid van Moolenbroek 20*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.. 21*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 22*00b67f09SDavid van Moolenbroek 23*00b67f09SDavid van Moolenbroekstatus=0 24*00b67f09SDavid van Moolenbroek 25*00b67f09SDavid van MoolenbroekDIGOPTS="-p 5300" 26*00b67f09SDavid van Moolenbroek 27*00b67f09SDavid van Moolenbroekecho "I:querying for various representations of an IN A record" 28*00b67f09SDavid van Moolenbroekfor i in 1 2 3 4 5 6 7 8 9 10 11 12 29*00b67f09SDavid van Moolenbroekdo 30*00b67f09SDavid van Moolenbroek ret=0 31*00b67f09SDavid van Moolenbroek $DIG +short $DIGOPTS @10.53.0.1 a$i.example a in > dig.out || ret=1 32*00b67f09SDavid van Moolenbroek echo 10.0.0.1 | diff - dig.out || ret=1 33*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 34*00b67f09SDavid van Moolenbroek then 35*00b67f09SDavid van Moolenbroek echo "#$i failed" 36*00b67f09SDavid van Moolenbroek fi 37*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 38*00b67f09SDavid van Moolenbroekdone 39*00b67f09SDavid van Moolenbroek 40*00b67f09SDavid van Moolenbroekecho "I:querying for various representations of an IN TXT record" 41*00b67f09SDavid van Moolenbroekfor i in 1 2 3 4 5 6 7 42*00b67f09SDavid van Moolenbroekdo 43*00b67f09SDavid van Moolenbroek ret=0 44*00b67f09SDavid van Moolenbroek $DIG +short $DIGOPTS @10.53.0.1 txt$i.example txt in > dig.out || ret=1 45*00b67f09SDavid van Moolenbroek echo '"hello"' | diff - dig.out || ret=1 46*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 47*00b67f09SDavid van Moolenbroek then 48*00b67f09SDavid van Moolenbroek echo "#$i failed" 49*00b67f09SDavid van Moolenbroek fi 50*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 51*00b67f09SDavid van Moolenbroekdone 52*00b67f09SDavid van Moolenbroek 53*00b67f09SDavid van Moolenbroekecho "I:querying for various representations of an IN TYPE123 record" 54*00b67f09SDavid van Moolenbroekfor i in 1 2 3 55*00b67f09SDavid van Moolenbroekdo 56*00b67f09SDavid van Moolenbroek ret=0 57*00b67f09SDavid van Moolenbroek $DIG +short $DIGOPTS @10.53.0.1 unk$i.example type123 in > dig.out || ret=1 58*00b67f09SDavid van Moolenbroek echo '\# 1 00' | diff - dig.out || ret=1 59*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 60*00b67f09SDavid van Moolenbroek then 61*00b67f09SDavid van Moolenbroek echo "#$i failed" 62*00b67f09SDavid van Moolenbroek fi 63*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 64*00b67f09SDavid van Moolenbroekdone 65*00b67f09SDavid van Moolenbroek 66*00b67f09SDavid van Moolenbroekecho "I:querying for NULL record" 67*00b67f09SDavid van Moolenbroekret=0 68*00b67f09SDavid van Moolenbroek$DIG +short $DIGOPTS @10.53.0.1 null.example null in > dig.out || ret=1 69*00b67f09SDavid van Moolenbroekecho '\# 1 00' | diff - dig.out || ret=1 70*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 71*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 72*00b67f09SDavid van Moolenbroek 73*00b67f09SDavid van Moolenbroekecho "I:querying for empty NULL record" 74*00b67f09SDavid van Moolenbroekret=0 75*00b67f09SDavid van Moolenbroek$DIG +short $DIGOPTS @10.53.0.1 empty.example null in > dig.out || ret=1 76*00b67f09SDavid van Moolenbroekecho '\# 0' | diff - dig.out || ret=1 77*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 78*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 79*00b67f09SDavid van Moolenbroek 80*00b67f09SDavid van Moolenbroekecho "I:querying for various representations of a CLASS10 TYPE1 record" 81*00b67f09SDavid van Moolenbroekfor i in 1 2 82*00b67f09SDavid van Moolenbroekdo 83*00b67f09SDavid van Moolenbroek ret=0 84*00b67f09SDavid van Moolenbroek $DIG +short $DIGOPTS @10.53.0.1 a$i.example a class10 > dig.out || ret=1 85*00b67f09SDavid van Moolenbroek echo '\# 4 0A000001' | diff - dig.out || ret=1 86*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 87*00b67f09SDavid van Moolenbroek then 88*00b67f09SDavid van Moolenbroek echo "#$i failed" 89*00b67f09SDavid van Moolenbroek fi 90*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 91*00b67f09SDavid van Moolenbroekdone 92*00b67f09SDavid van Moolenbroek 93*00b67f09SDavid van Moolenbroekecho "I:querying for various representations of a CLASS10 TXT record" 94*00b67f09SDavid van Moolenbroekfor i in 1 2 3 4 95*00b67f09SDavid van Moolenbroekdo 96*00b67f09SDavid van Moolenbroek ret=0 97*00b67f09SDavid van Moolenbroek $DIG +short $DIGOPTS @10.53.0.1 txt$i.example txt class10 > dig.out || ret=1 98*00b67f09SDavid van Moolenbroek echo '"hello"' | diff - dig.out || ret=1 99*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 100*00b67f09SDavid van Moolenbroek then 101*00b67f09SDavid van Moolenbroek echo "#$i failed" 102*00b67f09SDavid van Moolenbroek fi 103*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 104*00b67f09SDavid van Moolenbroekdone 105*00b67f09SDavid van Moolenbroek 106*00b67f09SDavid van Moolenbroekecho "I:querying for various representations of a CLASS10 TYPE123 record" 107*00b67f09SDavid van Moolenbroekfor i in 1 2 108*00b67f09SDavid van Moolenbroekdo 109*00b67f09SDavid van Moolenbroek ret=0 110*00b67f09SDavid van Moolenbroek $DIG +short $DIGOPTS @10.53.0.1 unk$i.example type123 class10 > dig.out || ret=1 111*00b67f09SDavid van Moolenbroek echo '\# 1 00' | diff - dig.out || ret=1 112*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 113*00b67f09SDavid van Moolenbroek then 114*00b67f09SDavid van Moolenbroek echo "#$i failed" 115*00b67f09SDavid van Moolenbroek fi 116*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 117*00b67f09SDavid van Moolenbroekdone 118*00b67f09SDavid van Moolenbroek 119*00b67f09SDavid van Moolenbroekecho "I:querying for SOAs of zone that should have failed to load" 120*00b67f09SDavid van Moolenbroekfor i in 1 2 3 4 121*00b67f09SDavid van Moolenbroekdo 122*00b67f09SDavid van Moolenbroek ret=0 123*00b67f09SDavid van Moolenbroek $DIG $DIGOPTS @10.53.0.1 broken$i. soa in > dig.out || ret=1 124*00b67f09SDavid van Moolenbroek grep "SERVFAIL" dig.out > /dev/null || ret=1 125*00b67f09SDavid van Moolenbroek if [ $ret != 0 ] 126*00b67f09SDavid van Moolenbroek then 127*00b67f09SDavid van Moolenbroek echo "#$i failed" 128*00b67f09SDavid van Moolenbroek fi 129*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 130*00b67f09SDavid van Moolenbroekdone 131*00b67f09SDavid van Moolenbroek 132*00b67f09SDavid van Moolenbroekecho "I:checking large unknown record loading on master" 133*00b67f09SDavid van Moolenbroekret=0 134*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.1 +tcp +short large.example TYPE45234 > dig.out || { ret=1 ; echo I: dig failed ; } 135*00b67f09SDavid van Moolenbroekdiff -s large.out dig.out > /dev/null || { ret=1 ; echo "I: diff failed"; } 136*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 137*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 138*00b67f09SDavid van Moolenbroek 139*00b67f09SDavid van Moolenbroekecho "I:checking large unknown record loading on slave" 140*00b67f09SDavid van Moolenbroekret=0 141*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.2 +tcp +short large.example TYPE45234 > dig.out || { ret=1 ; echo I: dig failed ; } 142*00b67f09SDavid van Moolenbroekdiff -s large.out dig.out > /dev/null || { ret=1 ; echo "I: diff failed"; } 143*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 144*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 145*00b67f09SDavid van Moolenbroek 146*00b67f09SDavid van Moolenbroekecho "I:stop and restart slave" 147*00b67f09SDavid van Moolenbroek$PERL $SYSTEMTESTTOP/stop.pl . ns2 148*00b67f09SDavid van Moolenbroek$PERL $SYSTEMTESTTOP/start.pl --noclean --restart . ns2 149*00b67f09SDavid van Moolenbroek 150*00b67f09SDavid van Moolenbroekecho "I:checking large unknown record loading on slave" 151*00b67f09SDavid van Moolenbroekret=0 152*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.2 +tcp +short large.example TYPE45234 > dig.out || { ret=1 ; echo I: dig failed ; } 153*00b67f09SDavid van Moolenbroekdiff -s large.out dig.out > /dev/null || { ret=1 ; echo "I: diff failed"; } 154*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 155*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 156*00b67f09SDavid van Moolenbroek 157*00b67f09SDavid van Moolenbroekecho "I:checking large unknown record loading on inline slave" 158*00b67f09SDavid van Moolenbroekret=0 159*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.3 +tcp +short large.example TYPE45234 > dig.out || { ret=1 ; echo I: dig failed ; } 160*00b67f09SDavid van Moolenbroekdiff large.out dig.out > /dev/null || { ret=1 ; echo "I: diff failed"; } 161*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 162*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 163*00b67f09SDavid van Moolenbroek 164*00b67f09SDavid van Moolenbroekecho "I:stop and restart inline slave" 165*00b67f09SDavid van Moolenbroek$PERL $SYSTEMTESTTOP/stop.pl . ns3 166*00b67f09SDavid van Moolenbroek$PERL $SYSTEMTESTTOP/start.pl --noclean --restart . ns3 167*00b67f09SDavid van Moolenbroek 168*00b67f09SDavid van Moolenbroekecho "I:checking large unknown record loading on inline slave" 169*00b67f09SDavid van Moolenbroekret=0 170*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.3 +tcp +short large.example TYPE45234 > dig.out || { ret=1 ; echo I: dig failed ; } 171*00b67f09SDavid van Moolenbroekdiff large.out dig.out > /dev/null || { ret=1 ; echo "I: diff failed"; } 172*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 173*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 174*00b67f09SDavid van Moolenbroek 175*00b67f09SDavid van Moolenbroekecho "I:check that '"'"\\#"'"' is not treated as the unknown escape sequence" 176*00b67f09SDavid van Moolenbroekret=0 177*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.1 +tcp +short txt8.example txt > dig.out 178*00b67f09SDavid van Moolenbroekecho '"#" "2" "0145"' | diff - dig.out || ret=1 179*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 180*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 181*00b67f09SDavid van Moolenbroek 182*00b67f09SDavid van Moolenbroekecho "I:check that 'TXT \# text' is not treated as the unknown escape sequence" 183*00b67f09SDavid van Moolenbroekret=0 184*00b67f09SDavid van Moolenbroek$DIG $DIGOPTS @10.53.0.1 +tcp +short txt9.example txt > dig.out 185*00b67f09SDavid van Moolenbroekecho '"#" "text"' | diff - dig.out || ret=1 186*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 187*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 188*00b67f09SDavid van Moolenbroek 189*00b67f09SDavid van Moolenbroekecho "I:check that 'TYPE353 \# cat' produces 'not a valid number'" 190*00b67f09SDavid van Moolenbroekret=0 191*00b67f09SDavid van Moolenbroek$CHECKZONE nan.bad zones/nan.bad > check.out 2>&1 192*00b67f09SDavid van Moolenbroekgrep "not a valid number" check.out > /dev/null || ret=1 193*00b67f09SDavid van Moolenbroek[ $ret = 0 ] || echo "I: failed" 194*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 195*00b67f09SDavid van Moolenbroek 196*00b67f09SDavid van Moolenbroek 197*00b67f09SDavid van Moolenbroek 198*00b67f09SDavid van Moolenbroekecho "I:exit status: $status" 199*00b67f09SDavid van Moolenbroekexit $status 200