private IBundleCoverage analyzeStructure() throws IOException { File classDirectory = new File(classDir.getRemote()); final CoverageBuilder coverageBuilder = new CoverageBuilder(); final Analyzer analyzer = new Analyzer(executionDataStore, coverageBuilder); analyzer.analyzeAll(classDirectory); return coverageBuilder.getBundle(name); } public IBundleCoverage loadBundleCoverage() throws IOException {
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); } }
throw new RuntimeException("While reading class directory: " + classDirectory, e); return coverageBuilder.getBundle(name);
private IBundleCoverage analyze(final ExecutionDataStore data, final PrintWriter out) throws IOException { final CoverageBuilder builder = new CoverageBuilder(); final Analyzer analyzer = new Analyzer(data, builder); for (final File f : classfiles) { analyzer.analyzeAll(f); } printNoMatchWarning(builder.getNoMatchClasses(), out); return builder.getBundle(name); }
final IBundleCoverage bundle = builder.getBundle(reportName); visitor.visitBundle(bundle, locator); visitor.visitEnd();