#!/bin/bash # The Evaluator -- Master Control Script # (c) 2001--2003 Martin Mares set -e if [ ! -f config -o ! -f bin/lib ] ; then echo "Unable to find evaluator files!" exit 1 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 []" CONTESTANT=$1 PROBLEM=$2 dir-init log-init . $PDIR/config box-init # Compile the program locate-source $3 compile || true # 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... " echo "Test $TEST" echo >>$PTSFILE -n "$TEST " if [ ! -f $TDIR/$PROBLEM ] ; then echo >>$PTSFILE "0 Compile error." die "No executable file" fi test-run || exit 0 syntax-check || exit 0 output-check || exit 0 if [ -f $TDIR/$TEST.pts ] ; then PTS=`cat $TDIR/$TEST.pts` else PTS=$POINTS_PER_TEST fi echo "Test completed OK ($PTS points)" echo >>$PTSFILE "$PTS OK" pend "OK, $PTS points" ) done