| #!/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 |