X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=bin%2Fev;h=554e5dc874778df2d980539088e1d30365475242;hb=51e6d3494735a2f5ab576731d7c14ae535550573;hp=c25f97a7af9670e9716876efd71adbb68e22a05c;hpb=762cd19388d4958967e087226acd8875ab997c68;p=eval.git diff --git a/bin/ev b/bin/ev index c25f97a..554e5dc 100755 --- a/bin/ev +++ b/bin/ev @@ -1,5 +1,6 @@ +#!/bin/bash # The Evaluator -- Master Control Script -# (c) 2001 Martin Mares +# (c) 2001--2004 Martin Mares set -e if [ ! -f config -o ! -f bin/lib ] ; then @@ -9,14 +10,7 @@ fi . bin/lib . config -# Set up environment: -# PDIR problem specific data -# SDIR contestant's solution -# TDIR test results -# BOXDIR sandbox -# PROBLEM problem we're evaluating - -[ -n "$2" ] || die "Usage: ev " +[ -n "$2" -a -z "$4" ] || die "Usage: ev []" CONTESTANT=$1 PROBLEM=$2 dir-init @@ -25,29 +19,34 @@ log-init box-init # Compile the program -locate-source -compile +locate-source $3 +compile || true + +# Initialize the points file +PTSFILE=$TDIR/points +>$PTSFILE + +function test-verdict +{ + if [ $1 == 0 ] ; then + pend "$2" + else + pend "$2 ($1 points)" + fi + echo >>$PTSFILE "$TEST $1 $2" + exit 0 +} # Perform the tests for TEST in $TESTS ; do ( - pstart "Test $TEST... " [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config exec >$TDIR/$TEST.log - PTSFILE=$TDIR/$TEST.pts + pstart "Test $TEST... " echo "Test $TEST ($POINTS_PER_TEST points)" - if [ ! -f $TDIR/compile.out ] ; then - echo >$PTSFILE "0 --" - die "No source file" - fi - if [ ! -f $TDIR/$PROBLEM ] ; then - echo >$PTSFILE "0 CE" - die "No executable file" - fi - $TEST_RUN_METHOD || exit 0 - - echo "Test completed OK ($POINTS_PER_TEST points)" - echo >$PTSFILE "$POINTS_PER_TEST OK" - pend "OK" + test-run + syntax-check + output-check + die "You must never see this message." ) done