diff --git a/core/org.eclipse.cdt.ui.tests/pom.xml b/core/org.eclipse.cdt.ui.tests/pom.xml index cf8f7d2f13e..1776624bce1 100644 --- a/core/org.eclipse.cdt.ui.tests/pom.xml +++ b/core/org.eclipse.cdt.ui.tests/pom.xml @@ -16,7 +16,8 @@ eclipse-test-plugin - + + @@ -37,7 +38,18 @@ - -Dindexer.timeout=${indexer.timeout} + -Dindexer.timeout=${indexer.timeout} + + + + display-timeout-multiplier-set + + + org.eclipse.cdt.ui.testplugin.DisplayHelper.TIMEOUT_MULTIPLIER + + + + -Dorg.eclipse.cdt.ui.testplugin.DisplayHelper.TIMEOUT_MULTIPLIER=${org.eclipse.cdt.ui.testplugin.DisplayHelper.TIMEOUT_MULTIPLIER} @@ -50,7 +62,7 @@ ${tycho-version} true - ${tycho.testArgLine} ${base.ui.test.vmargs} ${extra.vmargs} + ${tycho.testArgLine} ${base.ui.test.vmargs} ${extra.vmargs.indexer.timeout} ${extra.vmargs.displayhelper.timeoutmultipler} **/AutomatedSuite.* diff --git a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/DisplayHelper.java b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/DisplayHelper.java index f3269660766..04e5373e56f 100644 --- a/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/DisplayHelper.java +++ b/core/org.eclipse.cdt.ui.tests/src/org/eclipse/cdt/ui/testplugin/DisplayHelper.java @@ -33,6 +33,12 @@ import org.eclipse.swt.widgets.Display; * @since 4.0 */ public abstract class DisplayHelper { + private static final long TIMEOUT_MULTIPLIER; + static + { + TIMEOUT_MULTIPLIER = Integer.parseInt(System.getProperty("org.eclipse.cdt.ui.testplugin.DisplayHelper.TIMEOUT_MULTIPLIER", "1")); + } + /** * Creates a new instance. */ @@ -74,7 +80,7 @@ public abstract class DisplayHelper { // repeatedly sleep until condition becomes true or timeout elapses DisplayWaiter waiter= new DisplayWaiter(display); - DisplayWaiter.Timeout timeoutState= waiter.start(timeout); + DisplayWaiter.Timeout timeoutState= waiter.start(timeout * TIMEOUT_MULTIPLIER); boolean condition; try { do { @@ -210,7 +216,7 @@ public abstract class DisplayHelper { // repeatedly sleep until condition becomes true or timeout elapses DisplayWaiter waiter= new DisplayWaiter(display, true); long currentTimeMillis= System.currentTimeMillis(); - long finalTimeout= timeout + currentTimeMillis; + long finalTimeout= timeout * TIMEOUT_MULTIPLIER + currentTimeMillis; if (finalTimeout < currentTimeMillis) finalTimeout= Long.MAX_VALUE; boolean condition;