]> mj.ucw.cz Git - eval.git/blobdiff - bin/lib
Reworked the installation machinery.
[eval.git] / bin / lib
diff --git a/bin/lib b/bin/lib
index c83367f5e2d4fc070b273450a9c9449c59a1616d..588cf269b5c4ec98522cc59a5bfaf9f36e5ae487 100644 (file)
--- a/bin/lib
+++ b/bin/lib
@@ -202,7 +202,8 @@ function test-prolog
                        ;;
                stdio)  echo "Input file: <stdin> (from $PDIR/$TEST.in)"
                        ln $PDIR/$TEST.in $TDIR/$TEST.in
-                       BOX_EXTRAS="$BOX_EXTRAS -i$TDIR/$TEST.in"
+                       cp $PDIR/$TEST.in $BOXDIR/.stdin
+                       BOX_EXTRAS="$BOX_EXTRAS -i.stdin"
                        ;;
                none)   echo "Input file: <none>"
                        ;;
@@ -214,7 +215,7 @@ function test-prolog
                        BOX_EXTRAS="$BOX_EXTRAS -o/dev/null"
                        ;;
                stdio)  echo "Output file: <stdout>"
-                       BOX_EXTRAS="$BOX_EXTRAS -o$TDIR/$TEST.out"
+                       BOX_EXTRAS="$BOX_EXTRAS -o.stdout"
                        ;;
                none)   echo "Output file: <none>"
                        ;;
@@ -236,7 +237,8 @@ function test-epilog
                file)   [ -f $BOXDIR/$PROBLEM.out ] || test-result 0 "No output file."
                        cp $BOXDIR/$PROBLEM.out $TDIR/$TEST.out
                        ;;
-               stdio)  [ -f $TDIR/$TEST.out ] || test-result 0 "No output file."
+               stdio)  [ -f $BOXDIR/.stdout ] || test-result 0 "No output file."
+                       cp $BOXDIR/.stdout $TDIR/$TEST.out
                        ;;
        esac
 }
@@ -250,7 +252,8 @@ function test-run-file
        BOXOPTS="`eval echo $TEST_SANDBOX_OPTS`$BOX_EXTRAS"
        echo "Sandbox options: $BOXOPTS"
        if ! $BOXCMD $BOXOPTS -- ./$PROBLEM 2>$TMPDIR/exec.out ; then
-               MSG=`head -1 $TMPDIR/exec.out`
+               cat $TMPDIR/exec.out
+               MSG=`tail -1 $TMPDIR/exec.out`
                test-result 0 "$MSG"
        fi
        cat $TMPDIR/exec.out
@@ -268,7 +271,8 @@ function test-run-interactive
        ICCMD=`eval echo $IA_CHECK`
        echo "Interactive checker: $ICCMD"
        if ! $HDIR/bin/iwrapper $BOXCMD $BOXOPTS -- ./$PROBLEM @@ $ICCMD 2>$TMPDIR/exec.out ; then
-               MSG="`head -1 $TMPDIR/exec.out`"
+               cat $TMPDIR/exec.out
+               MSG="`tail -1 $TMPDIR/exec.out`"
                test-result 0 "$MSG"
        fi
        cat $TMPDIR/exec.out
@@ -284,7 +288,8 @@ function syntax-check
        SCHECK=`eval echo $SYNTAX_CHECK`
        echo "Syntax check command: $SCHECK"
        if ! eval $SCHECK 2>$TMPDIR/exec.out ; then
-               MSG=`head -1 $TMPDIR/exec.out`
+               cat $TMPDIR/exec.out
+               MSG=`tail -1 $TMPDIR/exec.out`
                if [ -z "$MSG" ] ; then MSG="Wrong syntax." ; fi
                test-result 0 "$MSG"
        fi
@@ -301,11 +306,13 @@ function output-check
        OCHECK=`eval echo $OUTPUT_CHECK`
        echo "Output check command: $OCHECK"
        if ! eval $OCHECK 2>$TMPDIR/exec.out ; then
-               MSG=`head -1 $TMPDIR/exec.out`
+               cat $TMPDIR/exec.out
+               MSG=`tail -1 $TMPDIR/exec.out`
                if [ -z "$MSG" ] ; then MSG="Wrong answer." ; fi
                test-result 0 "$MSG"
        fi
-       MSG=`head -1 $TMPDIR/exec.out`
+       cat $TMPDIR/exec.out
+       MSG=`tail -1 $TMPDIR/exec.out`
        if [ -z "$MSG" ] ; then MSG="OK" ; fi
        test-result $POINTS_PER_TEST "$MSG"
 }
@@ -314,8 +321,8 @@ function output-check
 
 function public-setup
 {
-       HDIR=$MO_PUBLIC
-       PDIR=$MO_PUBLIC/problems/$PROBLEM
+       HDIR=$MO_ROOT
+       PDIR=$MO_ROOT/problems/$PROBLEM
        SDIR=.
        TDIR=~/.test
        TMPDIR=~/.test
@@ -327,7 +334,7 @@ function public-setup
        BOXDIR=~/.box
        mkdir -p $BOXDIR
        rm -rf $BOXDIR/*
-       BOXCMD="$MO_PUBLIC/bin/box -c$BOXDIR"
+       BOXCMD="$MO_ROOT/bin/box -c$BOXDIR"
        exec >log
        pend "OK  (see 'log' for details)"
 }