#! /bin/sh

SUCCESS=0

. dtx/definitions

if [ $# != 1 ]; then
    SUCCESS=1
else
    cat "$1" | (SUCCESS=0;
    IFS=''
    TEST=1
    while read l0; do
	lz="$(sh -c "$l0")"
	SUCCESS=$?
	if [ $SUCCESS != 0 ]; then
	    /bin/echo -n >&2 $0: "$1"\[$TEST\]:" "
	    echo >&2 exited $SUCCESS
	    echo >&2 test was "$l0"
	    break
	fi
	read lx
	if [ x"$lx" != x"$lz" ]; then
	    l1="$(echo "$l0" | cut -b 5-)"
#	    l2=$(expr length "$l1")
	    l2=$(src/express17 'length(s1)' text s1 "$l1")
	    if [ 63 -lt "$l2" ]; then
		l1="$(echo "$l1" | cut -b -60)"...
	    fi
	    printf "%-64s" "$l1"
	    src/express17 '"[\033[1;31mfailed\033[0;39m]"'
	    echo >&2 $0: "$1"\[$TEST\]:" failed "\`"$l0"\'
	    echo >&2 $0: "$1"\[$TEST\]: \
		output was \`"$lz"\', expected \`"$lx"\'
	    SUCCESS=1
	    break
	fi
	TEST=$(expr $TEST + 2)
    done
    exit $SUCCESS)
    SUCCESS=$?
fi

exit $SUCCESS
