Bug 517071 - [tests] random fail in
JavaThreadEventHandlerTests.testComputeFrameIndexDuringEvaluation()
Slightly reduce evaluation wait time to give
JavaThreadEventHandler.waitIfEvaluationRuns() a chance to see evaluation
end before timeout. Also retry the test if it should fail.
Change-Id: Ia5815bdff447da56d7896e6ff34150ad5bd1b01c
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaThreadEventHandlerTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaThreadEventHandlerTests.java
index 5ee4d32..b941ead 100644
--- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaThreadEventHandlerTests.java
+++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/breakpoints/JavaThreadEventHandlerTests.java
@@ -24,6 +24,7 @@
import org.eclipse.jdt.debug.eval.IEvaluationListener;
import org.eclipse.jdt.debug.eval.IEvaluationResult;
import org.eclipse.jdt.debug.tests.AbstractDebugTest;
+import org.eclipse.jdt.debug.tests.TestAgainException;
import org.eclipse.jdt.internal.debug.eval.ast.engine.ASTEvaluationEngine;
import org.eclipse.jdt.internal.debug.ui.threadgroups.JavaDebugTargetProxy;
import org.eclipse.jdt.internal.debug.ui.threadgroups.JavaThreadEventHandler;
@@ -139,7 +140,7 @@
assertNotNull("suspended, but not by breakpoint", hit);
assertTrue("breakpoint was not a method breakpoint", hit instanceof IJavaMethodBreakpoint);
- final int sleepTimeMillis = 1000;
+ final int sleepTimeMillis = 750;
String snippet = "java.lang.Thread.sleep(" + sleepTimeMillis + "); return true;";
TaskOnFrame task = new TaskOnFrame() {
@Override
@@ -154,6 +155,9 @@
// indexOf method waits for evaluation and computes the right result
for (int i = 0; i < expectedFramesCount; i++) {
int index = eventHandler.indexOf(frames[i]);
+ if (index == -1) {
+ throw new TestAgainException("Evaluation took too long");
+ }
assertEquals(i, index);
}
Thread.sleep(sleepTimeMillis);