| #!/bin/sh |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| SYSTEMTESTTOP=.. |
| . $SYSTEMTESTTOP/conf.sh |
| |
| status=0 |
| n=1 |
| |
| matchall () { |
| match_result=ok |
| file=$1 |
| while IFS="," read expect matchline; do |
| [ -z "$matchline" ] && continue |
| matches=`grep "$matchline" $file | wc -l` |
| [ "$matches" -ne "$expect" ] && { |
| echo "'$matchline': expected $expect found $matches" |
| return 1 |
| } |
| done << EOF |
| $2 |
| EOF |
| return 0 |
| } |
| |
| echo_i "checking for DNSSEC key coverage issues" |
| ret=0 |
| for dir in [0-9][0-9]-*; do |
| ret=0 |
| echo_i "$dir ($n)" |
| kargs= cargs= kmatch= cmatch= kret= cret=0 warn= error= ok= |
| . $dir/expect |
| |
| |
| policy="" |
| if [ -e "$dir/policy.conf" ]; then |
| policy="-c $dir/policy.conf" |
| if grep -e "-c policy.conf" $dir/expect > /dev/null |
| then |
| echo_i "fix $dir/expect: multiple policy files" |
| ret=1 |
| fi |
| else |
| policy="-c policy.conf" |
| fi |
| |
| |
| if [ "$CYGWIN" ]; then |
| $KEYMGR $policy -K $dir -g `cygpath -w $KEYGEN` -r $RANDFILE \ |
| -s `cygpath -w $SETTIME` $kargs > keymgr.$n 2>&1 |
| else |
| $KEYMGR $policy -K $dir -g $KEYGEN -r $RANDFILE \ |
| -s $SETTIME $kargs > keymgr.$n 2>&1 |
| fi |
| |
| found=$? |
| if [ $found -ne $kret ]; then |
| echo "keymgr retcode was $found expected $kret" |
| ret=1 |
| fi |
| |
| |
| matchall keymgr.$n "$kmatch" || ret=1 |
| |
| |
| $COVERAGE -K $dir $cargs > coverage.$n 2>&1 |
| |
| found=$? |
| if [ $found -ne $cret ]; then |
| echo "coverage retcode was $found expected $cret" |
| ret=1 |
| fi |
| |
| |
| found=`grep ERROR coverage.$n | wc -l` |
| if [ $found -ne $error ]; then |
| echo "error count was $found expected $error" |
| ret=1 |
| fi |
| |
| |
| found=`grep WARNING coverage.$n | wc -l` |
| if [ $found -ne $warn ]; then |
| echo "warning count was $found expected $warn" |
| ret=1 |
| fi |
| |
| |
| found=`grep "No errors found" coverage.$n | wc -l` |
| if [ $found -ne $ok ]; then |
| echo "good count was $found expected $ok" |
| ret=1 |
| fi |
| |
| |
| matchall coverage.$n "$cmatch" || ret=1 |
| |
| if [ -f $dir/extra.sh ]; then |
| cd $dir |
| . ./extra.sh |
| cd .. |
| fi |
| |
| n=`expr $n + 1` |
| if [ $ret != 0 ]; then echo_i "failed"; fi |
| status=`expr $status + $ret` |
| done |
| |
| echo_i "checking domains ending in . ($n)" |
| ret=0 |
| $KEYMGR -g $KEYGEN -r $RANDFILE -s $SETTIME . > keymgr.1.$n 2>&1 |
| nkeys=`grep dnssec-keygen keymgr.1.$n | wc -l` |
| [ "$nkeys" -eq 2 ] || ret=1 |
| $KEYMGR -g $KEYGEN -r $RANDFILE -s $SETTIME . > keymgr.2.$n 2>&1 |
| nkeys=`grep dnssec-keygen keymgr.2.$n | wc -l` |
| [ "$nkeys" -eq 0 ] || ret=1 |
| $KEYMGR -g $KEYGEN -r $RANDFILE -s $SETTIME example.com. > keymgr.3.$n 2>&1 |
| nkeys=`grep dnssec-keygen keymgr.3.$n | wc -l` |
| [ "$nkeys" -eq 2 ] || ret=1 |
| $KEYMGR -g $KEYGEN -r $RANDFILE -s $SETTIME example.com. > keymgr.4.$n 2>&1 |
| nkeys=`grep dnssec-keygen keymgr.4.$n | wc -l` |
| [ "$nkeys" -eq 0 ] || ret=1 |
| status=`expr $status + $ret` |
| n=`expr $n + 1` |
| |
| echo_i "checking policy.conf parser ($n)" |
| ret=0 |
| PYTHONPATH="../../../python:$PYTHONPATH" ${PYTHON} testpolicy.py policy.sample > policy.out |
| $DOS2UNIX policy.out > /dev/null 2>&1 |
| cmp -s policy.good policy.out || ret=1 |
| if [ $ret != 0 ]; then echo_i "failed"; fi |
| status=`expr $status + $ret` |
| n=`expr $n + 1` |
| |
| echo_i "exit status: $status" |
| [ $status -eq 0 ] || exit 1 |