diff options
Diffstat (limited to 'c/src/tests/tools/generic/difftest')
-rw-r--r-- | c/src/tests/tools/generic/difftest | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/c/src/tests/tools/generic/difftest b/c/src/tests/tools/generic/difftest new file mode 100644 index 0000000000..45f0df81ac --- /dev/null +++ b/c/src/tests/tools/generic/difftest @@ -0,0 +1,114 @@ +#!KSHELL -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 -- `echo sp?? mp??_? psx??` + 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/...._//'` + scn_file=mptests/node$node/$mptest.scn;; + sp*) + scn_file=sptests/$t.scn;; + psx*) + scn_file=psxtests/$t.scn;; + *) + fatal "unknown test $t";; + esac + + sed -e '/^$/d' < $logdir/$logfile | diff -b screens/$scn_file - + echo + echo +done + +exit 0 + +# Local Variables: *** +# mode:ksh *** +# End: *** + |