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;