]> mj.ucw.cz Git - moe.git/blob - bin/ev
c25f97a7af9670e9716876efd71adbb68e22a05c
[moe.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         pstart "Test $TEST... "
35         [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config
36         exec >$TDIR/$TEST.log
37         PTSFILE=$TDIR/$TEST.pts
38         echo "Test $TEST ($POINTS_PER_TEST points)"
39         if [ ! -f $TDIR/compile.out ] ; then
40                 echo >$PTSFILE "0 --"
41                 die "No source file"
42         fi
43         if [ ! -f $TDIR/$PROBLEM ] ; then
44                 echo >$PTSFILE "0 CE"
45                 die "No executable file"
46         fi
47         $TEST_RUN_METHOD || exit 0
48
49         echo "Test completed OK ($POINTS_PER_TEST points)"
50         echo >$PTSFILE "$POINTS_PER_TEST OK"
51         pend "OK"
52         )
53 done