summaryrefslogtreecommitdiffstats
path: root/llvm/tools
diff options
context:
space:
mode:
authorAlex Lorenz <arphaman@gmail.com>2016-11-21 14:00:04 +0000
committerAlex Lorenz <arphaman@gmail.com>2016-11-21 14:00:04 +0000
commit35369c1eb6c4066a563c5a1766c5fb449dc85eb5 (patch)
tree6d13b621bf3d3bdd02d127965f9f535acdd864c7 /llvm/tools
parent91972d7f9d9ab4c4db34bc003df1064ae5805736 (diff)
downloadbcm5719-llvm-35369c1eb6c4066a563c5a1766c5fb449dc85eb5.tar.gz
bcm5719-llvm-35369c1eb6c4066a563c5a1766c5fb449dc85eb5.zip
[llvm-cov] Avoid 0% when reporting something that's 0/0
This commit makes llvm-cov avoid showing 0% (0/0) coverage for things like file function coverage, etc. in reports and HTML output. This can happen for files like headers that have macros but no functions. This commit makes llvm-cov report - (0/0) instead. rdar://29246480 Differential Revision: https://reviews.llvm.org/D26615 llvm-svn: 287539
Diffstat (limited to 'llvm/tools')
-rw-r--r--llvm/tools/llvm-cov/CoverageReport.cpp44
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp12
2 files changed, 36 insertions, 20 deletions
diff --git a/llvm/tools/llvm-cov/CoverageReport.cpp b/llvm/tools/llvm-cov/CoverageReport.cpp
index 5a56579149a..e88cb186acd 100644
--- a/llvm/tools/llvm-cov/CoverageReport.cpp
+++ b/llvm/tools/llvm-cov/CoverageReport.cpp
@@ -154,36 +154,48 @@ void CoverageReport::render(const FileCoverageSummary &File,
(unsigned)File.RegionCoverage.NumRegions);
Options.colored_ostream(OS, FileCoverageColor) << format(
"%*u", FileReportColumns[2], (unsigned)File.RegionCoverage.NotCovered);
- Options.colored_ostream(OS, FileCoverageColor)
- << format("%*.2f", FileReportColumns[3] - 1,
- File.RegionCoverage.getPercentCovered())
- << '%';
+ if (File.RegionCoverage.NumRegions)
+ Options.colored_ostream(OS, FileCoverageColor)
+ << format("%*.2f", FileReportColumns[3] - 1,
+ File.RegionCoverage.getPercentCovered())
+ << '%';
+ else
+ OS << column("-", FileReportColumns[3], Column::RightAlignment);
OS << format("%*u", FileReportColumns[4],
(unsigned)File.FunctionCoverage.NumFunctions);
OS << format("%*u", FileReportColumns[5],
(unsigned)(File.FunctionCoverage.NumFunctions -
File.FunctionCoverage.Executed));
- Options.colored_ostream(OS, FuncCoverageColor)
- << format("%*.2f", FileReportColumns[6] - 1,
- File.FunctionCoverage.getPercentCovered())
- << '%';
+ if (File.FunctionCoverage.NumFunctions)
+ Options.colored_ostream(OS, FuncCoverageColor)
+ << format("%*.2f", FileReportColumns[6] - 1,
+ File.FunctionCoverage.getPercentCovered())
+ << '%';
+ else
+ OS << column("-", FileReportColumns[6], Column::RightAlignment);
OS << format("%*u", FileReportColumns[7],
(unsigned)File.InstantiationCoverage.NumFunctions);
OS << format("%*u", FileReportColumns[8],
(unsigned)(File.InstantiationCoverage.NumFunctions -
File.InstantiationCoverage.Executed));
- Options.colored_ostream(OS, InstantiationCoverageColor)
- << format("%*.2f", FileReportColumns[9] - 1,
- File.InstantiationCoverage.getPercentCovered())
- << '%';
+ if (File.InstantiationCoverage.NumFunctions)
+ Options.colored_ostream(OS, InstantiationCoverageColor)
+ << format("%*.2f", FileReportColumns[9] - 1,
+ File.InstantiationCoverage.getPercentCovered())
+ << '%';
+ else
+ OS << column("-", FileReportColumns[9], Column::RightAlignment);
OS << format("%*u", FileReportColumns[10],
(unsigned)File.LineCoverage.NumLines);
Options.colored_ostream(OS, LineCoverageColor) << format(
"%*u", FileReportColumns[11], (unsigned)File.LineCoverage.NotCovered);
- Options.colored_ostream(OS, LineCoverageColor)
- << format("%*.2f", FileReportColumns[12] - 1,
- File.LineCoverage.getPercentCovered())
- << '%';
+ if (File.LineCoverage.NumLines)
+ Options.colored_ostream(OS, LineCoverageColor)
+ << format("%*.2f", FileReportColumns[12] - 1,
+ File.LineCoverage.getPercentCovered())
+ << '%';
+ else
+ OS << column("-", FileReportColumns[12], Column::RightAlignment);
OS << "\n";
}
diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
index 8fc01ef0d88..64b888e89d7 100644
--- a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
@@ -307,13 +307,17 @@ void CoveragePrinterHTML::emitFileSummary(raw_ostream &OS, StringRef SF,
std::string S;
{
raw_string_ostream RSO{S};
- RSO << format("%*.2f", 7, Pctg) << "% (" << Hit << '/' << Total << ')';
+ if (Total)
+ RSO << format("%*.2f", 7, Pctg) << "% ";
+ else
+ RSO << "- ";
+ RSO << '(' << Hit << '/' << Total << ')';
}
const char *CellClass = "column-entry-yellow";
- if (Pctg < 80.0)
- CellClass = "column-entry-red";
- else if (Hit == Total)
+ if (Hit == Total)
CellClass = "column-entry-green";
+ else if (Pctg < 80.0)
+ CellClass = "column-entry-red";
Columns.emplace_back(tag("td", tag("pre", S), CellClass));
};
OpenPOWER on IntegriCloud