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