org.jacoco.core.analysis.CoverageBuilder Java Examples
The following examples show how to use
org.jacoco.core.analysis.CoverageBuilder.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JacocoCoverageRunner.java From bazel with Apache License 2.0 | 6 votes |
@VisibleForTesting IBundleCoverage analyzeStructure() throws IOException { final CoverageBuilder coverageBuilder = new CoverageBuilder(); final Analyzer analyzer = new Analyzer(execFileLoader.getExecutionDataStore(), coverageBuilder); Set<String> alreadyInstrumentedClasses = new HashSet<>(); if (uninstrumentedClasses == null) { for (File classesJar : classesJars) { analyzeUninstrumentedClassesFromJar(analyzer, classesJar, alreadyInstrumentedClasses); } } else { for (Map.Entry<String, byte[]> entry : uninstrumentedClasses.entrySet()) { analyzer.analyzeClass(entry.getValue(), entry.getKey()); } } // TODO(bazel-team): Find out where the name of the bundle can pop out in the report. return coverageBuilder.getBundle("isthisevenused"); }
Example #2
Source File: JacocoNBModuleReportGenerator.java From tikione-jacocoverage with MIT License | 6 votes |
public void processNBModule(String projectName, List<String> classDirectories, List<String> sourceDirectories) throws IOException { CoverageBuilder coverageBuilder = new CoverageBuilder(); Analyzer analyzer = new Analyzer(execFileLoader.getExecutionDataStore(), coverageBuilder); for (String classDirectory : classDirectories) { analyzer.analyzeAll(new File(classDirectory)); } IBundleCoverage bundleCoverage = coverageBuilder.getBundle(projectName); MultiSourceFileLocator sourceLocator = new MultiSourceFileLocator(4); for (String sourceDirectory : sourceDirectories) { sourceLocator.add(new DirectorySourceFileLocator(new File(sourceDirectory), DEF_ENCODING, 4)); } groupVisitor.visitBundle(bundleCoverage, sourceLocator); }
Example #3
Source File: ReportGenerator.java From buck with Apache License 2.0 | 6 votes |
private IBundleCoverage analyzeStructure() throws IOException { CoverageBuilder coverageBuilder = new CoverageBuilder(); Analyzer analyzer = new Analyzer(execFileLoader.getExecutionDataStore(), coverageBuilder); String[] classesDirs = classesPath.split(":"); for (String classesDir : classesDirs) { File classesDirFile = new File(classesDir); if (classesDirFile.exists()) { for (File clazz : FileUtils.getFiles(classesDirFile, coverageIncludes, coverageExcludes)) { analyzer.analyzeAll(clazz); } } } return coverageBuilder.getBundle(title); }
Example #4
Source File: ReproGuidance.java From JQF with BSD 2-Clause "Simplified" License | 5 votes |
public void jacocoCheckpoint(File classFile, File csvDir) { int idx = nextFileIdx; csvDir.mkdirs(); try { // Get exec data by dynamically calling RT.getAgent().getExecutionData() Class RT = Class.forName("org.jacoco.agent.rt.RT"); Method getAgent = RT.getMethod("getAgent"); Object agent = getAgent.invoke(null); Method dump = agent.getClass().getMethod("getExecutionData", boolean.class); byte[] execData = (byte[]) dump.invoke(agent, false); // Analyze exec data ExecFileLoader loader = new ExecFileLoader(); loader.load(new ByteArrayInputStream(execData)); final CoverageBuilder builder = new CoverageBuilder(); Analyzer analyzer = new Analyzer(loader.getExecutionDataStore(), builder); analyzer.analyzeAll(classFile); // Generate CSV File csv = new File(csvDir, String.format("cov-%05d.csv", idx)); try (FileOutputStream out = new FileOutputStream(csv)) { IReportVisitor coverageVisitor = new CSVFormatter().createVisitor(out); coverageVisitor.visitBundle(builder.getBundle("JQF"), null); coverageVisitor.visitEnd(); out.flush(); } } catch (Exception e) { System.err.println(e); } }
Example #5
Source File: JaCoCoReportAnalyzer.java From tikione-jacocoverage with MIT License | 5 votes |
/** * Load a JaCoCo binary report and convert it to HTML. * <br/>See <a href="http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java">report generator example code</a>. * * @param jacocoexec the JaCoCo binary report. * @param reportdir the folder to store HTML report. * @param prjClassesDir the directory containing project's compiled classes. * @param prjSourcesDir the directory containing project's Java source files. * @param projectName the project's name. * @return the absolute path of HTML report's {@code index.html} file. * @throws FileNotFoundException if the JaCoCo binary report, compiled classes or Java sources files directory can't be found. * @throws IOException if an I/O error occurs. */ public static String toHtmlReport(File jacocoexec, File reportdir, File prjClassesDir, File prjSourcesDir, String projectName) throws FileNotFoundException, IOException { // Load the JaCoCo binary report. FileInputStream fis = new FileInputStream(jacocoexec); ExecutionDataStore executionDataStore = new ExecutionDataStore(); SessionInfoStore sessionInfoStore = new SessionInfoStore(); try { ExecutionDataReader executionDataReader = new ExecutionDataReader(fis); executionDataReader.setExecutionDataVisitor(executionDataStore); executionDataReader.setSessionInfoVisitor(sessionInfoStore); while (executionDataReader.read()) { } } finally { fis.close(); } // Convert the binary report to HTML. CoverageBuilder coverageBuilder = new CoverageBuilder(); Analyzer analyzer = new Analyzer(executionDataStore, coverageBuilder); analyzer.analyzeAll(prjClassesDir); IBundleCoverage bundleCoverage = coverageBuilder.getBundle("JaCoCoverage analysis of project \"" + projectName + "\" (powered by JaCoCo from EclEmma)"); HTMLFormatter htmlformatter = new HTMLFormatter(); IReportVisitor visitor = htmlformatter.createVisitor(new FileMultiReportOutput(reportdir)); visitor.visitInfo(sessionInfoStore.getInfos(), executionDataStore.getContents()); visitor.visitBundle(bundleCoverage, new DirectorySourceFileLocator(prjSourcesDir, DEF_ENCODING, 4)); visitor.visitEnd(); return new File(reportdir, "index.html").getAbsolutePath(); }
Example #6
Source File: JaCoCoReportAnalyzer.java From tikione-jacocoverage with MIT License | 5 votes |
/** * Load a JaCoCo binary report and convert it to XML. * <br/>See <a href="http://www.eclemma.org/jacoco/trunk/doc/examples/java/ReportGenerator.java">report generator example code</a>. * * @param jacocoexec the JaCoCo binary report. * @param xmlreport the XML file to generate. * @param prjClassesDir the directory containing project's compiled classes. * @param prjSourcesDir the directory containing project's Java source files. * @throws FileNotFoundException if the JaCoCo binary report, compiled classes or Java sources files directory can't be found. * @throws IOException if an I/O error occurs. */ public static void toXmlReport(File jacocoexec, File xmlreport, File prjClassesDir, File prjSourcesDir) throws FileNotFoundException, IOException { // Load the JaCoCo binary report. FileInputStream fis = new FileInputStream(jacocoexec); ExecutionDataStore executionDataStore = new ExecutionDataStore(); SessionInfoStore sessionInfoStore = new SessionInfoStore(); try { ExecutionDataReader executionDataReader = new ExecutionDataReader(fis); executionDataReader.setExecutionDataVisitor(executionDataStore); executionDataReader.setSessionInfoVisitor(sessionInfoStore); while (executionDataReader.read()) { } } finally { fis.close(); } // Convert the binary report to XML. CoverageBuilder coverageBuilder = new CoverageBuilder(); Analyzer analyzer = new Analyzer(executionDataStore, coverageBuilder); analyzer.analyzeAll(prjClassesDir); IBundleCoverage bundleCoverage = coverageBuilder.getBundle("JaCoCoverage analysis (powered by JaCoCo from EclEmma)"); XMLFormatter xmlformatter = new XMLFormatter(); xmlformatter.setOutputEncoding(DEF_ENCODING); IReportVisitor visitor = xmlformatter.createVisitor(new FileOutputStream(xmlreport)); visitor.visitInfo(sessionInfoStore.getInfos(), executionDataStore.getContents()); visitor.visitBundle(bundleCoverage, new DirectorySourceFileLocator(prjSourcesDir, DEF_ENCODING, 4)); visitor.visitEnd(); }