Search in sources :

Example 1 with CovFunctionTreeElement

use of org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement in project linuxtools by eclipse.

the class CovManager method fillGcovView.

/**
 * fill the model by count results
 * @throws CoreException, IOException, InterruptedException
 */
public void fillGcovView() {
    // process counts for summary level
    int summaryTotal = 0, summaryInstrumented = 0, summaryExecuted = 0;
    for (Folder f : allFolders) {
        summaryTotal += f.getNumLines();
        summaryInstrumented += f.getLinesInstrumented();
        summaryExecuted += f.getLinesExecuted();
    }
    // fill rootNode model: the entry of the contentProvider
    rootNode = new CovRootTreeElement(Messages.CovManager_Summary, summaryTotal, summaryExecuted, summaryInstrumented);
    IBinaryObject binaryObject = STSymbolManager.sharedInstance.getBinaryObject(new Path(binaryPath));
    for (Folder fldr : allFolders) {
        String folderLocation = fldr.getPath();
        CovFolderTreeElement fldrTreeElem = new CovFolderTreeElement(rootNode, folderLocation, fldr.getNumLines(), fldr.getLinesExecuted(), fldr.getLinesInstrumented());
        rootNode.addChild(fldrTreeElem);
        for (SourceFile src : fldr.getSrcFiles()) {
            CovFileTreeElement srcTreeElem = new CovFileTreeElement(fldrTreeElem, src.getName(), src.getNumLines(), src.getLinesExecuted(), src.getLinesInstrumented());
            fldrTreeElem.addChild(srcTreeElem);
            for (GcnoFunction fnctn : src.getFnctns()) {
                String name = fnctn.getName();
                name = STSymbolManager.sharedInstance.demangle(binaryObject, name, project);
                srcTreeElem.addChild(new CovFunctionTreeElement(srcTreeElem, name, fnctn.getSrcFile(), fnctn.getFirstLineNmbr(), fnctn.getCvrge().getLinesExecuted(), fnctn.getCvrge().getLinesInstrumented()));
            }
        }
    }
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) CovFunctionTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement) CovRootTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovRootTreeElement) IBinaryObject(org.eclipse.cdt.core.IBinaryParser.IBinaryObject) CovFolderTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovFolderTreeElement) CovFileTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovFileTreeElement)

Example 2 with CovFunctionTreeElement

use of org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement in project linuxtools by eclipse.

the class CovViewer method handleOpenEvent.

@Override
protected void handleOpenEvent(OpenEvent event) {
    IStructuredSelection selection = (IStructuredSelection) event.getSelection();
    TreeElement element = (TreeElement) selection.getFirstElement();
    if (element != null) {
        if (element.getParent() != null) {
            // $NON-NLS-1$
            String sourceLoc = "";
            long lineNumber = 0;
            if (element.getClass() == CovFileTreeElement.class) {
                sourceLoc = element.getName();
            } else if (element.getClass() == CovFunctionTreeElement.class) {
                sourceLoc = ((CovFunctionTreeElement) element).getSourceFilePath();
                lineNumber = ((CovFunctionTreeElement) element).getFirstLnNmbr();
            }
            CovManager cvm = (CovManager) this.getInput();
            SourceFile sourceFile = cvm.getSourceFile(sourceLoc);
            if (sourceFile != null) {
                IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
                String binaryLoc = cvm.getBinaryPath();
                IPath binaryPath = new Path(binaryLoc);
                IFile binary = root.getFileForLocation(binaryPath);
                IProject project = null;
                if (binary != null) {
                    project = binary.getProject();
                }
                OpenSourceFileAction.openAnnotatedSourceFile(project, binary, sourceFile, (int) lineNumber);
            }
        }
    }
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) CovFunctionTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement) CovManager(org.eclipse.linuxtools.internal.gcov.parser.CovManager) IFile(org.eclipse.core.resources.IFile) IWorkspaceRoot(org.eclipse.core.resources.IWorkspaceRoot) IPath(org.eclipse.core.runtime.IPath) IStructuredSelection(org.eclipse.jface.viewers.IStructuredSelection) SourceFile(org.eclipse.linuxtools.internal.gcov.parser.SourceFile) IProject(org.eclipse.core.resources.IProject) CovFileTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovFileTreeElement) CovFunctionTreeElement(org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement) TreeElement(org.eclipse.linuxtools.internal.gcov.model.TreeElement)

Aggregations

IPath (org.eclipse.core.runtime.IPath)2 Path (org.eclipse.core.runtime.Path)2 CovFileTreeElement (org.eclipse.linuxtools.internal.gcov.model.CovFileTreeElement)2 CovFunctionTreeElement (org.eclipse.linuxtools.internal.gcov.model.CovFunctionTreeElement)2 IBinaryObject (org.eclipse.cdt.core.IBinaryParser.IBinaryObject)1 IFile (org.eclipse.core.resources.IFile)1 IProject (org.eclipse.core.resources.IProject)1 IWorkspaceRoot (org.eclipse.core.resources.IWorkspaceRoot)1 IStructuredSelection (org.eclipse.jface.viewers.IStructuredSelection)1 CovFolderTreeElement (org.eclipse.linuxtools.internal.gcov.model.CovFolderTreeElement)1 CovRootTreeElement (org.eclipse.linuxtools.internal.gcov.model.CovRootTreeElement)1 TreeElement (org.eclipse.linuxtools.internal.gcov.model.TreeElement)1 CovManager (org.eclipse.linuxtools.internal.gcov.parser.CovManager)1 SourceFile (org.eclipse.linuxtools.internal.gcov.parser.SourceFile)1