5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews#!/bin/sh
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews#
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews# Copyright (C) 2013-2017 Internet Systems Consortium, Inc. ("ISC")
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews#
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews# This Source Code Form is subject to the terms of the Mozilla Public
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews# License, v. 2.0. If a copy of the MPL was not distributed with this
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews# file, You can obtain one at http://mozilla.org/MPL/2.0/.
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsSYSTEMTESTTOP=..
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews. $SYSTEMTESTTOP/conf.sh
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsstatus=0
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsn=0
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsn=`expr $n + 1`
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsecho "I:class list ($n)"
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$RRCHECKER -C > classlist.out
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$DIFF classlist.out classlist.good || { echo "I:failed"; status=`expr $status + 1`; }
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsn=`expr $n + 1`
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsecho "I:type list ($n)"
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$RRCHECKER -T > typelist.out
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$DIFF typelist.out typelist.good || { echo "I:failed"; status=`expr $status + 1`; }
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsn=`expr $n + 1`
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsecho "I:private type list ($n)"
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$RRCHECKER -P > privatelist.out
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$DIFF privatelist.out privatelist.good || { echo "I:failed"; status=`expr $status + 1`; }
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsmyecho() {
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewscat << EOF
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$*
5c526acb82c882e41b655c31f5fa4425c87b671cMark AndrewsEOF
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews}
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsn=`expr $n + 1`
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsecho "I:check conversions to canonical format ($n)"
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrewsret=0
5c526acb82c882e41b655c31f5fa4425c87b671cMark Andrews$SHELL ../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=`expr $status + 1`; }
n=`expr $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=`expr $status + 1`; }
echo "I:exit status: $status"
[ $status -eq 0 ] || exit 1