summaryrefslogtreecommitdiffstats
path: root/c/src/tests/tools/generic/difftest
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/tests/tools/generic/difftest')
-rw-r--r--c/src/tests/tools/generic/difftest110
1 files changed, 110 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..ba903160ae
--- /dev/null
+++ b/c/src/tests/tools/generic/difftest
@@ -0,0 +1,110 @@
+#!/bin/ksh -p
+#
+# Check test results against official output in 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 = $OPTIND - 1))
+shift $shiftcount
+
+args=$*
+
+#
+# Run the tests
+#
+
+cd $RTEMS_ROOT/c/$RTEMS_BSP/tests/$logdir ||
+ fatal "No log directory: $RTEMS_ROOT/c/$RTEMS_BSP/tests/$logdir"
+
+tests="$args"
+if [ ! "$tests" ]
+then
+ set -- `echo sp?? mp??_?`
+ tests="$*"
+fi
+
+for t in $tests
+do
+ logfile=$t
+
+ if [ ! -f $logfile ]
+ then
+ continue
+ fi
+
+ echo $logfile
+ echo
+
+ case $t in
+ mp*)
+ mptest=`echo $t | sed 's/_.//'`
+ node=`echo $t | sed 's/...._//'`
+ scn_file=$RTEMS_ROOT/c/src/tests/mptests/$mptest/node$node/$mptest.scn;;
+ sp*)
+ scn_file=$RTEMS_ROOT/c/src/tests/sptests/$t/$t.scn;;
+ *)
+ fatal "unknown test $t";;
+ esac
+
+ sed -e '/^$/d' < $logfile | diff -b $scn_file -
+ echo
+ echo
+done
+
+exit 0
+
+# Local Variables: ***
+# mode:ksh ***
+# End: ***
+