summaryrefslogtreecommitdiffstats
path: root/testsuites/tools/generic/difftest.in
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testsuites/tools/generic/difftest.in115
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: ***
+