From a3860a4cd6ca6a1ee664634ea472b5487535b2b5 Mon Sep 17 00:00:00 2001 From: Carlo Zancanaro Date: Wed, 24 Oct 2012 10:34:15 +1100 Subject: Add a fix for mutually-recursive infinite things So now it will solve correctly for x = y + 1 y = max(0, x + 1) I also added in tests for this (and a slightly different form with `x` going through another variable, `z`, for indirection). The tests will also stop now after five seconds of execution. If they can't be solved in five seconds then they're considered a failure. --- impl/test/run | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'impl/test/run') diff --git a/impl/test/run b/impl/test/run index 0c1886d..826bbde 100644 --- a/impl/test/run +++ b/impl/test/run @@ -7,7 +7,10 @@ FAILED=0 echo "Testing binary: $1 in directory $DIR" while [ -f "$DIR/$NUM.eqns" ] do - OUTPUT=$($1 "$DIR/$NUM.eqns") + OUTPUT=$(timeout 5s $1 "$DIR/$NUM.eqns") + if [ $? -eq 124 ]; then + OUTPUT="did not terminate" + fi DIFF=$(echo "$OUTPUT" | diff - "$DIR/$NUM.soln") if [ ! -z "$DIFF" ]; then echo "==================" -- cgit v1.2.3