]> mj.ucw.cz Git - eval.git/blobdiff - eval/libeval.sh
Updated TODO.
[eval.git] / eval / libeval.sh
index bd3968bbca74a06169f64a599b2231484432ae77..d3d0e96b0093826b15dfb9c135aa0477848d9cc1 100644 (file)
@@ -111,7 +111,7 @@ function box-clean
 function dir-init
 {
        pstart "Initializing... "
-       [ -z "$HDIR" ] && HDIR=`pwd`
+       [ -z "$HDIR" ] && HDIR=.
        PDIR=$HDIR/problems/$PROBLEM
        SDIR=$HDIR/solutions/$CONTESTANT/$PROBLEM
        TDIR=$HDIR/testing/$CONTESTANT/$PROBLEM
@@ -305,6 +305,15 @@ function test-prolog
                        ;;
                none)   echo "Input file: <none>"
                        ;;
+               dir)    echo "Input file: files in directory $PDIR/$TEST.in/"
+                       [ -d $PDIR/$TEST.in ] || die "Not a directory: $PDIR/$TEST.in"
+                       # TODO: recursive ln to $TDIR
+                       cp -r $PDIR/$TEST.in $TDIR/$TEST.in
+                       cp -r $PDIR/$TEST.in/* $BOXDIR/
+                       # Can have .stdin, but empty by default
+                       touch $BOXDIR/.stdin
+                       BOX_EXTRAS="$BOX_EXTRAS -i.stdin"
+                       ;;
                *)      die "Unknown IN_TYPE $IN_TYPE"
                        ;;
        esac
@@ -382,7 +391,10 @@ function test-run-file
        pcont "<run> "
        BOXOPTS=$(expand-var TEST_SANDBOX_OPTS)
        echo "Sandbox options: $BOXOPTS"
-       if ! $BOXCMD $BOXOPTS -- ./$PROBLEM 2>$TMPDIR/exec.out ; then
+       EXECMD=$(expand-var TEST_EXEC_CMD)
+       [ -z "$EXECMD" ] || echo "Exec command: $EXECMD" 
+       [ -z "$EXECMD" ] && EXECMD="./$PROBLEM" 
+       if ! $BOXCMD $BOXOPTS -- $EXECMD 2>$TMPDIR/exec.out ; then
                cat $TMPDIR/exec.out
                MSG=`tail -1 $TMPDIR/exec.out`
                test-result 0 "$MSG"
@@ -401,7 +413,10 @@ function test-run-interactive
        echo "Sandbox options: $BOXOPTS"
        ICCMD=$(expand-var IA_CHECK)
        echo "Interactive checker: $ICCMD"
-       if ! $HDIR/bin/iwrapper $BOXCMD $BOXOPTS -- ./$PROBLEM @@ $ICCMD 2>$TMPDIR/exec.out ; then
+       EXECMD=$(expand-var TEST_EXEC_CMD)
+       [ -z "$EXECMD" ] || echo "Exec command: $EXECMD" 
+       [ -z "$EXECMD" ] && EXECMD="./$PROBLEM" 
+       if ! $HDIR/bin/iwrapper $BOXCMD $BOXOPTS -- $EXECMD @@ $ICCMD 2>$TMPDIR/exec.out ; then
                cat $TMPDIR/exec.out
                MSG="`head -1 $TMPDIR/exec.out`"
                test-result 0 "$MSG"