X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=bin%2Fev-open;h=663943e6ddb9e141895330e6824783e943fc6f15;hb=51e6d3494735a2f5ab576731d7c14ae535550573;hp=735baf2f95d55b5818e681339ee2f6aad1d148f3;hpb=46cb5fe3ef32528bd25f62e575244aef70d82b92;p=eval.git diff --git a/bin/ev-open b/bin/ev-open index 735baf2..663943e 100755 --- a/bin/ev-open +++ b/bin/ev-open @@ -1,6 +1,6 @@ #!/bin/bash # The Evaluator for Open Data Problems -# (c) 2001 Martin Mares +# (c) 2001--2004 Martin Mares set -e if [ ! -f config -o ! -f bin/lib ] ; then @@ -10,14 +10,6 @@ fi . bin/lib . config -# Set up environment: -# HDIR home dir of the evaluator -# PDIR problem specific data -# SDIR contestant's solution -# TDIR test results -# BOXDIR sandbox -# PROBLEM problem we're evaluating - [ -n "$2" ] || die "Usage: ev-open " CONTESTANT=$1 PROBLEM=$2 @@ -25,23 +17,33 @@ dir-init log-init . $PDIR/config +# 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 PTSFILE=$TDIR/points for TEST in $TESTS ; do ( [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config exec >$TDIR/$TEST.log - pstart "Test $TEST ($POINTS_PER_TEST points)... " + pstart "Test $TEST... " echo "Test $TEST ($POINTS_PER_TEST points)" - echo >>$PTSFILE -n "$TEST " - if [ ! -f $SDIR/$TEST.out ] ; then - echo >>$PTSFILE "0 No solution." - die "No solution." - fi - syntax-check || exit 0 - output-check || exit 0 - echo "Test completed OK ($POINTS_PER_TEST points)" - echo >>$PTSFILE "$POINTS_PER_TEST OK" - pend "OK" + [ -f $SDIR/$TEST.out ] || test-result 0 "No solution." + ln $SDIR/$TEST.out $TDIR/$TEST.out + syntax-check + output-check + die "You must never see this message." ) done