#!/bin/sh # # TestRunner.sh - This script is used to run arbitrary unit tests. Unit # tests must contain the command used to run them in the input file, starting # immediately after a "RUN:" string. # # This runner recognizes and replaces the following strings in the command: # %s - Replaced with the input name of the program # grep 'RUN:' $1 | sed "s/^.*RUN:\(.*\)$/\1/g;s/%s/$1/g" > Output/$1.script OUTPUT=Output/$1.out /bin/sh Output/$1.script > $OUTPUT 2>&1 || ( echo "******************** TEST '$1' FAILED! ********************" echo "Command: " cat Output/$1.script echo "Output:" cat $OUTPUT rm $OUTPUT echo "******************** TEST '$1' FAILED! ********************" )