#!/bin/bash

ERG=0

# compare the files
function compfile() {
	NAME="$1"
	ERW="$2"
	FILE="$NAME.$ERW"
	
	if [ -f "$FILE" ]; then
		if [ "$FILE" -ot "$NAME.time" ]; then
			echo "$NAME: file $FILE was not newly created"
			echo "less $NAME.stderr"
			ERG=1
			exit $ERG
		fi
	fi

	test -s "$FILE"; FLA=$?
	test -s "$NAME.comp.$ERW"; FLB=$?

	if [ "$FLA" = 1 -o "$FLB" = 1 ]; then
		if [ "$FLA" = 0 ]; then
			echo "$NAME: file $FILE is not empty"
			echo "less $FILE"
			ERG=2
			exit $ERG
		elif [ "$FLB" = 0 ]; then
			echo "$NAME: file $FILE is empty"
			ERG=3
			exit $ERG
		fi
	else
		if  [[ $OSTYPE == *linux* ]]; then 
			if [ -f "$NAME.comp.$ERW.linux" ]; then
				diff -b "$FILE" "$NAME.comp.$ERW.linux" >/dev/null
			else
				diff -b "$FILE" "$NAME.comp.$ERW" >/dev/null
			fi
		else 
			diff -b "$FILE" "$NAME.comp.$ERW" >/dev/null
		fi
		if [ $? != 0 ]; then
			echo "$NAME: file $FILE is different to the compared file"
			echo "diff $FILE $NAME.comp.$ERW | less"
			ERG=4
			exit $ERG
		fi
	fi

}

eval "DATEI=\$1"
DATEI=${DATEI%.py}
#echo $DATEI

touch "$DATEI.time"

./pyCmplTest $1 >"$DATEI.stdout" 2>"$DATEI.stderr"

# tests for stdout / stderr
if [ $2 == "testStdOut" ]; then
	compfile "$DATEI" stdout
fi	
compfile "$DATEI" stderr
compfile "$DATEI" sol
compfile "$DATEI" csol
compfile "$DATEI" csv


if [ "$ERG" = 0 ]; then	
	echo "$DATEI : OK"
fi

if [ -f "$DATEI.stdout" ] ; then rm "$DATEI.stdout" ; fi
if [ -f "$DATEI.stderr" ] ; then rm "$DATEI.stderr" ; fi
if [ -f "$DATEI.sol" ] ; then rm "$DATEI.sol" ; fi

exit $ERG

