#!/bin/sh

t=`mktemp -d /tmp/assert-io-XXXXXX`

in=$t/in
out=$t/out
err=$t/err
expout=$t/expout
experr=$t/experr

printf "$stdin"  > $in
printf "$stdout" > $expout
printf "$stderr" > $experr

# execute & compare
exe=$1; shift
$exe "$@" <$in >$out 2>$err
if test "$?" = "127"; then cat $err >&2; exit 127; fi
diff -u $experr $err >&2 && \
diff -u $expout $out >&2
RET=$?

rm -rf $t
exit $RET
