#!/bin/bash

black='\E[30m'
red='\E[31m'
green='\E[32m'
yellow='\E[33m'
blue='\E[34m'
magenta='\E[35m'
cyan='\E[36m'
white='\E[37m'

if [ -f $2 ]; then
  data=$2
  if [ -f $1.summ ]; then rm $1.summ; fi
  if [ -f $1.snap ]; then rm $1.snap; fi
else
  data=$1
fi

if ! ./$1 < $data > /dev/null 2> .runtest.log ; then
  echo -e  $red Test $1 failed: $black
  echo -e $blue
  cat .runtest.log
  echo -e $black
  exit 1
else
  if [ -f $1.summ ]; then
    if [ `grep "FATAL ERROR" $1.summ | wc -l` -gt 0 ]; then
      echo -e  $red "Test $1 failed (FATAL ERROR, read the file $1.summ for details)" $black
      echo -e $blue
      cat .runtest.log
      echo -e $black
      exit 1;
    fi

    if [ `grep "FAILED THE TESTS OF ERROR-EXITS" $1.summ | wc -l` -gt 0 ]; then
      echo -e  $red "Test $1 failed (FAILED THE TESTS OF ERROR-EXITS, read the file $1.summ for details)" $black
      echo -e $blue
      cat .runtest.log
      echo -e $black
      exit 1;
    fi      
  fi
  echo -e $green Test $1 passed$black
fi