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