summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
diff options
context:
space:
mode:
authorEli Friedman <efriedma@codeaurora.org>2017-09-11 22:56:20 +0000
committerEli Friedman <efriedma@codeaurora.org>2017-09-11 22:56:20 +0000
commit50479f60c40106de3fc5a54b572ccc806f79958a (patch)
tree3ace56b1798d2fa4123c3741e9e0f9f783e0d996 /llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
parentb9b60253281e5ddd90c7be033099e6d78e94c30e (diff)
downloadbcm5719-llvm-50479f60c40106de3fc5a54b572ccc806f79958a.tar.gz
bcm5719-llvm-50479f60c40106de3fc5a54b572ccc806f79958a.zip
[llvm-cov] Allow hiding instantiation/region coverage from summary tables
Region coverage is difficult to explain without going deep into how coverage is implemented. Instantiation coverage is easier to explain, but probably not useful in most cases (templates don't exist in C, and most C++ code contains relatively few templates). This patch adds the options "-show-region-summary" and "-show-instantiation-summary" to allow hiding those columns. "-show-instantiation-summary" is turned off by default. llvm-svn: 312969
Diffstat (limited to 'llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp')
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp28
1 files changed, 17 insertions, 11 deletions
diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
index 03f7a70cd8f..eeb2a961ee1 100644
--- a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
@@ -285,12 +285,16 @@ void CoveragePrinterHTML::closeViewFile(OwnedStream OS) {
}
/// Emit column labels for the table in the index.
-static void emitColumnLabelsForIndex(raw_ostream &OS) {
+static void emitColumnLabelsForIndex(raw_ostream &OS,
+ const CoverageViewOptions &Opts) {
SmallVector<std::string, 4> Columns;
Columns.emplace_back(tag("td", "Filename", "column-entry-left"));
- for (const char *Label : {"Function Coverage", "Instantiation Coverage",
- "Line Coverage", "Region Coverage"})
- Columns.emplace_back(tag("td", Label, "column-entry"));
+ Columns.emplace_back(tag("td", "Function Coverage", "column-entry"));
+ if (Opts.ShowInstantiationSummary)
+ Columns.emplace_back(tag("td", "Instantiation Coverage", "column-entry"));
+ Columns.emplace_back(tag("td", "Line Coverage", "column-entry"));
+ if (Opts.ShowRegionSummary)
+ Columns.emplace_back(tag("td", "Region Coverage", "column-entry"));
OS << tag("tr", join(Columns.begin(), Columns.end(), ""));
}
@@ -345,14 +349,16 @@ void CoveragePrinterHTML::emitFileSummary(raw_ostream &OS, StringRef SF,
AddCoverageTripleToColumn(FCS.FunctionCoverage.Executed,
FCS.FunctionCoverage.NumFunctions,
FCS.FunctionCoverage.getPercentCovered());
- AddCoverageTripleToColumn(FCS.InstantiationCoverage.Executed,
- FCS.InstantiationCoverage.NumFunctions,
- FCS.InstantiationCoverage.getPercentCovered());
+ if (Opts.ShowInstantiationSummary)
+ AddCoverageTripleToColumn(FCS.InstantiationCoverage.Executed,
+ FCS.InstantiationCoverage.NumFunctions,
+ FCS.InstantiationCoverage.getPercentCovered());
AddCoverageTripleToColumn(FCS.LineCoverage.Covered, FCS.LineCoverage.NumLines,
FCS.LineCoverage.getPercentCovered());
- AddCoverageTripleToColumn(FCS.RegionCoverage.Covered,
- FCS.RegionCoverage.NumRegions,
- FCS.RegionCoverage.getPercentCovered());
+ if (Opts.ShowRegionSummary)
+ AddCoverageTripleToColumn(FCS.RegionCoverage.Covered,
+ FCS.RegionCoverage.NumRegions,
+ FCS.RegionCoverage.getPercentCovered());
OS << tag("tr", join(Columns.begin(), Columns.end(), ""), "light-row");
}
@@ -395,7 +401,7 @@ Error CoveragePrinterHTML::createIndexFile(
// Emit a table containing links to reports for each file in the covmapping.
// Exclude files which don't contain any regions.
OSRef << BeginCenteredDiv << BeginTable;
- emitColumnLabelsForIndex(OSRef);
+ emitColumnLabelsForIndex(OSRef, Opts);
FileCoverageSummary Totals("TOTALS");
auto FileReports =
CoverageReport::prepareFileReports(Coverage, Totals, SourceFiles, Opts);
OpenPOWER on IntegriCloud