#!/bin/sh
if [ "x$GCTLIB" = "x" ]
then
  GCTLIB=`pwd`/../../../
  PATH=.:`pwd`/../../..:$PATH
fi

ROOT=..
. $ROOT/run.source

clean
make_constant_objects
make_I instrument

if [ -f LOG ]; then /bin/rm -f LOG; fi


# Make a pristine log from running I once.
fresh_log()
{
	if [ -f LOG ]; then /bin/rm LOG; fi
	I 2 > /dev/null
}


doit()
{
	I 2 > $1.out 2>&1; diff $1.out $1.ref
	greport -all LOG > REPORT; diff REPORT $1.lref
}

doit_error()
{
	I 2 > $1.out 2>&1; diff $1.out $1.ref
	greport -all LOG > REPORT 2> 2REPORT
	diff REPORT $1.lref
	diff 2REPORT $1.2lref
}

say no-log; doit no-log
say log; fresh_log; doit log

say too-short
fresh_log
sed -e '$d' LOG > $$; mv $$ LOG; doit too-short

say too-long
fresh_log
cat EXTRALINE >> LOG; doit_error too-long

say unreadable
fresh_log; chmod a-r LOG
I > unreadable.out 2> 2REPORT
diff unreadable.out unreadable.ref
diff 2REPORT unreadable.2ref
chmod a+r LOG

exit 0
