xref: /minix3/external/bsd/bind/dist/bin/tests/system/unknown/tests.sh (revision 00b67f09dd46474d133c95011a48590a8e8f94c7)
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