Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37570327
en ru br
ALT Linux repos
5.0: 5.0.1-alt1_1jpp6
4.1: 4.0.1-alt1_1jpp5.0
4.0: 4.0.1-alt1_1jpp5.0
3.0: 2.1.0-alt1

Group :: Development/Java
RPM: eclipse-cdt

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: eclipse-cdt-cppunit-ui.patch
Download


--- ./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>
 
 
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin