]> mj.ucw.cz Git - moe.git/blob - public/retest
Cleaned up handling of SDIR and SRCN.
[moe.git] / public / retest
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 HDIR=/mo/cpspc/day1/
37 PDIR=$HDIR/problems/$PROBLEM
38 . $PDIR/config
39
40 function test-verdict
41 {
42         pend "$2"
43         if [ $1 == 0 ] ; then
44                 exit 1
45         else
46                 exit 0
47         fi
48 }
49
50 if [ $TASK_TYPE == open-data ] ; then
51         [ -n "$TEST" ] || die "You need to specify test number for open data problems."
52         pstart "Checking $TEST: "
53         open-locate $SRCFILE
54         ln $SRCN $TDIR/$TEST.out
55         syntax-check
56         test-result 1 OK
57 else
58         [ -z "$TEST" ] || die "Test number should be given only for open data problems."
59         locate-source $SRCFILE
60         compile
61         RC=0
62         for TEST in $TESTS ; do
63                 (
64                 pstart "Checking on sample input $TEST: "
65                 test-run
66                 syntax-check
67                 output-check
68                 ) || RC=1
69         done
70         exit $RC
71 fi