#!/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 # Is the test expected to fail? expect_fail=false # The architecture and the bitsize arch=`sed -n -e 's/^ARCH=//p' ../../Makefile.config` bits=`sed -n -e 's/^BITSIZE=//p' ../../Makefile.config` # The reference output if test -f "Results/$name-$arch-$bits"; then ref="Results/$name-$arch-$bits" 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 # Special conditions if test -f "$name.cond"; then RUN=0 SKIP=1 EXPECT_FAIL=2 sh "$name.cond" case "$?" in 1) echo "$name: skipped"; exit 0;; 2) expect_fail=true;; esac fi # Administer the test if $SIMU $* > $out then if $expect_fail; then echo "$name: ERROR (should have failed but did not)" exit 2 elif test -n "$ref"; then if cmp -s "$out" "$ref"; then echo "$name: passed" exit 0 else echo "$name: WRONG OUTPUT (diff follows)" diff -a -u "$ref" "$out" exit 2 fi else echo "$name: passed" exit 0 fi else retcode=$? if $expect_fail; then echo "$name: passed (failed as expected)" exit 0 else echo "$name: EXECUTION FAILED (status $retcode)" exit 2 fi fi