tests.sh revision 0c27b3fe77ac1d5094ba3521e8142d9e7973133f
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd# Copyright (C) 2011-2016 Internet Systems Consortium, Inc. ("ISC")
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd#
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd# This Source Code Form is subject to the terms of the Mozilla Public
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd# License, v. 2.0. If a copy of the MPL was not distributed with this
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndSYSTEMTESTTOP=..
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd. $SYSTEMTESTTOP/conf.sh
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndstatus=0
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowenn=1
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowen
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowenfor db in zones/good*.db
d29d9ab4614ff992b0e8de6e2b88d52b6f1f153erbowendo
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd echo "I:checking $db ($n)"
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ret=0
d229f940abfb2490dee17979e9a5ff31b7012eb5rbowen case $db in
3f08db06526d6901aa08c110b5bc7dde6bc39905nd zones/good-gc-msdcs.db)
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd $CHECKZONE -k fail -i local example $db > test.out.$n 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ;;
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd zones/good-dns-sd-reverse.db)
3f08db06526d6901aa08c110b5bc7dde6bc39905nd $CHECKZONE -k fail -i local 0.0.0.0.in-addr.arpa $db > test.out.$n 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ;;
4be0f2d2988dc74815a5f9f4a308fbef2c29674ekess *)
4be0f2d2988dc74815a5f9f4a308fbef2c29674ekess $CHECKZONE -i local example $db > test.out.$n 2>&1 || ret=1
74f9e2dc9461c0e91b182eff6a9828fe42496dbcnd ;;
ad74a0524a06bfe11b7de9e3b4ce7233ab3bd3f7nd esac
ecc5150d35c0dc5ee5119c2717e6660fa331abbftakashi n=`expr $n + 1`
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung if [ $ret != 0 ]; then echo "I:failed"; fi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd status=`expr $status + $ret`
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluemdone
4b575a6b6704b516f22d65a3ad35696d7b9ba372rpluem
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndfor db in zones/bad*.db
71fccc298df6a1540d408151a26aa22beed55d0bnddo
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd echo "I:checking $db ($n)"
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd case $db in
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd zones/bad-dns-sd-reverse.db)
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd $CHECKZONE -k fail -i local 0.0.0.0.in-addr.arpa $db > test.out.$n 2>&1 && ret=1
30471a4650391f57975f60bbb6e4a90be7b284bfhumbedooh ;;
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd *)
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd $CHECKZONE -i local example $db > test.out.$n 2>&1 && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd ;;
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd esac
71fccc298df6a1540d408151a26aa22beed55d0bnd n=`expr $n + 1`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd if [ $ret != 0 ]; then echo "I:failed"; fi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd status=`expr $status + $ret`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nddone
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndecho "I:checking with journal file ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -D -o test.orig.db test zones/test1.db > /dev/null 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -D -o test.changed.db test zones/test2.db > /dev/null 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd../../makejournal test test.orig.db test.changed.db test.orig.db.jnl 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndjlines=`$JOURNALPRINT test.orig.db.jnl | wc -l`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd[ $jlines = 3 ] || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -D -j -o test.out1.db test test.orig.db > /dev/null 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndcmp -s test.changed.db test.out1.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndmv -f test.orig.db.jnl test.journal
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -D -J test.journal -o test.out2.db test test.orig.db > /dev/null 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndcmp -s test.changed.db test.out2.db || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndn=`expr $n + 1`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndif [ $ret != 0 ]; then echo "I:failed"; fi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndstatus=`expr $status + $ret`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndecho "I:checking with spf warnings ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE example zones/spf.db > test.out1.$n 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -T ignore example zones/spf.db > test.out2.$n 2>&1 || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndgrep "'x.example' found type SPF" test.out1.$n > /dev/null && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndgrep "'y.example' found type SPF" test.out1.$n > /dev/null || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndgrep "'example' found type SPF" test.out1.$n > /dev/null && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndgrep "'x.example' found type SPF" test.out2.$n > /dev/null && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndgrep "'y.example' found type SPF" test.out2.$n > /dev/null && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndgrep "'example' found type SPF" test.out2.$n > /dev/null && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndn=`expr $n + 1`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndif [ $ret != 0 ]; then echo "I:failed"; fi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndecho "I:checking with max ttl (text) ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -l 300 example zones/good1.db > test.out1.$n 2>&1 && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -l 600 example zones/good1.db > test.out2.$n 2>&1 || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
71fccc298df6a1540d408151a26aa22beed55d0bndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndecho "I:checking with max ttl (raw) ($n)"
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -f raw -l 300 example good1.db.raw > test.out1.$n 2>&1 && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -f raw -l 600 example good1.db.raw > test.out2.$n 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
71fccc298df6a1540d408151a26aa22beed55d0bndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bndecho "I:checking with max ttl (map) ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -f map -l 300 example good1.db.map > test.out1.$n 2>&1 && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE -f map -l 600 example good1.db.map > test.out2.$n 2>&1 || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
71fccc298df6a1540d408151a26aa22beed55d0bndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bndecho "I:checking for no 'inherited owner' warning on '\$INCLUDE file' with no new \$ORIGIN ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
71fccc298df6a1540d408151a26aa22beed55d0bnd$CHECKZONE example zones/nowarn.inherited.owner.db > test.out1.$n 2>&1 || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndgrep "inherited.owner" test.out1.$n > /dev/null && ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndstatus=`expr $status + $ret`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndecho "I:checking for 'inherited owner' warning on '\$ORIGIN + \$INCLUDE file' ($n)"
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndret=0
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd$CHECKZONE example zones/warn.inherit.origin.db > test.out1.$n 2>&1 || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndgrep "inherited.owner" test.out1.$n > /dev/null || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
71fccc298df6a1540d408151a26aa22beed55d0bndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bndecho "I:checking for 'inherited owner' warning on '\$INCLUDE file origin' ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
71fccc298df6a1540d408151a26aa22beed55d0bnd$CHECKZONE example zones/warn.inherited.owner.db > test.out1.$n 2>&1 || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndgrep "inherited.owner" test.out1.$n > /dev/null || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
71fccc298df6a1540d408151a26aa22beed55d0bndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bndecho "I:checking that raw zone with bad class is handled ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
71fccc298df6a1540d408151a26aa22beed55d0bnd$CHECKZONE -f raw example zones/bad-badclass.raw > test.out.$n 2>&1 && ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndgrep "failed: bad class" test.out.$n >/dev/null || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
71fccc298df6a1540d408151a26aa22beed55d0bndstatus=`expr $status + $ret`
71fccc298df6a1540d408151a26aa22beed55d0bnd
71fccc298df6a1540d408151a26aa22beed55d0bndecho "I:checking that expirations that loop using serial arithmetic are handled ($n)"
71fccc298df6a1540d408151a26aa22beed55d0bndret=0
71fccc298df6a1540d408151a26aa22beed55d0bndq=-q
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
71fccc298df6a1540d408151a26aa22beed55d0bndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndtest $ret -eq 1 || $CHECKZONE $q dyn.example.net zones/crashzone.db || ret=1
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndn=`expr $n + 1`
71fccc298df6a1540d408151a26aa22beed55d0bndif [ $ret != 0 ]; then echo "I:failed"; fi
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndstatus=`expr $status + $ret`
6116c12fdd3ed06d388fe6572e50a22e9320dfa5nd
6116c12fdd3ed06d388fe6572e50a22e9320dfa5ndecho "I:exit status: $status"
71fccc298df6a1540d408151a26aa22beed55d0bnd[ $status -eq 0 ] || exit 1
71fccc298df6a1540d408151a26aa22beed55d0bnd