]> mj.ucw.cz Git - moe.git/blob - public/check
d5fecff46b3e1872cc429a1e8b70645286101693
[moe.git] / public / check
1 #!/bin/bash
2 # The Evaluator -- Public Checking Script
3 # (c) 2001--2004 Martin Mares <mj@ucw.cz>
4
5 set -e
6 [ -n "$MO_ROOT" -a -d "$MO_ROOT" ] || { echo >&2 "MO_ROOT not set, giving up." ; exit 1 ; }
7 . $MO_ROOT/bin/lib
8 . $MO_ROOT/config
9
10 [ -n "$1" ] || die "Usage: check <problem> [<test-number>]"
11 PROBLEM=$1
12 public-setup
13 . $PDIR/config
14
15 function test-verdict
16 {
17         pend "$2"
18         if [ $1 == 0 ] ; then
19                 exit 1
20         else
21                 exit 0
22         fi
23 }
24
25 if [ $TASK_TYPE == open-data ] ; then
26         [ -n "$2" ] || die "You need to specify test number for open data problems."
27         TEST=$2
28         pstart "Checking $TEST: "
29         open-locate
30         ln $SRCN $TDIR/$TEST.out
31         syntax-check
32         test-result 1 OK
33 else
34         [ -z "$2" ] || die "Test number should be given only for open data problems."
35         locate-source
36         compile
37         RC=0
38         for TEST in $SAMPLE_TESTS ; do
39                 (
40                 pstart "Checking on sample input $TEST: "
41                 test-run
42                 syntax-check
43                 output-check
44                 ) || RC=1
45         done
46         exit $RC
47 fi