1*00b67f09SDavid van Moolenbroek#!/bin/sh 2*00b67f09SDavid van Moolenbroek# 3*00b67f09SDavid van Moolenbroek# Copyright (C) 2012 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 Moolenbroek# Id: tests.sh,v 1.1.4.11 2012/02/01 16:54:32 each Exp 18*00b67f09SDavid van Moolenbroek 19*00b67f09SDavid van MoolenbroekSYSTEMTESTTOP=.. 20*00b67f09SDavid van Moolenbroek. $SYSTEMTESTTOP/conf.sh 21*00b67f09SDavid van Moolenbroek 22*00b67f09SDavid van MoolenbroekDIGOPTS="+tcp +noadd +nosea +nostat +noquest +nocomm +nocmd" 23*00b67f09SDavid van MoolenbroekDIGCMD="$DIG $DIGOPTS -p 5300" 24*00b67f09SDavid van MoolenbroekRNDCCMD="$RNDC -p 9953 -c ../common/rndc.conf" 25*00b67f09SDavid van Moolenbroek 26*00b67f09SDavid van Moolenbroekstatus=0 27*00b67f09SDavid van Moolenbroekret=0 28*00b67f09SDavid van Moolenbroekecho "I:fetching a.example from ns2's initial configuration" 29*00b67f09SDavid van Moolenbroek$DIGCMD +noauth a.example. @10.53.0.2 any > dig.out.ns2.1 || ret=1 30*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 31*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 32*00b67f09SDavid van Moolenbroek 33*00b67f09SDavid van Moolenbroekret=0 34*00b67f09SDavid van Moolenbroekecho "I:verifying adb records in named.stats" 35*00b67f09SDavid van Moolenbroek$RNDCCMD -s 10.53.0.2 stats > /dev/null 2>&1 36*00b67f09SDavid van Moolenbroekecho "I: checking for 1 entry in adb hash table" 37*00b67f09SDavid van Moolenbroekgrep "1 Addresses in hash table" ns2/named.stats > /dev/null || ret=1 38*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 39*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 40*00b67f09SDavid van Moolenbroek 41*00b67f09SDavid van Moolenbroekret=0 42*00b67f09SDavid van Moolenbroekecho "I: verifying cache statistics in named.stats" 43*00b67f09SDavid van Moolenbroekgrep "Cache Statistics" ns2/named.stats > /dev/null || ret=1 44*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I:failed"; fi 45*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 46*00b67f09SDavid van Moolenbroek 47*00b67f09SDavid van Moolenbroekret=0 48*00b67f09SDavid van Moolenbroekecho "I: checking for 2 entries in adb hash table" 49*00b67f09SDavid van Moolenbroek$DIGCMD a.example.info. @10.53.0.2 any > /dev/null 2>&1 50*00b67f09SDavid van Moolenbroek$RNDCCMD -s 10.53.0.2 stats > /dev/null 2>&1 51*00b67f09SDavid van Moolenbroekgrep "2 Addresses in hash table" ns2/named.stats > /dev/null || ret=1 52*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 53*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 54*00b67f09SDavid van Moolenbroek 55*00b67f09SDavid van Moolenbroekret=0 56*00b67f09SDavid van Moolenbroekecho "I:dumping initial stats for ns3" 57*00b67f09SDavid van Moolenbroekrm -f ns3/named.stats 58*00b67f09SDavid van Moolenbroek$RNDCCMD -s 10.53.0.3 stats > /dev/null 2>&1 59*00b67f09SDavid van Moolenbroek[ -f ns3/named.stats ] || ret=1 60*00b67f09SDavid van Moolenbroeknsock0=`grep "UDP/IPv4 sockets active" ns3/named.stats | awk '{print $1}'` 61*00b67f09SDavid van Moolenbroekecho "I:sending queries to ns3" 62*00b67f09SDavid van Moolenbroek$DIGCMD +tries=2 +time=1 +recurse @10.53.0.3 foo.info. any > /dev/null 2>&1 63*00b67f09SDavid van Moolenbroek#$DIGCMD +tries=2 +time=1 +recurse @10.53.0.3 foo.info. any 64*00b67f09SDavid van Moolenbroekecho "I:dumping updated stats for ns3" 65*00b67f09SDavid van Moolenbroekrm -f ns3/named.stats 66*00b67f09SDavid van Moolenbroek$RNDCCMD -s 10.53.0.3 stats > /dev/null 2>&1 67*00b67f09SDavid van Moolenbroek[ -f ns3/named.stats ] || ret=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 Moolenbroekret=0 72*00b67f09SDavid van Moolenbroekecho "I: verifying recursing clients output" 73*00b67f09SDavid van Moolenbroekgrep "2 recursing clients" ns3/named.stats > /dev/null || ret=1 74*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 75*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 76*00b67f09SDavid van Moolenbroek 77*00b67f09SDavid van Moolenbroekret=0 78*00b67f09SDavid van Moolenbroekecho "I: verifying active fetches output" 79*00b67f09SDavid van Moolenbroekgrep "1 active fetches" ns3/named.stats > /dev/null || ret=1 80*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 81*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 82*00b67f09SDavid van Moolenbroek 83*00b67f09SDavid van Moolenbroekret=0 84*00b67f09SDavid van Moolenbroekecho "I: verifying active sockets output" 85*00b67f09SDavid van Moolenbroeknsock1=`grep "UDP/IPv4 sockets active" ns3/named.stats | awk '{print $1}'` 86*00b67f09SDavid van Moolenbroek[ `expr $nsock1 - $nsock0` -eq 1 ] || ret=1 87*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 88*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 89*00b67f09SDavid van Moolenbroek 90*00b67f09SDavid van Moolenbroekret=0 91*00b67f09SDavid van Moolenbroek# there should be 1 UDP and no TCP queries. As the TCP counter is zero 92*00b67f09SDavid van Moolenbroek# no status line is emitted. 93*00b67f09SDavid van Moolenbroekecho "I: verifying queries in progress" 94*00b67f09SDavid van Moolenbroekgrep "1 UDP queries in progress" ns3/named.stats > /dev/null || ret=1 95*00b67f09SDavid van Moolenbroekgrep "TCP queries in progress" ns3/named.stats > /dev/null && ret=1 96*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 97*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 98*00b67f09SDavid van Moolenbroek 99*00b67f09SDavid van Moolenbroekret=0 100*00b67f09SDavid van Moolenbroekecho "I: verifying bucket size output" 101*00b67f09SDavid van Moolenbroekgrep "bucket size" ns3/named.stats > /dev/null || ret=1 102*00b67f09SDavid van Moolenbroekif [ $ret != 0 ]; then echo "I: failed"; fi 103*00b67f09SDavid van Moolenbroekstatus=`expr $status + $ret` 104*00b67f09SDavid van Moolenbroek 105*00b67f09SDavid van Moolenbroekecho "I:exit status: $status" 106*00b67f09SDavid van Moolenbroekexit $status 107