From: Dmitry Trofimov Date: Tue, 18 Oct 2016 18:01:23 +0000 (+0200) Subject: Count missed branches in case of partial coverage in total ration denominator (PY... X-Git-Tag: idea/171.216~8 X-Git-Url: https://git.jetbrains.org/?p=idea%2Fcommunity.git;a=commitdiff_plain;h=5ec562fdd857a368876b3ff0395783b038086520 Count missed branches in case of partial coverage in total ration denominator (PY-20131) --- diff --git a/plugins/coverage-common/src/com/intellij/coverage/SimpleCoverageAnnotator.java b/plugins/coverage-common/src/com/intellij/coverage/SimpleCoverageAnnotator.java index eb41bcfe34a9..98c4d88becba 100644 --- a/plugins/coverage-common/src/com/intellij/coverage/SimpleCoverageAnnotator.java +++ b/plugins/coverage-common/src/com/intellij/coverage/SimpleCoverageAnnotator.java @@ -140,8 +140,7 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator { protected FileCoverageInfo collectBaseFileCoverage(@NotNull final VirtualFile file, @NotNull final Annotator annotator, @NotNull final ProjectData projectData, - @NotNull final Map normalizedFiles2Files) - { + @NotNull final Map normalizedFiles2Files) { final String filePath = normalizeFilePath(file.getPath()); // process file @@ -166,8 +165,7 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator { private static @Nullable ClassData getClassData( final @NotNull String filePath, final @NotNull ProjectData data, - final @NotNull Map normalizedFiles2Files) - { + final @NotNull Map normalizedFiles2Files) { final String originalFileName = normalizedFiles2Files.get(filePath); if (originalFileName == null) { return null; @@ -272,8 +270,7 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator { @NotNull final CoverageSuitesBundle suite, final @NotNull CoverageDataManager dataManager, @NotNull final ProjectData data, final Project project, - final Annotator annotator) - { + final Annotator annotator) { if (!contentRoot.isValid()) { return; } @@ -395,7 +392,7 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator { } @Nullable - private static FileCoverageInfo fileInfoForCoveredFile(@NotNull final ClassData classData) { + private FileCoverageInfo fileInfoForCoveredFile(@NotNull final ClassData classData) { final Object[] lines = classData.getLines(); // class data lines = [0, 1, ... count] but first element with index = #0 is fake and isn't @@ -408,27 +405,31 @@ public abstract class SimpleCoverageAnnotator extends BaseCoverageAnnotator { final FileCoverageInfo info = new FileCoverageInfo(); - int srcLinesCount = 0; - int coveredLinesCount = 0; + info.coveredLineCount = 0; + info.totalLineCount = 0; // let's count covered lines for (int i = 1; i <= count; i++) { final LineData lineData = classData.getLineData(i); - if (lineData == null) { - // Ignore not src code - continue; - } - final int status = lineData.getStatus(); - // covered - if src code & covered (or inferred covered) - if (status != LineCoverage.NONE) { - coveredLinesCount++; - } - srcLinesCount++; + + processLineData(info, lineData); } - info.totalLineCount = srcLinesCount; - info.coveredLineCount = coveredLinesCount; return info; } + protected void processLineData(@NotNull FileCoverageInfo info, @Nullable LineData lineData) { + if (lineData == null) { + // Ignore not src code + return; + } + final int status = lineData.getStatus(); + // covered - if src code & covered (or inferred covered) + + if (status != LineCoverage.NONE) { + info.coveredLineCount++; + } + info.totalLineCount++; + } + @Nullable protected FileCoverageInfo fillInfoForUncoveredFile(@NotNull File file) { return null;