#!/bin/sh

echo -n 'Fail: '
for i in `ls -1 test/fail/*/in | sort +0.10 -n`; do
  NUMBER=`echo $i | tr -dc [0-9]`
  if [ -k $i ]; then
    echo -n "($NUMBER) "
    continue
  fi
  echo -n "$NUMBER "
  DIR=`dirname $i`

  ./algol60 < $i > /dev/null 2> $DIR/err2
  diff -u $DIR/err $DIR/err2 2> /dev/null
  mv -f $DIR/err2 $DIR/err
done
echo "done."

echo -n 'Pass: '
for i in `ls -1 test/pass/*/in | sort +0.10 -n`; do
  NUMBER=`echo $i | tr -dc [0-9]`
  if [ -k $i ]; then
    echo -n "($NUMBER) "
    continue
  fi
  echo -n "$NUMBER "
  DIR=`dirname $i`

  ./algol60 < $i > $DIR/mu2 2> /dev/null
  diff -u $DIR/mu $DIR/mu2
  mv -f $DIR/mu2 $DIR/mu

  if [ -f $DIR/mubug ]; then
    egrep '^declare' $DIR/mu > test/.mubugdecl
    egrep -v '^declare' $DIR/mu > test/.mubugcode
    cat test/.mubug{decl,code} > test/.chking
    rm -f test/.mubug{decl,code}
    ../mu < test/.chking > $DIR/out2 2> /dev/null
  else
    ../mu < $DIR/mu > $DIR/out2 2> /dev/null
  fi
  diff -u $DIR/out $DIR/out2
  mv -f $DIR/out2 $DIR/out
done
echo "done."
