1*00b67f09SDavid van Moolenbroek# Copyright (C) 2011-2014 Internet Systems Consortium, Inc. ("ISC") 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any 4*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above 5*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies. 6*00b67f09SDavid van Moolenbroek# 7*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 8*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 9*00b67f09SDavid van Moolenbroek# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 10*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 11*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 12*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 13*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE. 14*00b67f09SDavid van Moolenbroek 15*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.. 16*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 17*00b67f09SDavid van Moolenbroek 18*00b67f09SDavid van Moolenbroekstatus=0 19*00b67f09SDavid van Moolenbroekn=1 20*00b67f09SDavid van Moolenbroek 21*00b67f09SDavid van Moolenbroekfor db in zones/good*.db 22*00b67f09SDavid van Moolenbroekdo 23*00b67f09SDavid van Moolenbroek echo "I:checking $db ($n)" 24*00b67f09SDavid van Moolenbroek ret=0 25*00b67f09SDavid van Moolenbroek $CHECKZONE -i local example $db > test.out.$n 2>&1 || ret=1 26*00b67f09SDavid van Moolenbroek n=`expr $n + 1` 27*00b67f09SDavid van Moolenbroek if [ $ret != 0 ]; then echo "I:failed"; fi 28*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 29*00b67f09SDavid van Moolenbroekdone 30*00b67f09SDavid van Moolenbroek 31*00b67f09SDavid van Moolenbroekfor db in zones/bad*.db 32*00b67f09SDavid van Moolenbroekdo 33*00b67f09SDavid van Moolenbroek echo "I:checking $db ($n)" 34*00b67f09SDavid van Moolenbroek ret=0 35*00b67f09SDavid van Moolenbroek $CHECKZONE -i local example $db > test.out.$n 2>&1 && ret=1 36*00b67f09SDavid van Moolenbroek n=`expr $n + 1` 37*00b67f09SDavid van Moolenbroek if [ $ret != 0 ]; then echo "I:failed"; fi 38*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 39*00b67f09SDavid van Moolenbroekdone 40*00b67f09SDavid van Moolenbroek 41*00b67f09SDavid van Moolenbroekecho "I:checking with journal file ($n)" 42*00b67f09SDavid van Moolenbroekret=0 43*00b67f09SDavid van Moolenbroek$CHECKZONE -D -o test.orig.db test zones/test1.db > /dev/null 2>&1 || ret=1 44*00b67f09SDavid van Moolenbroek$CHECKZONE -D -o test.changed.db test zones/test2.db > /dev/null 2>&1 || ret=1 45*00b67f09SDavid van Moolenbroek../../makejournal test test.orig.db test.changed.db test.orig.db.jnl 2>&1 || ret=1 46*00b67f09SDavid van Moolenbroekjlines=`$JOURNALPRINT test.orig.db.jnl | wc -l` 47*00b67f09SDavid van Moolenbroek[ $jlines = 3 ] || ret=1 48*00b67f09SDavid van Moolenbroek$CHECKZONE -D -j -o test.out1.db test test.orig.db > /dev/null 2>&1 || ret=1 49*00b67f09SDavid van Moolenbroekcmp -s test.changed.db test.out1.db || ret=1 50*00b67f09SDavid van Moolenbroekmv -f test.orig.db.jnl test.journal 51*00b67f09SDavid van Moolenbroek$CHECKZONE -D -J test.journal -o test.out2.db test test.orig.db > /dev/null 2>&1 || ret=1 52*00b67f09SDavid van Moolenbroekcmp -s test.changed.db test.out2.db || ret=1 53*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 54*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 55*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 56*00b67f09SDavid van Moolenbroek 57*00b67f09SDavid van Moolenbroekecho "I:checking with spf warnings ($n)" 58*00b67f09SDavid van Moolenbroekret=0 59*00b67f09SDavid van Moolenbroek$CHECKZONE example zones/spf.db > test.out1.$n 2>&1 || ret=1 60*00b67f09SDavid van Moolenbroek$CHECKZONE -T ignore example zones/spf.db > test.out2.$n 2>&1 || ret=1 61*00b67f09SDavid van Moolenbroekgrep "'x.example' found type SPF" test.out1.$n > /dev/null && ret=1 62*00b67f09SDavid van Moolenbroekgrep "'y.example' found type SPF" test.out1.$n > /dev/null || ret=1 63*00b67f09SDavid van Moolenbroekgrep "'example' found type SPF" test.out1.$n > /dev/null && ret=1 64*00b67f09SDavid van Moolenbroekgrep "'x.example' found type SPF" test.out2.$n > /dev/null && ret=1 65*00b67f09SDavid van Moolenbroekgrep "'y.example' found type SPF" test.out2.$n > /dev/null && ret=1 66*00b67f09SDavid van Moolenbroekgrep "'example' found type SPF" test.out2.$n > /dev/null && ret=1 67*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 68*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 69*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 70*00b67f09SDavid van Moolenbroek 71*00b67f09SDavid van Moolenbroekecho "I:checking with max ttl (text) ($n)" 72*00b67f09SDavid van Moolenbroekret=0 73*00b67f09SDavid van Moolenbroek$CHECKZONE -l 300 example zones/good1.db > test.out1.$n 2>&1 && ret=1 74*00b67f09SDavid van Moolenbroek$CHECKZONE -l 600 example zones/good1.db > test.out2.$n 2>&1 || ret=1 75*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 76*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 77*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 78*00b67f09SDavid van Moolenbroek 79*00b67f09SDavid van Moolenbroekecho "I:checking with max ttl (raw) ($n)" 80*00b67f09SDavid van Moolenbroekret=0 81*00b67f09SDavid van Moolenbroek$CHECKZONE -f raw -l 300 example good1.db.raw > test.out1.$n 2>&1 && ret=1 82*00b67f09SDavid van Moolenbroek$CHECKZONE -f raw -l 600 example good1.db.raw > test.out2.$n 2>&1 || ret=1 83*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 84*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 85*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 86*00b67f09SDavid van Moolenbroek 87*00b67f09SDavid van Moolenbroekecho "I:checking with max ttl (map) ($n)" 88*00b67f09SDavid van Moolenbroekret=0 89*00b67f09SDavid van Moolenbroek$CHECKZONE -f map -l 300 example good1.db.map > test.out1.$n 2>&1 && ret=1 90*00b67f09SDavid van Moolenbroek$CHECKZONE -f map -l 600 example good1.db.map > test.out2.$n 2>&1 || ret=1 91*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 92*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 93*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 94*00b67f09SDavid van Moolenbroek 95*00b67f09SDavid van Moolenbroekecho "I:checking for no 'inherited owner' warning on '\$INCLUDE file' with no new \$ORIGIN ($n)" 96*00b67f09SDavid van Moolenbroekret=0 97*00b67f09SDavid van Moolenbroek$CHECKZONE example zones/nowarn.inherited.owner.db > test.out1.$n 2>&1 || ret=1 98*00b67f09SDavid van Moolenbroekgrep "inherited.owner" test.out1.$n > /dev/null && ret=1 99*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 100*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 101*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 102*00b67f09SDavid van Moolenbroek 103*00b67f09SDavid van Moolenbroekecho "I:checking for 'inherited owner' warning on '\$ORIGIN + \$INCLUDE file' ($n)" 104*00b67f09SDavid van Moolenbroekret=0 105*00b67f09SDavid van Moolenbroek$CHECKZONE example zones/warn.inherit.origin.db > test.out1.$n 2>&1 || ret=1 106*00b67f09SDavid van Moolenbroekgrep "inherited.owner" test.out1.$n > /dev/null || ret=1 107*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 108*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 109*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 110*00b67f09SDavid van Moolenbroek 111*00b67f09SDavid van Moolenbroekecho "I:checking for 'inherited owner' warning on '\$INCLUDE file origin' ($n)" 112*00b67f09SDavid van Moolenbroekret=0 113*00b67f09SDavid van Moolenbroek$CHECKZONE example zones/warn.inherited.owner.db > test.out1.$n 2>&1 || ret=1 114*00b67f09SDavid van Moolenbroekgrep "inherited.owner" test.out1.$n > /dev/null || ret=1 115*00b67f09SDavid van Moolenbroekn=`expr $n + 1` 116*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 117*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 118*00b67f09SDavid van Moolenbroek 119*00b67f09SDavid van Moolenbroekecho "I:exit status: $status" 120*00b67f09SDavid van Moolenbroekexit $status 121