]> mj.ucw.cz Git - moe.git/blob - bin/ev
Added public scripts.
[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 PTSFILE=$TDIR/points
33 for TEST in $TESTS ; do
34         (
35         [ -f $PDIR/$TEST.config ] && . $PDIR/$TEST.config
36         exec >$TDIR/$TEST.log
37         pstart "Test $TEST ($POINTS_PER_TEST points)... "
38         echo "Test $TEST ($POINTS_PER_TEST points)"
39         echo >>$PTSFILE -n "$TEST "
40         if [ ! -f $TDIR/$PROBLEM ] ; then
41                 echo >$PTSFILE "0 Compile error."
42                 die "No executable file"
43         fi
44         test-run || exit 0
45         syntax-check || exit 0
46         output-check || exit 0
47         echo "Test completed OK ($POINTS_PER_TEST points)"
48         echo >>$PTSFILE "$POINTS_PER_TEST OK"
49         pend "OK"
50         )
51 done