diff options
Diffstat (limited to 'test/regression/Runtest')
-rwxr-xr-x | test/regression/Runtest | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/regression/Runtest b/test/regression/Runtest new file mode 100755 index 00000000..7cc6330b --- /dev/null +++ b/test/regression/Runtest @@ -0,0 +1,55 @@ +#!/bin/sh + +# The name of the test +name="$1" +shift + +# The temp file for output +out="test$$.log" +rm -f $out +trap "rm -f $out" 0 INT QUIT + +# The architecture and the model +arch=`sed -n -e 's/^ARCH=//p' ../../Makefile.config` +model=`sed -n -e 's/^MODEL=//p' ../../Makefile.config` + +# Its bit size +case "$arch,$model" in + ia32,64) bits=64;; + *) bits=32;; +esac + +# The reference output +if test -f "Results/$name-$arch-$model"; then + ref="Results/$name-$arch-$model" +elif test -f "Results/$name-$arch"; then + ref="Results/$name-$arch" +elif test -f "Results/$name-$bits"; then + ref="Results/$name-$bits" +elif test -f "Results/$name"; then + ref="Results/$name" +else + ref="" +fi + +# Administer the test +if $* > $out +then + if test -n "$ref"; then + if cmp -s "$out" "$ref"; then + echo "$name: passed" + exit 0 + else + echo "$name: WRONG OUTPUT (diff follows)" + diff -u "$ref" "$out" + exit 2 + fi + else + echo "$name: passed" + exit 0 + fi +else + echo "$name: EXECUTION FAILED (status $?)" + exit 2 +fi + |