Home | History | Annotate | Line # | Download | only in serve-stale
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