+#!/bin/bash
# The Evaluator -- Master Control Script
# (c) 2001 Martin Mares <mj@ucw.cz>
. 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> <problem>"
+[ -n "$2" ] || die "Usage: ev <contestant> <problem> [<program>]"
CONTESTANT=$1
PROBLEM=$2
dir-init
box-init
# Compile the program
-locate-source
+locate-source $3
compile
# Perform the tests
+PTSFILE=$TDIR/points
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 ($POINTS_PER_TEST points)... "
echo "Test $TEST ($POINTS_PER_TEST points)"
- if [ ! -f $TDIR/compile.out ] ; then
- echo >$PTSFILE "0 --"
- die "No source file"
- fi
+ echo >>$PTSFILE -n "$TEST "
if [ ! -f $TDIR/$PROBLEM ] ; then
- echo >$PTSFILE "0 CE"
+ echo >$PTSFILE "0 Compile error."
die "No executable file"
fi
- $TEST_RUN_METHOD || exit 0
-
+ test-run || exit 0
+ syntax-check || exit 0
+ output-check || exit 0
echo "Test completed OK ($POINTS_PER_TEST points)"
- echo >$PTSFILE "$POINTS_PER_TEST OK"
+ echo >>$PTSFILE "$POINTS_PER_TEST OK"
pend "OK"
)
done