use of com.teamscale.jacoco.agent.util.Benchmark in project teamscale-jacoco-agent by cqse.
the class Agent method dumpReportUnsafe.
private void dumpReportUnsafe() {
Dump dump;
try {
dump = controller.dumpAndReset();
} catch (JacocoRuntimeController.DumpException e) {
logger.error("Dumping failed, retrying later", e);
return;
}
try (Benchmark ignored = new Benchmark("Generating the XML report")) {
File outputFile = options.createTempFile("jacoco", "xml");
CoverageFile coverageFile = generator.convert(dump, outputFile);
uploader.upload(coverageFile);
} catch (IOException e) {
logger.error("Converting binary dump to XML failed", e);
} catch (EmptyReportException e) {
logger.error("No coverage was collected. " + e.getMessage(), e);
}
}
use of com.teamscale.jacoco.agent.util.Benchmark in project teamscale-jacoco-agent by cqse.
the class Converter method runJaCoCoReportGeneration.
/**
* Converts one .exec binary coverage file to XML.
*/
public void runJaCoCoReportGeneration() throws IOException, AgentOptionParseException {
List<File> jacocoExecutionDataList = ReportUtils.listFiles(ETestArtifactFormat.JACOCO, arguments.getInputFiles());
ExecFileLoader loader = new ExecFileLoader();
for (File jacocoExecutionData : jacocoExecutionDataList) {
loader.load(jacocoExecutionData);
}
SessionInfo sessionInfo = loader.getSessionInfoStore().getMerged("merged");
ExecutionDataStore executionDataStore = loader.getExecutionDataStore();
Logger logger = LoggingUtils.getLogger(this);
JaCoCoXmlReportGenerator generator = new JaCoCoXmlReportGenerator(arguments.getClassDirectoriesOrZips(), getWildcardIncludeExcludeFilter(), arguments.getDuplicateClassFileBehavior(), arguments.shouldIgnoreUncoveredClasses, wrap(logger));
try (Benchmark benchmark = new Benchmark("Generating the XML report")) {
generator.convert(new Dump(sessionInfo, executionDataStore), Paths.get(arguments.outputFile).toFile());
} catch (EmptyReportException e) {
logger.warn("Converted report was emtpy.", e);
}
}
use of com.teamscale.jacoco.agent.util.Benchmark in project teamscale-jacoco-agent by cqse.
the class Converter method runTestwiseCoverageReportGeneration.
/**
* Converts one .exec binary coverage file, test details and test execution files to JSON testwise coverage.
*/
public void runTestwiseCoverageReportGeneration() throws IOException, CoverageGenerationException, AgentOptionParseException {
List<TestDetails> testDetails = ReportUtils.readObjects(ETestArtifactFormat.TEST_LIST, TestDetails[].class, arguments.getInputFiles());
List<TestExecution> testExecutions = ReportUtils.readObjects(ETestArtifactFormat.TEST_EXECUTION, TestExecution[].class, arguments.getInputFiles());
List<File> jacocoExecutionDataList = ReportUtils.listFiles(ETestArtifactFormat.JACOCO, arguments.getInputFiles());
ILogger logger = new CommandLineLogger();
JaCoCoTestwiseReportGenerator generator = new JaCoCoTestwiseReportGenerator(arguments.getClassDirectoriesOrZips(), getWildcardIncludeExcludeFilter(), arguments.getDuplicateClassFileBehavior(), logger);
TestInfoFactory testInfoFactory = new TestInfoFactory(testDetails, testExecutions);
try (Benchmark benchmark = new Benchmark("Generating the testwise coverage report")) {
logger.info("Writing report with " + testDetails.size() + " Details/" + testExecutions.size() + " Results");
try (TestwiseCoverageReportWriter coverageWriter = new TestwiseCoverageReportWriter(testInfoFactory, arguments.getOutputFile(), arguments.getSplitAfter())) {
for (File executionDataFile : jacocoExecutionDataList) {
generator.convertAndConsume(executionDataFile, coverageWriter);
}
}
}
}
Aggregations