From 18f37c3ccf8d899b825313ea1816c74581643cac Mon Sep 17 00:00:00 2001 From: John Cortell Date: Fri, 28 May 2010 19:12:27 +0000 Subject: [PATCH] Bug 314174: Eliminate the 1s wait at start of each DSF-GDB test. (Avoid possible NPE when a test fails) --- .../tests/dsf/gdb/framework/BaseTestCase.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java index 197da1629f9..6d966cf3d6f 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java @@ -81,6 +81,13 @@ public class BaseTestCase { * beyond that point. */ protected class SessionEventListener { + private DsfSession fSession; + + SessionEventListener(DsfSession session) { + fSession = session; + Assert.assertNotNull(session); + } + @DsfServiceEventHandler public void eventDispatched(IDMEvent event) { if (event instanceof MIStoppedEvent) { @@ -99,13 +106,12 @@ public class BaseTestCase { fTargetSuspendedSem.notify(); } - // no further need for this listener - fLaunch.getSession().removeServiceEventListener(this); + // no further need for this listener. Note fLaunch could be null if the test ran into a failure + fSession.removeServiceEventListener(this); } } } - private final SessionEventListener fSessionEventListener = new SessionEventListener(); - + @BeforeClass public static void baseBeforeClassMethod() { // Setup information for the launcher @@ -152,7 +158,7 @@ public class BaseTestCase { // occur. We want to find out when the break on main() occurs. SessionStartedListener sessionStartedListener = new SessionStartedListener() { public void sessionStarted(DsfSession session) { - session.addServiceEventListener(fSessionEventListener, null); + session.addServiceEventListener(new SessionEventListener(session), null); } };