1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 244385 Fixes to some tests that were failing.

This commit is contained in:
Marc Khouzam 2008-08-25 19:38:20 +00:00
parent 581b6804ba
commit bd90222c77
3 changed files with 87 additions and 38 deletions

View file

@ -432,7 +432,13 @@ public class GDBControl extends AbstractMIControl {
public IPath getExecutablePath() { return fExecPath; } public IPath getExecutablePath() { return fExecPath; }
public void getInferiorProcessId(DataRequestMonitor<Integer> rm) { public void getInferiorProcessId(DataRequestMonitor<String> rm) {
String pid = null;
if (fInferiorProcess != null) {
pid = fInferiorProcess.getPid();
}
rm.setData(pid);
rm.done();
} }
@DsfServiceEventHandler @DsfServiceEventHandler

View file

@ -108,10 +108,17 @@ public class GDBProcessesTest extends BaseTestCase {
*/ */
fSession.getExecutor().submit(new Runnable() { fSession.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGdbCtrl.getGDBDMContext(), ""); fGdbCtrl.getInferiorProcessId(
new DataRequestMonitor<String>(fSession.getExecutor(), rm) {
@Override
protected void handleSuccess() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGdbCtrl.getGDBDMContext(), pid);
fProcService.getExecutionData(procDmc, rm); fProcService.getExecutionData(procDmc, rm);
} }
}); });
}
});
/* /*
* Wait for the operation to get over * Wait for the operation to get over
*/ */
@ -156,7 +163,8 @@ public class GDBProcessesTest extends BaseTestCase {
fProcService.getExecutor().submit(new Runnable() { fProcService.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGdbCtrl.getGDBDMContext(), ""); String groupId = fProcService.getExecutionGroupIdFromThread(THREAD_ID);
IProcessDMContext procDmc = fProcService.createProcessContext(fGdbCtrl.getGDBDMContext(), groupId);
IThreadDMContext threadDmc = fProcService.createThreadContext(procDmc, THREAD_ID); IThreadDMContext threadDmc = fProcService.createThreadContext(procDmc, THREAD_ID);
fProcService.getExecutionData(threadDmc, rm); fProcService.getExecutionData(threadDmc, rm);
} }

View file

@ -111,11 +111,18 @@ public class MIRunControlTest extends BaseTestCase {
*/ */
fRunCtrl.getExecutor().submit(new Runnable() { fRunCtrl.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), ""); fGDBCtrl.getInferiorProcessId(
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, ""); new DataRequestMonitor<String>(fRunCtrl.getExecutor(), rm) {
@Override
protected void handleSuccess() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), pid);
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, pid);
fRunCtrl.getExecutionContexts(groupDmc, rm); fRunCtrl.getExecutionContexts(groupDmc, rm);
} }
}); });
}
});
wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER); wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER);
Assert.assertTrue(wait.getMessage(), wait.isOK()); Assert.assertTrue(wait.getMessage(), wait.isOK());
@ -184,6 +191,7 @@ public class MIRunControlTest extends BaseTestCase {
startedEvent = startedEventWaitor.waitForEvent(1000); startedEvent = startedEventWaitor.waitForEvent(1000);
} catch (Exception e) { } catch (Exception e) {
Assert.fail("Timeout waiting for Thread create event"); Assert.fail("Timeout waiting for Thread create event");
return;
} }
if (((IMIExecutionDMContext)startedEvent.getDMContext()).getThreadId() != 2) if (((IMIExecutionDMContext)startedEvent.getDMContext()).getThreadId() != 2)
@ -195,12 +203,18 @@ public class MIRunControlTest extends BaseTestCase {
*/ */
fRunCtrl.getExecutor().submit(new Runnable() { fRunCtrl.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), ""); fGDBCtrl.getInferiorProcessId(
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, ""); new DataRequestMonitor<String>(fRunCtrl.getExecutor(), rmExecutionCtxts) {
@Override
protected void handleSuccess() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), pid);
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, pid);
fRunCtrl.getExecutionContexts(groupDmc, rmExecutionCtxts); fRunCtrl.getExecutionContexts(groupDmc, rmExecutionCtxts);
} }
}); });
}
});
wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER); wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER);
Assert.assertTrue(wait.getMessage(), wait.isOK()); Assert.assertTrue(wait.getMessage(), wait.isOK());
wait.waitReset(); wait.waitReset();
@ -247,12 +261,18 @@ public class MIRunControlTest extends BaseTestCase {
*/ */
fRunCtrl.getExecutor().submit(new Runnable() { fRunCtrl.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), ""); fGDBCtrl.getInferiorProcessId(
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, ""); new DataRequestMonitor<String>(fRunCtrl.getExecutor(), rm) {
@Override
protected void handleSuccess() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), pid);
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, pid);
fRunCtrl.getExecutionData(fRunCtrl.createMIExecutionContext(groupDmc, 1), rm); fRunCtrl.getExecutionData(fRunCtrl.createMIExecutionContext(groupDmc, 1), rm);
} }
}); });
}
});
wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER); wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER);
Assert.assertTrue(wait.getMessage(), wait.isOK()); Assert.assertTrue(wait.getMessage(), wait.isOK());
@ -430,16 +450,11 @@ public class MIRunControlTest extends BaseTestCase {
*/ */
@Test @Test
public void cacheAfterContainerSuspendEvent() throws InterruptedException{ public void cacheAfterContainerSuspendEvent() throws InterruptedException{
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), "");
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, "");
final IExecutionDMContext dmc = fRunCtrl.createMIExecutionContext(groupDmc, 1);
/* /*
* Step to fire ContainerSuspendEvent * Step to fire ContainerSuspendEvent
*/ */
try { try {
SyncUtil.SyncStep(dmc, StepType.STEP_OVER); SyncUtil.SyncStep(StepType.STEP_OVER);
} catch (Throwable e) { } catch (Throwable e) {
Assert.fail("Exception in SyncUtil.SyncStep: " + e.getMessage()); Assert.fail("Exception in SyncUtil.SyncStep: " + e.getMessage());
} }
@ -471,12 +486,18 @@ public class MIRunControlTest extends BaseTestCase {
fRunCtrl.getExecutor().submit(new Runnable() { fRunCtrl.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), ""); fGDBCtrl.getInferiorProcessId(
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, ""); new DataRequestMonitor<String>(fRunCtrl.getExecutor(), rm) {
@Override
protected void handleSuccess() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), pid);
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, pid);
fRunCtrl.resume(groupDmc, rm); fRunCtrl.resume(groupDmc, rm);
} }
}); });
}
});
wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER); wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER);
try { try {
@ -491,13 +512,20 @@ public class MIRunControlTest extends BaseTestCase {
wait.waitReset(); wait.waitReset();
fRunCtrl.getExecutor().submit(new Runnable() { fRunCtrl.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), ""); fGDBCtrl.getInferiorProcessId(
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, ""); new DataRequestMonitor<String>(fRunCtrl.getExecutor(), null) {
@Override
protected void handleCompleted() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), pid);
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, pid);
wait.setReturnInfo(fRunCtrl.isSuspended(groupDmc)); wait.setReturnInfo(fRunCtrl.isSuspended(groupDmc));
wait.waitFinished(); wait.waitFinished();
} }
}); });
}
});
wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER); wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER);
Assert.assertFalse("Target is suspended. It should have been running", (Boolean)wait.getReturnInfo()); Assert.assertFalse("Target is suspended. It should have been running", (Boolean)wait.getReturnInfo());
@ -545,13 +573,20 @@ public class MIRunControlTest extends BaseTestCase {
wait.waitReset(); wait.waitReset();
fRunCtrl.getExecutor().submit(new Runnable() { fRunCtrl.getExecutor().submit(new Runnable() {
public void run() { public void run() {
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), ""); fGDBCtrl.getInferiorProcessId(
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, ""); new DataRequestMonitor<String>(fRunCtrl.getExecutor(), null) {
@Override
protected void handleCompleted() {
String pid = getData();
IProcessDMContext procDmc = fProcService.createProcessContext(fGDBCtrl.getGDBDMContext(), pid);
IContainerDMContext groupDmc = fProcService.createExecutionGroupContext(procDmc, pid);
wait.setReturnInfo(fRunCtrl.isSuspended(groupDmc)); wait.setReturnInfo(fRunCtrl.isSuspended(groupDmc));
wait.waitFinished(); wait.waitFinished();
} }
}); });
}
});
wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER); wait.waitUntilDone(AsyncCompletionWaitor.WAIT_FOREVER);
Assert.assertFalse("Target is suspended. It should have been running", (Boolean)wait.getReturnInfo()); Assert.assertFalse("Target is suspended. It should have been running", (Boolean)wait.getReturnInfo());