50 lines
1.1 KiB
Bash
50 lines
1.1 KiB
Bash
#!/bin/bash
|
|
EXEFILE=$3
|
|
ANGELIXPRE=$ANGELIX_RUN
|
|
INPUT_NAME=$1
|
|
OUTPUT_NAME=$2
|
|
MY_TIMEOUT=$4
|
|
MY_NAME=my_output
|
|
# rm -R $MY_NAME* &>/dev/null
|
|
run_test()
|
|
{
|
|
test_case="$1"
|
|
|
|
echo $MY_TIMEOUT
|
|
if ! `which gtime` -o $MY_TIMEOUT -f "(%es)" gtimeout -k 50s 50s $ANGELIXPRE $EXEFILE < $test_case | sed -e '/^$/d' -e 's/^[ \t]*//' > $test_case$MY_NAME; then
|
|
echo Sample test \#$test_case: Runtime Error`cat $MY_TIMEOUT`
|
|
echo ========================================
|
|
echo Sample Input \#$test_case
|
|
cat $test_case
|
|
exit 2
|
|
else
|
|
if grep "Command" $MY_TIMEOUT; then
|
|
echo "ERROR";
|
|
exit -1;
|
|
fi
|
|
if diff --brief -w $test_case$MY_NAME $2; then
|
|
echo Sample test \#$test_case: Accepted`cat $MY_TIMEOUT`
|
|
exit 0
|
|
else
|
|
echo Sample test \#$test_case: Wrong Answer`cat $MY_TIMEOUT`
|
|
echo ========================================
|
|
echo Sample Input \#$test_case
|
|
cat $test_case
|
|
echo ========================================
|
|
echo Sample Output \#$2
|
|
cat $2
|
|
echo ========================================
|
|
echo My Output \#$test_case$MY_NAME
|
|
cat $test_case$MY_NAME
|
|
echo ========================================
|
|
exit 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
run_test "$INPUT_NAME" "$OUTPUT_NAME" ;
|
|
|
|
esac
|
|
exit 1
|
|
|