diff options
author | Alex Lorenz <arphaman@gmail.com> | 2016-11-21 14:00:04 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2016-11-21 14:00:04 +0000 |
commit | 35369c1eb6c4066a563c5a1766c5fb449dc85eb5 (patch) | |
tree | 6d13b621bf3d3bdd02d127965f9f535acdd864c7 /llvm/tools | |
parent | 91972d7f9d9ab4c4db34bc003df1064ae5805736 (diff) | |
download | bcm5719-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.cpp | 44 | ||||
-rw-r--r-- | llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp | 12 |
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)); }; |