summaryrefslogtreecommitdiffstats
path: root/bin/tests/system/rrchecker/tests.sh
blob: 65e9d434bf9a1d6c1824f46f9acab6d688ae6a75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/bin/sh

# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0.  If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.

set -e

. ../conf.sh

status=0
n=0

n=$((n + 1))
echo_i "class list ($n)"
$RRCHECKER -C > classlist.out
diff classlist.out classlist.good || { echo_i "failed"; status=$((status + 1)); }

n=$((n + 1))
echo_i "type list ($n)"
$RRCHECKER -T > typelist.out
diff typelist.out typelist.good || { echo_i "failed"; status=$((status + 1)); }

n=$((n + 1))
echo_i "private type list ($n)"
$RRCHECKER -P > privatelist.out
diff privatelist.out privatelist.good || { echo_i "failed"; status=$((status + 1)); }

myecho() {
cat << EOF
$*
EOF
}

n=$((n + 1))
echo_i "check conversions to canonical format ($n)"
ret=0
$SHELL ${TOP_SRCDIR}/bin/tests/system/genzone.sh 0 > tempzone
$CHECKZONE -Dq . tempzone | sed '/^;/d' > checkzone.out$n
while read -r name tt cl ty rest
do
	myecho "$cl $ty $rest" | $RRCHECKER -p > checker.out || {
		ret=1
		echo_i "'$cl $ty $rest' not handled."
	}
	read -r cl0 ty0 rest0 < checker.out
	test "$cl $ty $rest" = "$cl0 $ty0 $rest0" || {
		ret=1
		echo_i "'$cl $ty $rest' != '$cl0 $ty0 $rest0'"
	}
done < checkzone.out$n
test $ret -eq 0 || { echo_i "failed"; status=$((status + 1)); }

n=$((n + 1))
echo_i "check conversions to and from unknown record format ($n)"
ret=0
$CHECKZONE -Dq . tempzone | sed '/^;/d' > checkzone.out$n
while read -r name tt cl ty rest
do
	myecho "$cl $ty $rest" | $RRCHECKER -u > checker.out || {
		ret=1
		echo_i "'$cl $ty $rest' not converted to unknown record format"
	}
	read -r clu tyu restu < checker.out
	myecho "$clu $tyu $restu" | $RRCHECKER -p > checker.out || {
		ret=1
		echo_i "'$cl $ty $rest' not converted back to canonical format"
	}
	read -r cl0 ty0 rest0 < checker.out
	test "$cl $ty $rest" = "$cl0 $ty0 $rest0" || {
		ret=1
		echo_i "'$cl $ty $rest' != '$cl0 $ty0 $rest0'"
	}
done < checkzone.out$n
test $ret -eq 0 || { echo_i "failed"; status=$((status + 1)); }

echo_i "exit status: $status"
[ $status -eq 0 ] || exit 1