Bug 178641 conditional breakpoint performance test failure
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java index 7386219..bfd378f 100644 --- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java +++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/AbstractDebugTest.java
@@ -366,6 +366,28 @@ assertNotNull("Could not locate launch configuration for " + mainTypeName, config); return launchAndTerminate(config, DEFAULT_TIMEOUT); } + + /** + * Launches the given configuration in debug mode, and waits for a terminate + * event in that program. Returns the debug target in which the terminate + * event occurred. + * + * @param config the configuration to launch + * @param timeout the number of milliseconds to wait for a terminate event + * @param register whether to register the launch + * @return thread in which the first suspend event occurred + */ + protected IJavaDebugTarget launchAndTerminate(ILaunchConfiguration config, int timeout, boolean register) throws Exception { + DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IJavaDebugTarget.class); + waiter.setTimeout(timeout); + + Object terminatee = launchAndWait(config, waiter, register); + assertNotNull("Program did not terminate.", terminatee); + assertTrue("terminatee is not an IJavaDebugTarget", terminatee instanceof IJavaDebugTarget); + IJavaDebugTarget debugTarget = (IJavaDebugTarget) terminatee; + assertTrue("debug target is not terminated", debugTarget.isTerminated() || debugTarget.isDisconnected()); + return debugTarget; + } /** * Launches the given configuration in debug mode, and waits for a terminate @@ -377,15 +399,7 @@ * @return thread in which the first suspend event occurred */ protected IJavaDebugTarget launchAndTerminate(ILaunchConfiguration config, int timeout) throws Exception { - DebugEventWaiter waiter= new DebugElementKindEventWaiter(DebugEvent.TERMINATE, IJavaDebugTarget.class); - waiter.setTimeout(timeout); - - Object terminatee = launchAndWait(config, waiter); - assertNotNull("Program did not terminate.", terminatee); - assertTrue("terminatee is not an IJavaDebugTarget", terminatee instanceof IJavaDebugTarget); - IJavaDebugTarget debugTarget = (IJavaDebugTarget) terminatee; - assertTrue("debug target is not terminated", debugTarget.isTerminated() || debugTarget.isDisconnected()); - return debugTarget; + return launchAndTerminate(config, timeout, true); } /**
diff --git a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java index 2e3786b..1155381 100644 --- a/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java +++ b/org.eclipse.jdt.debug.tests/tests/org/eclipse/jdt/debug/tests/performance/PerfConditionalBreakpointsTests.java
@@ -70,7 +70,7 @@ DebugPlugin.getDefault().addDebugEventListener(listener); ILaunchConfiguration config = getLaunchConfiguration(fTypeName); try { - fTarget = launchAndTerminate(config, 5 * 60 * 1000); + fTarget = launchAndTerminate(config, 5 * 60 * 1000, false); if (fException != null) { throw fException;