# Set lang do default to avoid failed tests because of locale
export LANG=C
+export NIT_TESTING=true
usage()
{
enginebinname=$engine
case $engine in
nitc) ;;
- nitg) ;;
+ nitg) OPT="--global $OPT";;
+ nitg-s) enginebinname=nitg; OPT="--separate $OPT";;
+ nitg-e) enginebinname=nitg; OPT="--erasure $OPT";;
nit) engine=niti ;;
niti) enginebinname=nit ;;
esac
# Set NIT_DIR if needed
[ -z "$NIT_DIR" ] && export NIT_DIR=..
+if sh -c "timelimit echo" 1>/dev/null 2>&1; then
+ TIMEOUT="timelimit -t 600"
+elif sh -c "timeout 1 echo" 1>/dev/null 2>&1; then
+ TIMEOUT="timeout 600s"
+else
+ echo "No timelimit or timeout command detected. Tests may hang :("
+fi
# Mark to distinguish files among tests
# MARK=
echo ""
echo $NITC --no-color $OPT -o "$ff.bin" "$i" "$includes"
fi
- NIT_NO_STACK=1 $NITC --no-color $OPT -o "$ff.bin" "$i" $includes 2> "$ff.cmp.err" > "$ff.compile.log"
+ NIT_NO_STACK=1 $TIMEOUT $NITC --no-color $OPT -o "$ff.bin" "$i" $includes 2> "$ff.cmp.err" > "$ff.compile.log"
ERR=$?
if [ "x$verbose" = "xtrue" ]; then
cat "$ff.compile.log"
echo ""
echo "NIT_NO_STACK=1 ./$ff.bin" $args
fi
- NIT_NO_STACK=1 "./$ff.bin" $args < "$inputs" > "$ff.res" 2>"$ff.err"
+ NIT_NO_STACK=1 $TIMEOUT "./$ff.bin" $args < "$inputs" > "$ff.res" 2>"$ff.err"
if [ "x$verbose" = "xtrue" ]; then
cat "$ff.res"
cat >&2 "$ff.err"
args="$line"
bff=$bf"_args"$cptr
fff=$ff"_args"$cptr
+ name="$bf args $cptr"
# Sould we skip the input for this engine?
- need_skip $bff " args #$cptr" && continue
+ need_skip $bff " $name" && continue
rm -rf "$fff.res" "$fff.err" "$fff.write" 2> /dev/null
if [ "x$verbose" = "xtrue" ]; then
echo ""
echo "NIT_NO_STACK=1 ./$ff.bin" $args
fi
- test -z "$tap" && echo -n "==> args #"$cptr " "
- sh -c "NIT_NO_STACK=1 ./$ff.bin ''$args < $inputs > $fff.res 2>$fff.err"
+ test -z "$tap" && echo -n "==> $name "
+ echo "./$ff.bin $args" > "./$fff.bin"
+ chmod +x "./$fff.bin"
+ sh -c "NIT_NO_STACK=1 $TIMEOUT ./$fff.bin < $inputs > $fff.res 2>$fff.err"
if [ "x$verbose" = "xtrue" ]; then
cat "$fff.res"
cat >&2 "$fff.err"
cp "$fff.res" "$fff.res2"
cat "$fff.err" "$fff.res2" > "$fff.res"
fi
- process_result $bff " args #$cptr"
+ process_result $bff " $name"
done < $fargs
fi
else