#!/bin/bash set -e SPLC=${SPLC:-splc} CC=${CC:-gcc} RTSDIR=${RTSDIR:-.} fail=0 pass=0 while [ $# -ge 1 ] do base="${1/%.spl/}" expected="$base.expected" ccode="$base.c" out="$base.out" if [ ! -r "$1" ] then echo "unable to read $1" fail=$((fail+1)) elif [ ! -r "$expected" ] then echo "unable to read $expected" fail=$((fail+1)) else "$SPLC" $1 -o "$ccode" "$CC" -I"$RTSDIR" "$RTSDIR"/rts.c "$ccode" -o "$base" ./"$base" > "$out" if ! diff "$out" "$expected" then fail=$((fail+1)) echo "$1 failed" else pass=$((pass+1)) fi fi shift done echo "$pass/$((fail+pass)) passed" exit "$((fail>=1))"