diff options
Diffstat (limited to '')
-rw-r--r-- | testsuites/tools/generic/difftest.in | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/testsuites/tools/generic/difftest.in b/testsuites/tools/generic/difftest.in new file mode 100644 index 0000000000..83edae907b --- /dev/null +++ b/testsuites/tools/generic/difftest.in @@ -0,0 +1,115 @@ +#!@KSH@ -p +# +# Check test results against official output from the src tree +# +# $Id$ +# + +# XXX: do not run size.exe with this; it asks questions we don't answer + +# how to do arith in bash +# i=$((i * 2)) +# b=$((b + 1)) + +# progname=`basename $0` +progname=${0##*/} # fast basename hack for ksh, bash + +USAGE=\ +"usage: $progname [ -opts ] test [ test ... ] + -v -- verbose + -l logdir -- specify log directory (default is 'logdir') +" + +# log an error to stderr +prerr() +{ + echo "$*" >&2 +} + +fatal() { + [ "$1" ] && prerr $* + prerr "$USAGE" + exit 1 +} + +warn() { + [ "$1" ] && prerr $* +} + +# +# process the options +# +# defaults for getopt vars +# + +verbose="" +logdir=log + +while getopts v12o:l: OPT +do + case "$OPT" in + v) + verbose="yes";; + l) + logdir="$OPTARG";; + *) + fatal;; + esac +done +shiftcount=`expr $OPTIND - 1` +shift $shiftcount + +args=$* + +# +# Run the tests +# + +test -d $logdir || fatal "No log directory: ./$logdir" + +tests="$args" +if [ ! "$tests" ] +then + cd $logdir + set -- `ls -1 sp* mp??_? psx* sp*_g mp*_?_g psx*_g 2>/dev/null | grep -v info` + cd .. + tests="$*" +fi + +for t in $tests +do + logfile=$t + + if [ ! -f $logdir/$logfile ] + then + continue + fi + + echo $logfile + echo + + case $t in + mp*) + mptest=`echo $t | sed 's/_.//'` + node=`echo $t | sed 's/...._//'` + tmp_scn_file=mptests/node$node/$mptest.scn;; + sp*) + tmp_scn_file=sptests/$t.scn;; + psx*) + tmp_scn_file=psxtests/$t.scn;; + *) + fatal "unknown test $t";; + esac + + scn_file=`echo $tmp_scn_file | sed -e s/_g//` + sed -e '/^$/d' < $logdir/$logfile | diff -b screens/$scn_file - + echo + echo +done + +exit 0 + +# Local Variables: *** +# mode:ksh *** +# End: *** + |