diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java index b4a87cb576a31271e9dfabd0abbaf80e4c189b2b..5e5218f56c802ae968089997b7f022015dee9803 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/TestBase.java @@ -97,7 +97,8 @@ public class TestBase { } public enum Context implements TestTrait { - NonShared; // Test requires a new non-shared {@link RContext}. + NonShared, // Test requires a new non-shared {@link RContext}. + LongTimeout; // Test requires a long timeout } /** @@ -665,7 +666,7 @@ public class TestBase { microTestInfo.expression = input; String result; try { - result = fastROutputManager.fastRSession.eval(input, contextInfo); + result = fastROutputManager.fastRSession.eval(input, contextInfo, false); } catch (Throwable e) { String clazz; if (e instanceof RInternalError && e.getCause() != null) { diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java index 2676ef74024676c4fb19b609c37a9e9644671ae9..3f09fb01ea81f59fd26feae31f4f8fd9dee83986 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/FastRSession.java @@ -49,7 +49,8 @@ import com.oracle.truffle.r.test.TestBase; public final class FastRSession implements RSession { - private static final int TIMEOUT = System.getProperty("DisableTestTimeout") != null ? Integer.MAX_VALUE : 20000; + private static final int DEFAULT_TIMEOUT = System.getProperty("DisableTestTimeout") != null ? Integer.MAX_VALUE : 10000; + private static final int LONG_TIMEOUT = System.getProperty("DisableTestTimeout") != null ? Integer.MAX_VALUE : 60000; /** * A (virtual) console handler that collects the output in a {@link StringBuilder} for @@ -176,7 +177,7 @@ public final class FastRSession implements RSession { @Override @SuppressWarnings("deprecation") - public String eval(String expression, ContextInfo contextInfo) throws Throwable { + public String eval(String expression, ContextInfo contextInfo, boolean longTimeout) throws Throwable { consoleHandler.reset(); EvalThread thread = evalThread; @@ -190,7 +191,7 @@ public final class FastRSession implements RSession { thread.push(expression); try { - if (!thread.await(TIMEOUT)) { + if (!thread.await(longTimeout ? LONG_TIMEOUT : DEFAULT_TIMEOUT)) { consoleHandler.println("<timeout>"); thread.stop(); evalThread = null; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/GnuROneShotRSession.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/GnuROneShotRSession.java index d9e8a2fbf908befc53bdf9f9f05bf9ef49bc84e0..793c65dbafdf21ccbce6b88a4fc868c5d56baa8e 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/GnuROneShotRSession.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/GnuROneShotRSession.java @@ -93,7 +93,7 @@ public class GnuROneShotRSession implements RSession { } @Override - public String eval(String expression, ContextInfo contextInfo) { + public String eval(String expression, ContextInfo contextInfo, boolean longTimeout) { if (expression.contains("library(") && !TestBase.generatingExpected()) { System.out.println("=============================================="); System.out.println("LIBRARY LOADING WHILE CREATING EXPECTED OUTPUT"); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/RSession.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/RSession.java index 3c362b55c3d28f73250c24ba428adb64c3afdbba..94ec8c3413e5fc0f9d14ab697d57517784774d8b 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/RSession.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/RSession.java @@ -33,8 +33,9 @@ public interface RSession { * * If {@code contextInfo is non-null} it is used for the evaluation, else the choice is left to * the implementation. + * @param longTimeout TODO */ - String eval(String expression, ContextInfo contextInfo) throws Throwable; + String eval(String expression, ContextInfo contextInfo, boolean longTimeout) throws Throwable; /** * A name to identify the session. diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/TestOutputManager.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/TestOutputManager.java index ae41bbe4739a0ecfac2439c9961eb4d85dbf59dc..02d8aff7a4e39c28e9cabc3bfd8fb3333512dfa6 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/TestOutputManager.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/generate/TestOutputManager.java @@ -360,7 +360,7 @@ public class TestOutputManager { String expected = null; if (!checkOnly) { try { - expected = rSession.eval(test, null); + expected = rSession.eval(test, null, false); } catch (Throwable e) { throw RInternalError.shouldNotReachHere("unexpected exception thrown by GNUR session: " + e); } diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRecommendedPackages.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRecommendedPackages.java index 777cd8db8c76fc9eb8c7a0fa9b6a70d702e9842d..805565cf8225137ee12af9ceed4fc19cf296a6cc 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRecommendedPackages.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/rpackages/TestRecommendedPackages.java @@ -64,6 +64,6 @@ public class TestRecommendedPackages extends TestRPackages { @Test public void testLoad() { - assertEval(Context.NonShared, TestBase.template("{ library(%1, lib.loc = \"%0\"); detach(\"package:%1\"); }", new String[]{TestRPackages.libLoc()}, OK_PACKAGES)); + assertEval(Context.NonShared, Context.LongTimeout, TestBase.template("{ library(%1, lib.loc = \"%0\"); detach(\"package:%1\"); }", new String[]{TestRPackages.libLoc()}, OK_PACKAGES)); } }