tests.sh revision 660b088fedcf755b15bdb050f5974a378f5b6767
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews#!/bin/sh
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews#
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Permission to use, copy, modify, and/or distribute this software for any
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# purpose with or without fee is hereby granted, provided that the above
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# copyright notice and this permission notice appear in all copies.
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews#
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
28a8f5b0de57d269cf2845c69cb6abe18cbd3b3aMark Andrews# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
058e44186b74531402c1f99088eb9dbe4926f8daMark Andrews# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews# PERFORMANCE OF THIS SOFTWARE.
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
12ff7274fe2ea531ecca6a71fb9f7e1ae92da389Mark AndrewsSYSTEMTESTTOP=..
12ff7274fe2ea531ecca6a71fb9f7e1ae92da389Mark Andrews. $SYSTEMTESTTOP/conf.sh
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark AndrewsDIG="./dig.sh"
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewschmod +x $DIG
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrews
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark AndrewsCHECKDS="$CHECKDS -d $DIG -D $DSFROMKEY"
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrews
ba751492fcc4f161a18b983d4f018a1a52938cb9Evan Huntstatus=0
ba751492fcc4f161a18b983d4f018a1a52938cb9Evan Huntn=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsecho "I:checking for correct DS, looking up key via 'dig' ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0da29be670f6fa5b2a6320d9d843bc8b802c153aMark Andrews$CHECKDS ok.example > checkds.out.$n || ret=1
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for correct DS, obtaining key from file ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -f ok.example.dnskey.db ok.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
1676408640d8283c9f17eec0b183e1302ea7fd70Mark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for correct DLV, looking up key via 'dig' ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -l dlv.example ok.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0da29be670f6fa5b2a6320d9d843bc8b802c153aMark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0da29be670f6fa5b2a6320d9d843bc8b802c153aMark Andrewsstatus=`expr $status + $ret`
0da29be670f6fa5b2a6320d9d843bc8b802c153aMark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for correct DLV, obtaining key from file ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -l dlv.example -f ok.example.dnskey.db ok.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
058e44186b74531402c1f99088eb9dbe4926f8daMark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
058e44186b74531402c1f99088eb9dbe4926f8daMark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
058e44186b74531402c1f99088eb9dbe4926f8daMark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for incorrect DS, lowronging up key via 'dig' ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS wrong.example > checkds.out.$n || ret=1
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsn=`expr $n + 1`
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsstatus=`expr $status + $ret`
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrews
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsecho "I:checking for incorrect DS, obtaining key from file ($n)"
ba751492fcc4f161a18b983d4f018a1a52938cb9Evan Huntret=0
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrews$CHECKDS -f wrong.example.dnskey.db wrong.example > checkds.out.$n || ret=1
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
ba751492fcc4f161a18b983d4f018a1a52938cb9Evan Huntn=`expr $n + 1`
aaaf8d4f4873d21e55c3ffb4f656203d08339865Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
aaaf8d4f4873d21e55c3ffb4f656203d08339865Mark Andrewsstatus=`expr $status + $ret`
aaaf8d4f4873d21e55c3ffb4f656203d08339865Mark Andrews
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsecho "I:checking for incorrect DLV, lowronging up key via 'dig' ($n)"
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsret=0
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrews$CHECKDS -l dlv.example wrong.example > checkds.out.$n || ret=1
37dee1ff94960a61243f611c0f87f8c316815c53Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrews
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsecho "I:checking for incorrect DLV, obtaining key from file ($n)"
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsret=0
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrews$CHECKDS -l dlv.example -f wrong.example.dnskey.db wrong.example > checkds.out.$n || ret=1
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsn=`expr $n + 1`
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsstatus=`expr $status + $ret`
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for partially missing DS, looking up key via 'dig' ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS missing.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'No DS' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for partially missing DS, obtaining key from file ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -f missing.example.dnskey.db missing.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
ad1317338af79edad878c9c3e4361798503310baMark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'No DS' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for partially missing DLV, looking up key via 'dig' ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
ad1317338af79edad878c9c3e4361798503310baMark Andrews$CHECKDS -l dlv.example missing.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'No DLV' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
ad1317338af79edad878c9c3e4361798503310baMark Andrewsecho "I:checking for partially missing DLV, obtaining key from file ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -l dlv.example -f missing.example.dnskey.db missing.example > checkds.out.$n || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-1' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'SHA-256' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'No DLV' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrews
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrewsecho "I:checking for entirely missing DS, looking up key via 'dig' ($n)"
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrewsret=0
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrews$CHECKDS none.example > checkds.out.$n && ret=1
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrewsgrep 'No DS' checkds.out.$n > /dev/null 2>&1 || ret=1
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrewsn=`expr $n + 1`
21c8938824a2445bc750ba9c395a0d857f50ad72Tinderbox Userif [ $ret != 0 ]; then echo "I:failed"; fi
75ae74f8fd0847817bce2db7c868b179db67f019Mark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for entirely missing DS, obtaining key from file ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -f none.example.dnskey.db none.example > checkds.out.$n && ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsgrep 'No DS' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsstatus=`expr $status + $ret`
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrews
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsecho "I:checking for entirely missing DLV, looking up key via 'dig' ($n)"
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsret=0
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrews$CHECKDS -l dlv.example none.example > checkds.out.$n && ret=1
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsgrep 'No DLV' checkds.out.$n > /dev/null 2>&1 || ret=1
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsn=`expr $n + 1`
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
3dd63ba00f91f4d54ba45ba1831375950758c0a7Mark Andrewsstatus=`expr $status + $ret`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsecho "I:checking for entirely missing DLV, obtaining key from file ($n)"
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsret=0
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrews$CHECKDS -l dlv.example -f none.example.dnskey.db none.example > checkds.out.$n && ret=1
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrewsgrep 'No DLV' checkds.out.$n > /dev/null 2>&1 || ret=1
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsn=`expr $n + 1`
0b09763c354ec91fb352b6b4cea383bd0195b2d8Mark Andrewsif [ $ret != 0 ]; then echo "I:failed"; fi
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsstatus=`expr $status + $ret`
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrews
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsif [ $status = 0 ]; then sh clean.sh; fi
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsecho "I:exit status: $status"
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrewsexit $status
394f4aec2189750d7f861d00f97fe28ffcd9f659Mark Andrews