From 15f375f34527b01561cb8ac62f7ae8698f19f20e Mon Sep 17 00:00:00 2001 From: Mick Jordan <mick.jordan@oracle.com> Date: Fri, 17 Jun 2016 08:43:46 -0700 Subject: [PATCH] Increase timeout for package installation testing --- .../src/com/oracle/truffle/r/test/TestBase.java | 5 +++-- .../com/oracle/truffle/r/test/generate/FastRSession.java | 7 ++++--- .../truffle/r/test/generate/GnuROneShotRSession.java | 2 +- .../src/com/oracle/truffle/r/test/generate/RSession.java | 3 ++- .../oracle/truffle/r/test/generate/TestOutputManager.java | 2 +- .../truffle/r/test/rpackages/TestRecommendedPackages.java | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) 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 b4a87cb576..5e5218f56c 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 2676ef7402..3f09fb01ea 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 d9e8a2fbf9..793c65dbaf 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 3c362b55c3..94ec8c3413 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 ae41bbe473..02d8aff7a4 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 777cd8db8c..805565cf82 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)); } } -- GitLab