]> mj.ucw.cz Git - moe.git/blob - public/check
Submitd: each access rule can contain multiple addrmasks.
[moe.git] / public / check
1 #!/bin/bash
2 # The Evaluator -- Public Checking Script
3 # (c) 2001--2007 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 function usage
11 {
12         die "Usage: check [-s <source-file>] <problem> [<test-number>]"
13 }
14
15 SRCFILE=
16 while getopts "s:" opt ; do
17         case $opt in
18                 s)      SRCFILE="$OPTARG"
19                         ;;
20                 *)      usage
21                         ;;
22         esac
23 done
24 shift $(($OPTIND-1))
25 [ -n "$1" ] || usage
26 PROBLEM=$1
27 TEST=
28 shift
29 if [ -n "$1" ] ; then
30         TEST="$1"
31         shift
32 fi
33 [ -z "$1" ] || usage
34
35 public-setup
36 . $PDIR/config
37
38 function test-verdict
39 {
40         pend "$2"
41         if [ $1 == 0 ] ; then
42                 exit 1
43         else
44                 exit 0
45         fi
46 }
47
48 if [ $TASK_TYPE == open-data ] ; then
49         [ -n "$TEST" ] || die "You need to specify test number for open data problems."
50         pstart "Checking $TEST: "
51         open-locate "$SRCFILE"
52         ln "$SRCN" $TDIR/$TEST.out
53         syntax-check
54         test-result 1 OK
55 else
56         [ -z "$TEST" ] || die "Test number should be given only for open data problems."
57         locate-source "$SRCFILE"
58         compile
59         RC=0
60         for TEST in $SAMPLE_TESTS ; do
61                 (
62                 pstart "Checking on sample input $TEST: "
63                 test-run
64                 syntax-check
65                 output-check
66                 ) || RC=1
67         done
68         exit $RC
69 fi