1*00b67f09SDavid van Moolenbroek#!/bin/sh 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Copyright (C) 2013, 2014 Internet Systems Consortium, Inc. ("ISC") 4*00b67f09SDavid van Moolenbroek# 5*00b67f09SDavid van Moolenbroek# Permission to use, copy, modify, and/or distribute this software for any 6*00b67f09SDavid van Moolenbroek# purpose with or without fee is hereby granted, provided that the above 7*00b67f09SDavid van Moolenbroek# copyright notice and this permission notice appear in all copies. 8*00b67f09SDavid van Moolenbroek# 9*00b67f09SDavid van Moolenbroek# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 10*00b67f09SDavid van Moolenbroek# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 11*00b67f09SDavid van Moolenbroek# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 12*00b67f09SDavid van Moolenbroek# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 13*00b67f09SDavid van Moolenbroek# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 14*00b67f09SDavid van Moolenbroek# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 15*00b67f09SDavid van Moolenbroek# PERFORMANCE OF THIS SOFTWARE. 16*00b67f09SDavid van Moolenbroek 17*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.. 18*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 19*00b67f09SDavid van Moolenbroek 20*00b67f09SDavid van MoolenbroekCOVERAGE="$COVERAGE -c ./named-compilezone" 21*00b67f09SDavid van Moolenbroek 22*00b67f09SDavid van Moolenbroekstatus=0 23*00b67f09SDavid van Moolenbroekn=1 24*00b67f09SDavid van Moolenbroek 25*00b67f09SDavid van Moolenbroekmatchall () { 26*00b67f09SDavid van Moolenbroek file=$1 27*00b67f09SDavid van Moolenbroek echo "$2" | while read matchline; do 28*00b67f09SDavid van Moolenbroek grep "$matchline" $file > /dev/null 2>&1 || { 29*00b67f09SDavid van Moolenbroek echo "FAIL" 30*00b67f09SDavid van Moolenbroek return 31*00b67f09SDavid van Moolenbroek } 32*00b67f09SDavid van Moolenbroek done 33*00b67f09SDavid van Moolenbroek} 34*00b67f09SDavid van Moolenbroek 35*00b67f09SDavid van Moolenbroekecho "I:checking for DNSSEC key coverage issues" 36*00b67f09SDavid van Moolenbroekret=0 37*00b67f09SDavid van Moolenbroekfor dir in [0-9][0-9]-*; do 38*00b67f09SDavid van Moolenbroek ret=0 39*00b67f09SDavid van Moolenbroek echo "I:$dir" 40*00b67f09SDavid van Moolenbroek args= warn= error= ok= retcode= match= 41*00b67f09SDavid van Moolenbroek . $dir/expect 42*00b67f09SDavid van Moolenbroek $COVERAGE $args -K $dir example.com > coverage.$n 2>&1 43*00b67f09SDavid van Moolenbroek 44*00b67f09SDavid van Moolenbroek # check that return code matches expectations 45*00b67f09SDavid van Moolenbroek found=$? 46*00b67f09SDavid van Moolenbroek if [ $found -ne $retcode ]; then 47*00b67f09SDavid van Moolenbroek echo "retcode was $found expected $retcode" 48*00b67f09SDavid van Moolenbroek ret=1 49*00b67f09SDavid van Moolenbroek fi 50*00b67f09SDavid van Moolenbroek 51*00b67f09SDavid van Moolenbroek # check for correct number of errors 52*00b67f09SDavid van Moolenbroek found=`grep ERROR coverage.$n | wc -l` 53*00b67f09SDavid van Moolenbroek if [ $found -ne $error ]; then 54*00b67f09SDavid van Moolenbroek echo "error count was $found expected $error" 55*00b67f09SDavid van Moolenbroek ret=1 56*00b67f09SDavid van Moolenbroek fi 57*00b67f09SDavid van Moolenbroek 58*00b67f09SDavid van Moolenbroek # check for correct number of warnings 59*00b67f09SDavid van Moolenbroek found=`grep WARNING coverage.$n | wc -l` 60*00b67f09SDavid van Moolenbroek if [ $found -ne $warn ]; then 61*00b67f09SDavid van Moolenbroek echo "warning count was $found expected $warn" 62*00b67f09SDavid van Moolenbroek ret=1 63*00b67f09SDavid van Moolenbroek fi 64*00b67f09SDavid van Moolenbroek 65*00b67f09SDavid van Moolenbroek # check for correct number of OKs 66*00b67f09SDavid van Moolenbroek found=`grep "No errors found" coverage.$n | wc -l` 67*00b67f09SDavid van Moolenbroek if [ $found -ne $ok ]; then 68*00b67f09SDavid van Moolenbroek echo "good count was $found expected $ok" 69*00b67f09SDavid van Moolenbroek ret=1 70*00b67f09SDavid van Moolenbroek fi 71*00b67f09SDavid van Moolenbroek 72*00b67f09SDavid van Moolenbroek found=`matchall coverage.$n "$match"` 73*00b67f09SDavid van Moolenbroek if [ "$found" = "FAIL" ]; then 74*00b67f09SDavid van Moolenbroek echo "no match on '$match'" 75*00b67f09SDavid van Moolenbroek ret=1 76*00b67f09SDavid van Moolenbroek fi 77*00b67f09SDavid van Moolenbroek 78*00b67f09SDavid van Moolenbroek n=`expr $n + 1` 79*00b67f09SDavid van Moolenbroek if [ $ret != 0 ]; then echo "I:failed"; fi 80*00b67f09SDavid van Moolenbroek status=`expr $status + $ret` 81*00b67f09SDavid van Moolenbroekdone 82*00b67f09SDavid van Moolenbroek 83*00b67f09SDavid van Moolenbroekecho "I:exit status: $status" 84*00b67f09SDavid van Moolenbroekexit $status 85