tests.sh revision 1.1.1.2 1 #!/bin/sh
2 #
3 # Copyright (C) Internet Systems Consortium, Inc. ("ISC")
4 #
5 # This Source Code Form is subject to the terms of the Mozilla Public
6 # License, v. 2.0. If a copy of the MPL was not distributed with this
7 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 #
9 # See the COPYRIGHT file distributed with this work for additional
10 # information regarding copyright ownership.
11
12 SYSTEMTESTTOP=..
13 . $SYSTEMTESTTOP/conf.sh
14
15 RNDCCMD="$RNDC -c $SYSTEMTESTTOP/common/rndc.conf -p ${CONTROLPORT} -s"
16
17 status=0
18 n=0
19
20 #echo_i "check ans.pl server ($n)"
21 #$DIG -p ${PORT} @10.53.0.2 example NS
22 #$DIG -p ${PORT} @10.53.0.2 example SOA
23 #$DIG -p ${PORT} @10.53.0.2 ns.example A
24 #$DIG -p ${PORT} @10.53.0.2 ns.example AAAA
25 #$DIG -p ${PORT} @10.53.0.2 txt enable
26 #$DIG -p ${PORT} @10.53.0.2 txt disable
27 #$DIG -p ${PORT} @10.53.0.2 ns.example AAAA
28 #$DIG -p ${PORT} @10.53.0.2 txt enable
29 #$DIG -p ${PORT} @10.53.0.2 ns.example AAAA
30 ##$DIG -p ${PORT} @10.53.0.2 data.example TXT
31 #$DIG -p ${PORT} @10.53.0.2 nodata.example TXT
32 #$DIG -p ${PORT} @10.53.0.2 nxdomain.example TXT
33
34 n=`expr $n + 1`
35 echo_i "prime cache data.example ($n)"
36 ret=0
37 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
38 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
39 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
40 if [ $ret != 0 ]; then echo_i "failed"; fi
41 status=`expr $status + $ret`
42
43 n=`expr $n + 1`
44 echo_i "prime cache nodata.example ($n)"
45 ret=0
46 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
47 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
48 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
49 if [ $ret != 0 ]; then echo_i "failed"; fi
50 status=`expr $status + $ret`
51
52 n=`expr $n + 1`
53 echo_i "prime cache nxdomain.example ($n)"
54 ret=0
55 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
56 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
57 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
58 if [ $ret != 0 ]; then echo_i "failed"; fi
59 status=`expr $status + $ret`
60
61 n=`expr $n + 1`
62 echo_i "disable responses from authoritative server ($n)"
63 ret=0
64 $DIG -p ${PORT} @10.53.0.2 txt disable > dig.out.test$n
65 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
66 grep "TXT.\"0\"" dig.out.test$n > /dev/null || ret=1
67 if [ $ret != 0 ]; then echo_i "failed"; fi
68 status=`expr $status + $ret`
69
70 sleep 1
71
72 n=`expr $n + 1`
73 echo_i "check 'rndc serve-stale status' ($n)"
74 ret=0
75 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
76 grep '_default: on (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
77 if [ $ret != 0 ]; then echo_i "failed"; fi
78 status=`expr $status + $ret`
79
80 n=`expr $n + 1`
81 echo_i "check stale data.example ($n)"
82 ret=0
83 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
84 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
85 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
86 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
87 if [ $ret != 0 ]; then echo_i "failed"; fi
88 status=`expr $status + $ret`
89
90 n=`expr $n + 1`
91 echo_i "check stale nodata.example ($n)"
92 ret=0
93 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
94 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
95 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
96 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
97 if [ $ret != 0 ]; then echo_i "failed"; fi
98 status=`expr $status + $ret`
99
100 n=`expr $n + 1`
101 echo_i "check stale nxdomain.example ($n)"
102 ret=0
103 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
104 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
105 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
106 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
107 if [ $ret != 0 ]; then echo_i "failed"; fi
108 status=`expr $status + $ret`
109
110 n=`expr $n + 1`
111 echo_i "running 'rndc serve-stale off' ($n)"
112 ret=0
113 $RNDCCMD 10.53.0.1 serve-stale off || ret=1
114 if [ $ret != 0 ]; then echo_i "failed"; fi
115 status=`expr $status + $ret`
116
117 n=`expr $n + 1`
118 echo_i "check 'rndc serve-stale status' ($n)"
119 ret=0
120 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
121 grep '_default: off (rndc) (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
122 if [ $ret != 0 ]; then echo_i "failed"; fi
123 status=`expr $status + $ret`
124
125 n=`expr $n + 1`
126 echo_i "check stale data.example (serve-stale off) ($n)"
127 ret=0
128 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
129 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
130 if [ $ret != 0 ]; then echo_i "failed"; fi
131 status=`expr $status + $ret`
132 if [ $ret != 0 ]; then echo_i "failed"; fi
133 status=`expr $status + $ret`
134
135 n=`expr $n + 1`
136 echo_i "check stale nodata.example (serve-stale off) ($n)"
137 ret=0
138 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
139 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
140 if [ $ret != 0 ]; then echo_i "failed"; fi
141 status=`expr $status + $ret`
142
143 n=`expr $n + 1`
144 echo_i "check stale nxdomain.example (serve-stale off) ($n)"
145 ret=0
146 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
147 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
148 if [ $ret != 0 ]; then echo_i "failed"; fi
149 status=`expr $status + $ret`
150
151 n=`expr $n + 1`
152 echo_i "running 'rndc serve-stale on' ($n)"
153 ret=0
154 $RNDCCMD 10.53.0.1 serve-stale on || ret=1
155 if [ $ret != 0 ]; then echo_i "failed"; fi
156 status=`expr $status + $ret`
157
158 n=`expr $n + 1`
159 echo_i "check 'rndc serve-stale status' ($n)"
160 ret=0
161 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
162 grep '_default: on (rndc) (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
163 if [ $ret != 0 ]; then echo_i "failed"; fi
164 status=`expr $status + $ret`
165
166 n=`expr $n + 1`
167 echo_i "check stale data.example (serve-stale on) ($n)"
168 ret=0
169 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
170 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
171 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
172 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
173 if [ $ret != 0 ]; then echo_i "failed"; fi
174 status=`expr $status + $ret`
175
176 n=`expr $n + 1`
177 echo_i "check stale nodata.example (serve-stale on) ($n)"
178 ret=0
179 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
180 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
181 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
182 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
183 if [ $ret != 0 ]; then echo_i "failed"; fi
184 status=`expr $status + $ret`
185
186 n=`expr $n + 1`
187 echo_i "check stale nxdomain.example (serve-stale on) ($n)"
188 ret=0
189 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
190 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
191 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
192 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
193 if [ $ret != 0 ]; then echo_i "failed"; fi
194 status=`expr $status + $ret`
195
196 n=`expr $n + 1`
197 echo_i "running 'rndc serve-stale no' ($n)"
198 ret=0
199 $RNDCCMD 10.53.0.1 serve-stale no || ret=1
200 if [ $ret != 0 ]; then echo_i "failed"; fi
201 status=`expr $status + $ret`
202
203 n=`expr $n + 1`
204 echo_i "check 'rndc serve-stale status' ($n)"
205 ret=0
206 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
207 grep '_default: off (rndc) (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
208 if [ $ret != 0 ]; then echo_i "failed"; fi
209 status=`expr $status + $ret`
210
211 n=`expr $n + 1`
212 echo_i "check stale data.example (serve-stale no) ($n)"
213 ret=0
214 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
215 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
216 if [ $ret != 0 ]; then echo_i "failed"; fi
217 status=`expr $status + $ret`
218
219 n=`expr $n + 1`
220 echo_i "check stale nodata.example (serve-stale no) ($n)"
221 ret=0
222 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
223 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
224 if [ $ret != 0 ]; then echo_i "failed"; fi
225 status=`expr $status + $ret`
226
227 n=`expr $n + 1`
228 echo_i "check stale nxdomain.example (serve-stale no) ($n)"
229 ret=0
230 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
231 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
232 if [ $ret != 0 ]; then echo_i "failed"; fi
233 status=`expr $status + $ret`
234
235 n=`expr $n + 1`
236 echo_i "running 'rndc serve-stale yes' ($n)"
237 ret=0
238 $RNDCCMD 10.53.0.1 serve-stale yes || ret=1
239 if [ $ret != 0 ]; then echo_i "failed"; fi
240 status=`expr $status + $ret`
241
242 n=`expr $n + 1`
243 echo_i "check 'rndc serve-stale status' ($n)"
244 ret=0
245 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
246 grep '_default: on (rndc) (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
247 if [ $ret != 0 ]; then echo_i "failed"; fi
248 status=`expr $status + $ret`
249
250 n=`expr $n + 1`
251 echo_i "check stale data.example (serve-stale yes) ($n)"
252 ret=0
253 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
254 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
255 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
256 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
257 if [ $ret != 0 ]; then echo_i "failed"; fi
258 status=`expr $status + $ret`
259
260 n=`expr $n + 1`
261 echo_i "check stale nodata.example (serve-stale yes) ($n)"
262 ret=0
263 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
264 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
265 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
266 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
267 if [ $ret != 0 ]; then echo_i "failed"; fi
268 status=`expr $status + $ret`
269
270 n=`expr $n + 1`
271 echo_i "check stale nxdomain.example (serve-stale yes) ($n)"
272 ret=0
273 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
274 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
275 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
276 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
277 if [ $ret != 0 ]; then echo_i "failed"; fi
278 status=`expr $status + $ret`
279
280 n=`expr $n + 1`
281 echo_i "running 'rndc serve-stale off' ($n)"
282 ret=0
283 $RNDCCMD 10.53.0.1 serve-stale off || ret=1
284 if [ $ret != 0 ]; then echo_i "failed"; fi
285 status=`expr $status + $ret`
286
287 n=`expr $n + 1`
288 echo_i "running 'rndc serve-stale reset' ($n)"
289 ret=0
290 $RNDCCMD 10.53.0.1 serve-stale reset || ret=1
291 if [ $ret != 0 ]; then echo_i "failed"; fi
292 status=`expr $status + $ret`
293
294 n=`expr $n + 1`
295 echo_i "check 'rndc serve-stale status' ($n)"
296 ret=0
297 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
298 grep '_default: on (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
299 if [ $ret != 0 ]; then echo_i "failed"; fi
300 status=`expr $status + $ret`
301
302 n=`expr $n + 1`
303 echo_i "check stale data.example (serve-stale reset) ($n)"
304 ret=0
305 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
306 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
307 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
308 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
309 if [ $ret != 0 ]; then echo_i "failed"; fi
310 status=`expr $status + $ret`
311
312 n=`expr $n + 1`
313 echo_i "check stale nodata.example (serve-stale reset) ($n)"
314 ret=0
315 $DIG -p ${PORT} @10.53.0.1 nodata.example TXT > dig.out.test$n
316 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
317 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
318 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
319 if [ $ret != 0 ]; then echo_i "failed"; fi
320 status=`expr $status + $ret`
321
322 n=`expr $n + 1`
323 echo_i "check stale nxdomain.example (serve-stale reset) ($n)"
324 ret=0
325 $DIG -p ${PORT} @10.53.0.1 nxdomain.example TXT > dig.out.test$n
326 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
327 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
328 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
329 if [ $ret != 0 ]; then echo_i "failed"; fi
330 status=`expr $status + $ret`
331
332 n=`expr $n + 1`
333 echo_i "running 'rndc serve-stale off' ($n)"
334 ret=0
335 $RNDCCMD 10.53.0.1 serve-stale off || ret=1
336 if [ $ret != 0 ]; then echo_i "failed"; fi
337 status=`expr $status + $ret`
338
339 n=`expr $n + 1`
340 echo_i "check 'rndc serve-stale status' ($n)"
341 ret=0
342 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
343 grep '_default: off (rndc) (stale-answer-ttl=1 max-stale-ttl=3600)' rndc.out.test$n > /dev/null || ret=1
344 if [ $ret != 0 ]; then echo_i "failed"; fi
345 status=`expr $status + $ret`
346
347 n=`expr $n + 1`
348 echo_i "updating ns1/named.conf ($n)"
349 ret=0
350 copy_setports ns1/named2.conf.in ns1/named.conf
351 if [ $ret != 0 ]; then echo_i "failed"; fi
352 status=`expr $status + $ret`
353
354 n=`expr $n + 1`
355 echo_i "running 'rndc reload' ($n)"
356 ret=0
357 $RNDCCMD 10.53.0.1 reload > rndc.out.test$n 2>&1 || ret=1
358 grep "server reload successful" rndc.out.test$n > /dev/null || ret=1
359 if [ $ret != 0 ]; then echo_i "failed"; fi
360 status=`expr $status + $ret`
361
362 n=`expr $n + 1`
363 echo_i "check 'rndc serve-stale status' ($n)"
364 ret=0
365 $RNDCCMD 10.53.0.1 serve-stale status > rndc.out.test$n 2>&1 || ret=1
366 grep '_default: off (rndc) (stale-answer-ttl=2 max-stale-ttl=7200)' rndc.out.test$n > /dev/null || ret=1
367 if [ $ret != 0 ]; then echo_i "failed"; fi
368 status=`expr $status + $ret`
369
370 n=`expr $n + 1`
371 echo_i "check 'rndc serve-stale' ($n)"
372 ret=0
373 $RNDCCMD 10.53.0.1 serve-stale > rndc.out.test$n 2>&1 && ret=1
374 grep "unexpected end of input" rndc.out.test$n > /dev/null || ret=1
375 if [ $ret != 0 ]; then echo_i "failed"; fi
376 status=`expr $status + $ret`
377
378 n=`expr $n + 1`
379 echo_i "check 'rndc serve-stale unknown' ($n)"
380 ret=0
381 $RNDCCMD 10.53.0.1 serve-stale unknown > rndc.out.test$n 2>&1 && ret=1
382 grep "syntax error" rndc.out.test$n > /dev/null || ret=1
383 if [ $ret != 0 ]; then echo_i "failed"; fi
384 status=`expr $status + $ret`
385
386 n=`expr $n + 1`
387 echo_i "flush cache, re-enable serve-stale and query again ($n)"
388 ret=0
389 $RNDCCMD 10.53.0.1 flushtree example > rndc.out.test$n.1 2>&1 || ret=1
390 $RNDCCMD 10.53.0.1 serve-stale on > rndc.out.test$n.2 2>&1 || ret=1
391 $DIG -p ${PORT} @10.53.0.1 data.example TXT > dig.out.test$n
392 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
393 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
394 if [ $ret != 0 ]; then echo_i "failed"; fi
395 status=`expr $status + $ret`
396
397 n=`expr $n + 1`
398 echo_i "enable responses from authoritative server ($n)"
399 ret=0
400 $DIG -p ${PORT} @10.53.0.2 txt enable > dig.out.test$n
401 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
402 grep "TXT.\"1\"" dig.out.test$n > /dev/null || ret=1
403 if [ $ret != 0 ]; then echo_i "failed"; fi
404 status=`expr $status + $ret`
405
406 n=`expr $n + 1`
407 echo_i "prime cache data.example (max-stale-ttl default) ($n)"
408 ret=0
409 $DIG -p ${PORT} @10.53.0.3 data.example TXT > dig.out.test$n
410 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
411 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
412 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
413 if [ $ret != 0 ]; then echo_i "failed"; fi
414 status=`expr $status + $ret`
415
416 n=`expr $n + 1`
417 echo_i "prime cache nodata.example (max-stale-ttl default) ($n)"
418 ret=0
419 $DIG -p ${PORT} @10.53.0.3 nodata.example TXT > dig.out.test$n
420 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
421 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
422 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
423 if [ $ret != 0 ]; then echo_i "failed"; fi
424 status=`expr $status + $ret`
425
426 n=`expr $n + 1`
427 echo_i "prime cache nxdomain.example (max-stale-ttl default) ($n)"
428 ret=0
429 $DIG -p ${PORT} @10.53.0.3 nxdomain.example TXT > dig.out.test$n
430 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
431 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
432 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
433 if [ $ret != 0 ]; then echo_i "failed"; fi
434 status=`expr $status + $ret`
435
436 n=`expr $n + 1`
437 echo_i "disable responses from authoritative server ($n)"
438 ret=0
439 $DIG -p ${PORT} @10.53.0.2 txt disable > dig.out.test$n
440 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
441 grep "TXT.\"0\"" dig.out.test$n > /dev/null || ret=1
442 if [ $ret != 0 ]; then echo_i "failed"; fi
443 status=`expr $status + $ret`
444
445 sleep 1
446
447 n=`expr $n + 1`
448 echo_i "check 'rndc serve-stale status' ($n)"
449 ret=0
450 $RNDCCMD 10.53.0.3 serve-stale status > rndc.out.test$n 2>&1 || ret=1
451 grep '_default: off (stale-answer-ttl=1 max-stale-ttl=604800)' rndc.out.test$n > /dev/null || ret=1
452 if [ $ret != 0 ]; then echo_i "failed"; fi
453 status=`expr $status + $ret`
454
455 n=`expr $n + 1`
456 echo_i "check fail of data.example (max-stale-ttl default) ($n)"
457 ret=0
458 $DIG -p ${PORT} @10.53.0.3 data.example TXT > dig.out.test$n
459 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
460 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
461 if [ $ret != 0 ]; then echo_i "failed"; fi
462 status=`expr $status + $ret`
463
464 n=`expr $n + 1`
465 echo_i "check fail of nodata.example (max-stale-ttl default) ($n)"
466 ret=0
467 $DIG -p ${PORT} @10.53.0.3 nodata.example TXT > dig.out.test$n
468 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
469 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
470 if [ $ret != 0 ]; then echo_i "failed"; fi
471 status=`expr $status + $ret`
472
473 n=`expr $n + 1`
474 echo_i "check fail of nxdomain.example (max-stale-ttl default) ($n)"
475 ret=0
476 $DIG -p ${PORT} @10.53.0.3 nxdomain.example TXT > dig.out.test$n
477 grep "status: SERVFAIL" dig.out.test$n > /dev/null || ret=1
478 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
479 if [ $ret != 0 ]; then echo_i "failed"; fi
480 status=`expr $status + $ret`
481
482 n=`expr $n + 1`
483 echo_i "check 'rndc serve-stale on' ($n)"
484 ret=0
485 $RNDCCMD 10.53.0.3 serve-stale on > rndc.out.test$n 2>&1 || ret=1
486 if [ $ret != 0 ]; then echo_i "failed"; fi
487 status=`expr $status + $ret`
488
489 n=`expr $n + 1`
490 echo_i "check 'rndc serve-stale status' ($n)"
491 ret=0
492 $RNDCCMD 10.53.0.3 serve-stale status > rndc.out.test$n 2>&1 || ret=1
493 grep '_default: on (rndc) (stale-answer-ttl=1 max-stale-ttl=604800)' rndc.out.test$n > /dev/null || ret=1
494 if [ $ret != 0 ]; then echo_i "failed"; fi
495 status=`expr $status + $ret`
496
497 n=`expr $n + 1`
498 echo_i "check data.example (max-stale-ttl default) ($n)"
499 ret=0
500 $DIG -p ${PORT} @10.53.0.3 data.example TXT > dig.out.test$n
501 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
502 grep "ANSWER: 1," dig.out.test$n > /dev/null || ret=1
503 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
504 if [ $ret != 0 ]; then echo_i "failed"; fi
505 status=`expr $status + $ret`
506
507 n=`expr $n + 1`
508 echo_i "check nodata.example (max-stale-ttl default) ($n)"
509 ret=0
510 $DIG -p ${PORT} @10.53.0.3 nodata.example TXT > dig.out.test$n
511 grep "status: NOERROR" dig.out.test$n > /dev/null || ret=1
512 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
513 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
514 if [ $ret != 0 ]; then echo_i "failed"; fi
515 status=`expr $status + $ret`
516
517 n=`expr $n + 1`
518 echo_i "check nxdomain.example (max-stale-ttl default) ($n)"
519 ret=0
520 $DIG -p ${PORT} @10.53.0.3 nxdomain.example TXT > dig.out.test$n
521 grep "status: NXDOMAIN" dig.out.test$n > /dev/null || ret=1
522 grep "ANSWER: 0," dig.out.test$n > /dev/null || ret=1
523 grep "example.*1.*IN" dig.out.test$n > /dev/null || ret=1
524 if [ $ret != 0 ]; then echo_i "failed"; fi
525 status=`expr $status + $ret`
526
527 echo_i "exit status: $status"
528 [ $status -eq 0 ] || exit 1
529