@@ -1,41 +1,10 @@
11#!/usr/bin/env bash
22
3+set -eu
34
4−declare -a extraargs
5−for arg in "$@"
6−do
7− extraargs=("${extraargs[@]}" "'$arg'")
8−done
5+TIMEOUT=../scripts/timeout
96
10−if (which timeout&>/dev/null); then
11− timeout 10 ${IDRIS:-idris} $@ Main.idr --nocolour --check --warnreach -o basic010
12− timeout 5 ./basic010
13−else
14− # From http://unix.stackexchange.com/questions/43340/how-to-introduce-timeout-for-shell-scripting
15− # Here copied from reg039.
16− #
17− # Executes command with a timeout
18− # Params:
19− # $1 timeout in seconds
20− # $2 command
21− # Returns 1 if timed out 0 otherwise
22− timeout() {
7+$TIMEOUT 10 "${IDRIS:-idris}" "$@" Main.idr --nocolour --check --warnreach -o basic010
8+$TIMEOUT 5 ./basic010
239
24− time=$1
25−
26− # start the command in a subshell to avoid problem with pipes
27− # (spawn accepts one command)
28− command="/bin/sh -c \"$2\""
29−
30− expect -c "set echo \"-noecho\"; set timeout $time; spawn -noecho $command; expect timeout { exit 1 } eof { exit 0 }" | perl -pe 's/\r$//'
31−
32− if [ $? = 1 ] ; then
33− echo "Timeout after ${time} seconds"
34− fi
35−
36− }
37−
38− timeout 10 "${IDRIS:-idris} ${extraargs[*]} Main.idr --nocolour --check --warnreach -o basic010"
39− timeout 5 "./basic010"
40−fi
41−rm -f *.ibc basic010
10+rm -f -- *.ibc basic010