mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +02:00
Bug 80700: test for project with spaces
This commit is contained in:
parent
1aeb6dc884
commit
e01304986c
1 changed files with 103 additions and 0 deletions
|
@ -0,0 +1,103 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2000, 2010 QNX Software Systems and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* QNX Software Systems - Initial API and implementation
|
||||
*******************************************************************************/
|
||||
package org.eclipse.cdt.debug.core.tests;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import junit.framework.Test;
|
||||
|
||||
import org.eclipse.cdt.debug.core.cdi.CDIException;
|
||||
import org.eclipse.cdt.debug.core.cdi.ICDILineLocation;
|
||||
import org.eclipse.cdt.debug.core.cdi.ICDILocator;
|
||||
import org.eclipse.cdt.debug.core.cdi.model.ICDITarget;
|
||||
import org.eclipse.cdt.debug.mi.core.MIException;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
|
||||
/**
|
||||
* Create a project with space and do sanity test for debugger
|
||||
*/
|
||||
public class ProjectWithSpaceTests extends AbstractDebugTest {
|
||||
public static Test suite() {
|
||||
return new DebugTestWrapper(ProjectWithSpaceTests.class) {
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getProjectName() {
|
||||
return "with space";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
createDebugSession();
|
||||
assertNotNull(currentTarget);
|
||||
currentTarget.deleteAllBreakpoints();
|
||||
pause();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
/* clean up the session */
|
||||
targets[0].terminate();
|
||||
int x = 0;
|
||||
while ((!targets[0].isTerminated()) && (x < 30)) {
|
||||
Thread.sleep(100);
|
||||
}
|
||||
if (!targets[0].isTerminated())
|
||||
targets[0].terminate();
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Basic sanity test
|
||||
*/
|
||||
public void testLineBreak() throws CoreException, MIException, IOException, CDIException, InterruptedException {
|
||||
ICDITarget cdiTarget = currentTarget;
|
||||
ICDILineLocation location;
|
||||
boolean caught = false;
|
||||
/***********************************************************************
|
||||
* Create a break point in a generic function
|
||||
**********************************************************************/
|
||||
location = cdiTarget.createLineLocation("main.c", 7);
|
||||
assertNotNull(location);
|
||||
cdiTarget.setLineBreakpoint(0, location, null, false);
|
||||
|
||||
targets = session.getTargets();
|
||||
/*
|
||||
* We better only have one target connected to this session or something
|
||||
* is not right...
|
||||
*/
|
||||
assertTrue(targets.length == 1);
|
||||
/*
|
||||
* Resume the target, this should cause it to run till it hits the
|
||||
* breakpoint
|
||||
*/
|
||||
ICDITarget target = targets[0];
|
||||
target.resume(false);
|
||||
/**
|
||||
* Give the process up to 10 seconds to become either terminated or
|
||||
* suspended. It sould hit the breakponint almost immediatly so we
|
||||
* should only sleep for max 100 ms
|
||||
*/
|
||||
for (int x = 0; x < 100; x++) {
|
||||
if (target.isSuspended() || target.isTerminated())
|
||||
break;
|
||||
Thread.sleep(100);
|
||||
}
|
||||
assertTrue("Suspended: " + target.isSuspended() + " Terminated: " + target.isTerminated(),
|
||||
target.isSuspended());
|
||||
ICDILocator locator = getCurrentLocator();
|
||||
assertTrue(locator.getLineNumber() == 7);
|
||||
assertTrue(locator.getFunction().equals("func1"));
|
||||
assertTrue(locator.getFile().endsWith("main.c"));
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue