@Override public Collection<Measure> createMeasures() { return convert(delegate.createMeasures()); }
private void saveMeasures(final CoverageMeasuresBuilder measureBuilder, final org.sonar.api.resources.File objcfile) { for (final Measure measure : measureBuilder.createMeasures()) { LoggerFactory.getLogger(getClass()).debug("Measure {}", measure.getMetric().getName()); context.saveMeasure(objcfile, measure); } }
protected void saveMeasureFromLCOVFile(SensorContext context) { String providedPath = settings.getString(JavaScriptPlugin.LCOV_REPORT_PATH); File lcovFile = getIOFile(fileSystem.baseDir(), providedPath); ... LOG.info("Analysing {}", lcovFile); LCOVParser parser = new LCOVParser(fileSystem.baseDir()); Map<String, CoverageMeasuresBuilder> coveredFiles = parser.parseFile(lcovFile); for (InputFile inputFile : fileSystem.inputFiles(mainFilePredicate)) { try { CoverageMeasuresBuilder fileCoverage = coveredFiles.get(inputFile.file().getAbsolutePath()); org.sonar.api.resources.File resource = org.sonar.api.resources.File.create(inputFile.relativePath()); if (fileCoverage != null) { for (Measure measure : fileCoverage.createMeasures()) { context.saveMeasure(resource, measure); } } else { // colour all lines as not executed LOG.debug("Default value of zero will be saved for file: {}", resource.getPath()); LOG.debug("Because: either was not present in LCOV report either was not able to retrieve associated SonarQube resource"); saveZeroValueForResource(resource, context); } } catch (Exception e) { LOG.error("Problem while calculating coverage for " + inputFile.absolutePath(), e); } } }
for (Measure measure : fileCoverage.createMeasures()) { context.saveMeasure(resource, measure);
@VisibleForTesting void analyze(SensorContext context, FileProvider fileProvider, Coverage coverage) { coverageAggregator.aggregate(wildcardPatternFileProvider, coverage); CoverageMeasuresBuilder coverageMeasureBuilder = CoverageMeasuresBuilder.create(); for (String filePath : coverage.files()) { org.sonar.api.resources.File sonarFile = fileProvider.fromPath(filePath); if (sonarFile != null) { if (coverageConf.languageKey().equals(sonarFile.getLanguage().getKey())) { coverageMeasureBuilder.reset(); for (Map.Entry<Integer, Integer> entry : coverage.hits(filePath).entrySet()) { coverageMeasureBuilder.setHits(entry.getKey(), entry.getValue()); } for (Measure measure : coverageMeasureBuilder.createMeasures()) { context.saveMeasure(sonarFile, measure); } } } else { LOG.debug("Code coverage will not be imported for the following file outside of SonarQube: " + filePath); } } }
if (resource != null) { CoverageMeasuresBuilder builder = analyzeFile(resource, coverage); saveMeasures(context, resource, builder.createMeasures()); analyzedResources++;
if (!isExcluded(coverage, excludes)) { CoverageMeasuresBuilder builder = analyzeFile(resource, coverage); saveMeasures(context, resource, builder.createMeasures());
if (resource != null) { CoverageMeasuresBuilder builder = analyzeFile(resource, coverage); saveMeasures(context, resource, builder.createMeasures()); analyzedResources++;
private void saveHitsData(Resource resource, SMInputCursor lineCursor) throws ParseException, XMLStreamException { fileMeasuresBuilder.reset(); while (lineCursor.getNext() != null) { // skip class elements on format 2_3_2 if (isClass(lineCursor)) { continue; } final int lineId = Integer.parseInt(lineCursor.getAttrValue("num")); String count = lineCursor.getAttrValue("count"); if (StringUtils.isNotBlank(count)) { fileMeasuresBuilder.setHits(lineId, Integer.parseInt(count)); } else { int trueCount = (int) ParsingUtils.parseNumber(lineCursor.getAttrValue("truecount")); int falseCount = (int) ParsingUtils.parseNumber(lineCursor.getAttrValue("falsecount")); int coveredConditions = 0; if (trueCount > 0) { coveredConditions++; } if (falseCount > 0) { coveredConditions++; } fileMeasuresBuilder.setConditions(lineId, 2, coveredConditions); } } if (resource != null) { for (Measure measure : fileMeasuresBuilder.createMeasures()) { context.saveMeasure(resource, measure); } } }