tests.sh revision 3635d8f9104e70e141a8f191a0e6c1502ceed2f3
3aaa526a94c80c31c16d44f0f6482984725860f1Tinderbox User# Copyright (C) 2012, 2013 Internet Systems Consortium, Inc. ("ISC")
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews#
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# Permission to use, copy, modify, and/or distribute this software for any
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# purpose with or without fee is hereby granted, provided that the above
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# copyright notice and this permission notice appear in all copies.
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews#
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews# PERFORMANCE OF THIS SOFTWARE.
da5d53fb1401f5e17a77373af32d865489aa04a8Tinderbox User
da5d53fb1401f5e17a77373af32d865489aa04a8Tinderbox User# $Id$
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews
ad127d839d2e7aa542939a8a336691407e23397eMark AndrewsSYSTEMTESTTOP=..
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews. $SYSTEMTESTTOP/conf.sh
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsfailed () {
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews cat verify.out.$n | sed 's/^/D:/';
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews echo "I:failed";
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews status=1;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews}
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsn=0
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsstatus=0
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsfor file in zones/*.good
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsdo
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews n=`expr $n + 1`
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews zone=`expr "$file" : 'zones/\(.*\).good'`
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews echo "I:checking supposedly good zone: $zone ($n)"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ret=0
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews case $zone in
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews zsk-only.*) only=-z;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ksk-only.*) only=-z;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *) only=;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews esac
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews $VERIFY ${only} -o $zone $file > verify.out.$n 2>&1 || ret=1
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews [ $ret = 0 ] || failed
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsdone
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsfor file in zones/*.bad
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsdo
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews n=`expr $n + 1`
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews zone=`expr "$file" : 'zones/\(.*\).bad'`
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews echo "I:checking supposedly bad zone: $zone ($n)"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ret=0
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews dumpit=0
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews case $zone in
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews zsk-only.*) only=-z;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ksk-only.*) only=-z;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *) only=;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews esac
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1= expect2=
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews case $zone in
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.dnskeyonly)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="DNSKEY is not signed"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.expired)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="signature has expired"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect2="No self-signed .*DNSKEY found"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.ksk-expired)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="signature has expired"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect2="No self-signed .*DNSKEY found"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.out-of-zone-nsec|*.below-bottom-of-zone-nsec)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="unexpected NSEC RRset at"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.nsec.broken-chain)
9a0dd99a757c469d9530acd5cb11789b3b0af5ceEvan Hunt expect1="Bad NSEC record for.*, next name mismatch"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.bad-bitmap)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="bit map mismatch"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.missing-empty)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="Missing NSEC3 record for";
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews unsigned)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="Zone contains no DNSSEC keys"
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *.extra-nsec3)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews expect1="Expected and found NSEC3 chains not equal";
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews *)
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews dumpit=1
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews ;;
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews esac
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews $VERIFY ${only} -o $zone $file > verify.out.$n 2>&1 && ret=1
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews grep "${expect1:-.}" verify.out.$n > /dev/null || ret=1
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews grep "${expect2:-.}" verify.out.$n > /dev/null || ret=1
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews [ $ret = 0 ] || failed
ad127d839d2e7aa542939a8a336691407e23397eMark Andrews [ $dumpit = 1 ] && cat verify.out.$n
ad127d839d2e7aa542939a8a336691407e23397eMark Andrewsdone
3635d8f9104e70e141a8f191a0e6c1502ceed2f3Mark Andrews
3635d8f9104e70e141a8f191a0e6c1502ceed2f3Mark Andrewsecho "I:exit status: $status"
3635d8f9104e70e141a8f191a0e6c1502ceed2f3Mark Andrews[ $status -eq 0 ] || exit 1