#!/usr/bin/ksh F=${1:-./forth-xlc} pass=0 fail=0 for f in ../demos/hello.fth ../demos/does.fth ../demos/checks.fth do base=`basename $f .fth` exp=../demos/$base.exp out=`$F $f 2>&1` if [ "$out" = "`cat $exp`" ]; then echo "PASS $base" pass=`expr $pass + 1` else echo "FAIL $base" echo "--- expected ---" cat $exp echo "--- got ---" echo "$out" echo "---" fail=`expr $fail + 1` fi done for f in ../demos/err-div.fth ../demos/err-underflow.fth do base=`basename $f .fth` out=`$F $f 2>&1` rc=$? if [ $rc -ne 0 ]; then echo "PASS $base (rc=$rc: `echo $out`)" pass=`expr $pass + 1` else echo "FAIL $base (expected nonzero exit)" fail=`expr $fail + 1` fi done echo "passed $pass, failed $fail" [ $fail -eq 0 ]