]> mj.ucw.cz Git - eval.git/blob - bin/ev
Basically works.
[eval.git] / bin / ev
1 # The Evaluator -- Master Control Script
2 # (c) 2001 Martin Mares <mj@ucw.cz>
3
4 set -e
5 if [ ! -f config -o ! -f bin/lib ] ; then
6         echo "Unable to find evaluator files!"
7         exit 1
8 fi
9 . bin/lib
10 . config
11
12 # Set up environment:
13 #   PDIR        problem specific data
14 #   SDIR        contestant's solution
15 #   TDIR        test results
16 #   BOXDIR      sandbox
17 #   PROBLEM     problem we're evaluating
18
19 [ -n "$2" ] || die "Usage: ev <contestant> <problem>"
20 CONTESTANT=$1
21 PROBLEM=$2
22 dir-init
23 log-init
24 . $PDIR/config
25 box-init
26
27 # Compile the program
28 locate-source
29 compile
30
31 # Perform the tests
32 for TEST in $TESTS ; do
33         (
34         [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config
35         exec >$TDIR/$TEST.log
36         PTSFILE=$TDIR/$TEST.pts
37         pstart "Test $TEST ($POINTS_PER_TEST points)... "
38         echo "Test $TEST ($POINTS_PER_TEST points)"
39         if [ ! -f $TDIR/$PROBLEM ] ; then
40                 echo >$PTSFILE "0 Compile error."
41                 die "No executable file"
42         fi
43         $TEST_RUN_METHOD || exit 0
44         syntax-check || exit 0
45         output-check || exit 0
46         echo "Test completed OK ($POINTS_PER_TEST points)"
47         echo >$PTSFILE "$POINTS_PER_TEST OK"
48         pend "OK"
49         )
50 done