--- ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/HierarchyRunView.java.fix 2006-11-07 15:40:16.000000000 -0500
+++ ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/HierarchyRunView.java 2006-11-07 15:41:49.000000000 -0500
@@ -140,7 +140,7 @@ class HierarchyRunView implements ITestR
TreeItem treeItem= fTree.getSelection()[0];
if(treeItem == null)
return ""; //$NON-NLS-1$
- return treeItem.getText();
+ return extractMethodName(treeItem.getText());
}
private TestRunInfo getTestInfo() {
@@ -186,16 +186,61 @@ class HierarchyRunView implements ITestR
return res;
}
+ static public String extractMethodName(String testNameString) {
+ if (testNameString == null)
+ return null;
+
+ // Parse past namespace identifiers and find the "::" method specifier
+ // if one is present
+
+ int start = 0;
+ int index = testNameString.lastIndexOf("::");
+
+ if (index > 0)
+ start = index + 2;
+
+ // Alternatively, look for "." method specifier if one exists.
+ index = testNameString.indexOf('.', start);
+ if (index > 0)
+ start = index + 1;
+
+ return testNameString.substring(start);
+ }
+
static public String extractClassName(String testNameString) {
if (testNameString == null)
return null;
+
// Filter the first integer as a header ??
testNameString=filterFirstNumbers(testNameString);
- int index= testNameString.indexOf('.');
- if (index < 0)
- return testNameString;
- return testNameString.substring(0,index);
+ // Parse past namespace identifiers and find the "::" method specifier
+ // if one is present.
+ int start = 0;
+ int index = 0;
+ int end = testNameString.indexOf("::");
+
+ index = end + 2;
+ while (index > 1) {
+ int tmp = testNameString.indexOf("::", index);
+ if (tmp > 0)
+ start = index;
+ else
+ end = index - 2;
+ index = tmp + 2;
+ }
+
+ // Alternatively, look for "." method specifier if one exists.
+ index = testNameString.indexOf('.', start);
+ if (index > 0) {
+ if (end > 0 && index > end + 2)
+ start = end + 2;
+ end = index;
+ }
+
+ if (end < 0)
+ return testNameString.substring(start);
+ return testNameString.substring(start, end);
}
public String getName() {
--- ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/FailureRunView.java.fix 2006-11-07 15:40:26.000000000 -0500
+++ ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/FailureRunView.java 2006-11-07 15:41:49.000000000 -0500
@@ -112,9 +112,7 @@ class FailureRunView implements ITestRun
private String getMethodName() {
String methodName= getSelectedText();
- int index=methodName.indexOf('.');
- if(index<0) return null;
- methodName=methodName.substring(index+1,methodName.length());
+ methodName=HierarchyRunView.extractMethodName(methodName);
return methodName;
}
--- ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/TestRunnerViewPart.java.fix 2006-11-07 15:40:50.000000000 -0500
+++ ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/TestRunnerViewPart.java 2006-11-07 15:41:49.000000000 -0500
@@ -26,6 +26,7 @@ import org.eclipse.cdt.core.model.ICElem
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.IElementChangedListener;
import org.eclipse.cdt.internal.cppunit.runner.ITestRunListener;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.action.IToolBarManager;
@@ -119,6 +120,10 @@ public class TestRunnerViewPart extends
*/
private ICProject fTestProject;
/**
+ * The path for the test.
+ */
+ private IPath fTestPath;
+ /**
* The launcher that has started the test
*/
private String fLaunchMode;
@@ -451,6 +456,8 @@ public class TestRunnerViewPart extends
public void startTestRunListening(ICElement program, int port, ILaunch launch) {
fTestProject= program.getCProject();
fLaunchMode= launch.getLaunchMode();
+ fTestPath= program.getPath();
+
aboutToLaunch();
if (fTestRunnerClient != null) {
@@ -815,6 +822,10 @@ public class TestRunnerViewPart extends
return fTestProject;
}
+ public IPath getTestPath() {
+ return fTestPath;
+ }
+
protected static Image createImage(String path) {
try {
ImageDescriptor id= ImageDescriptor.createFromURL(CppUnitPlugin.makeIconFileURL(path));
--- ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/FailureTraceView.java.fix 2006-11-07 15:45:29.000000000 -0500
+++ ./org.eclipse.cdt.cppunit/src/org/eclipse/cdt/internal/cppunit/ui/FailureTraceView.java 2006-11-07 15:41:49.000000000 -0500
@@ -16,6 +16,7 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
@@ -103,6 +104,12 @@ class FailureTraceView implements IMenuL
String lineNumber=traceLine.substring(traceLine.indexOf(':')+1,traceLine.length());
int line=Integer.valueOf(lineNumber).intValue();
if(fileName.equals("Unknown")) return null;
+ // We have a relative file name from the test directory. We want
+ // a filename relative to the project directory.
+ if (fileName.startsWith(".")) {
+ IPath testDirPath = fTestRunner.getTestPath().removeFirstSegments(1).removeLastSegments(1);
+ fileName = testDirPath.append(fileName).toString();
+ };
return new OpenEditorAtLineAction(fTestRunner, fileName, line);
}
return null;
--- ./org.eclipse.cdt.cppunit/plugin.xml.fix 2006-11-07 15:39:13.000000000 -0500
+++ ./org.eclipse.cdt.cppunit/plugin.xml 2006-11-07 15:41:49.000000000 -0500
@@ -15,7 +15,6 @@
<requires>
<import plugin="org.eclipse.ui.ide"/>
<import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.ui.workbench"/>
<import plugin="org.eclipse.core.resources"/>
<import plugin="org.eclipse.debug.core"/>
<import plugin="org.eclipse.debug.ui"/>
@@ -28,7 +27,6 @@
<import plugin="org.eclipse.ui.workbench.texteditor"/>
<import plugin="org.eclipse.jface.text"/>
<import plugin="org.eclipse.cdt.managedbuilder.core"/>
- <import plugin="org.eclipse.cdt.make.ui"/>
</requires>