1#!/bin/sh
2#
3# Copyright (C) 2010-2013  Internet Systems Consortium, Inc. ("ISC")
4#
5# Permission to use, copy, modify, and/or distribute this software for any
6# purpose with or without fee is hereby granted, provided that the above
7# copyright notice and this permission notice appear in all copies.
8#
9# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15# PERFORMANCE OF THIS SOFTWARE.
16
17# Id: tests.sh,v 1.4 2011/04/19 23:47:52 tbox Exp
18
19SYSTEMTESTTOP=..
20. $SYSTEMTESTTOP/conf.sh
21
22status=0
23n=0
24
25rm -f dig.out.*
26
27DIGOPTS="+tcp +noadd +nosea +nostat +nocmd +dnssec -p 5300"
28
29# Check the example.com. domain
30
31echo "I:checking DNAME at apex works ($n)"
32ret=0
33$DIG $DIGOPTS +norec foo.example.com. \
34	@10.53.0.1 a > dig.out.ns1.test$n || ret=1
35grep "status: NOERROR" dig.out.ns1.test$n > /dev/null || ret=1
36grep "example.com..*DNAME.*example.net." dig.out.ns1.test$n > /dev/null || ret=1
37grep "foo.example.com..*CNAME.*foo.example.net." dig.out.ns1.test$n > /dev/null || ret=1
38grep "flags:[^;]* aa[ ;]" dig.out.ns1.test$n > /dev/null || ret=1
39n=`expr $n + 1`
40if [ $ret != 0 ]; then echo "I:failed"; fi
41status=`expr $status + $ret`
42
43echo "I:checking DLZ IXFR=2010062899 (less than serial) ($n)"
44ret=0
45$DIG $DIGOPTS ixfr=2010062899 example.com @10.53.0.1 +all > dig.out.ns1.test$n
46grep "example.com..*IN.IXFR" dig.out.ns1.test$n > /dev/null || ret=1
47grep "example.com..*10.IN.DNAME.example.net." dig.out.ns1.test$n > /dev/null || ret=1
48grep "example.com..*10.IN.NS.example.com." dig.out.ns1.test$n > /dev/null || ret=1
49n=`expr $n + 1`
50if [ $ret != 0 ]; then echo "I:failed"; fi
51status=`expr $status + $ret`
52
53echo "I:checking DLZ IXFR=2010062900 (equal serial) ($n)"
54ret=0
55$DIG $DIGOPTS ixfr=2010062900 example.com @10.53.0.1 +all > dig.out.ns1.test$n
56grep "example.com..*IN.IXFR" dig.out.ns1.test$n > /dev/null || ret=1
57grep "example.com..*10.IN.DNAME.example.net." dig.out.ns1.test$n > /dev/null && ret=1
58grep "example.com..*10.IN.NS.example.com." dig.out.ns1.test$n > /dev/null && ret=1
59n=`expr $n + 1`
60if [ $ret != 0 ]; then echo "I:failed"; fi
61status=`expr $status + $ret`
62
63echo "I:checking DLZ IXFR=2010062901 (greater than serial) ($n)"
64ret=0
65$DIG $DIGOPTS ixfr=2010062901 example.com @10.53.0.1 +all > dig.out.ns1.test$n
66grep "example.com..*IN.IXFR" dig.out.ns1.test$n > /dev/null || ret=1
67grep "example.com..*10.IN.DNAME.example.net." dig.out.ns1.test$n > /dev/null && ret=1
68grep "example.com..*10.IN.NS.example.com." dig.out.ns1.test$n > /dev/null && ret=1
69n=`expr $n + 1`
70if [ $ret != 0 ]; then echo "I:failed"; fi
71status=`expr $status + $ret`
72
73echo "I:exit status: $status"
74exit $status
75