summaryrefslogtreecommitdiff
path: root/tools/llvm-cov
diff options
context:
space:
mode:
authorSean Eveson <eveson.sean@gmail.com>2017-10-03 11:05:28 +0000
committerSean Eveson <eveson.sean@gmail.com>2017-10-03 11:05:28 +0000
commitb863c40437d88ceef6781fb69a9d3766d8e729ba (patch)
treeaf73b14f1ab49829c1029f3313194d7a5e4193be /tools/llvm-cov
parentb0c3c28f198f2ba37e96579cd525be57887251b4 (diff)
[llvm-cov] Hide files with no coverage from the index when filtering by name
Differential Revision: https://reviews.llvm.org/D38457 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@314782 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-cov')
-rw-r--r--tools/llvm-cov/CoverageReport.cpp8
-rw-r--r--tools/llvm-cov/CoverageReport.h2
-rw-r--r--tools/llvm-cov/SourceCoverageView.h4
-rw-r--r--tools/llvm-cov/SourceCoverageViewHTML.cpp5
-rw-r--r--tools/llvm-cov/SourceCoverageViewHTML.h2
-rw-r--r--tools/llvm-cov/SourceCoverageViewText.cpp3
-rw-r--r--tools/llvm-cov/SourceCoverageViewText.h2
7 files changed, 14 insertions, 12 deletions
diff --git a/tools/llvm-cov/CoverageReport.cpp b/tools/llvm-cov/CoverageReport.cpp
index 5c8ffe1216d..56745308b79 100644
--- a/tools/llvm-cov/CoverageReport.cpp
+++ b/tools/llvm-cov/CoverageReport.cpp
@@ -367,9 +367,9 @@ void CoverageReport::renderFileReports(raw_ostream &OS) const {
renderFileReports(OS, UniqueSourceFiles, CoverageFiltersMatchAll());
}
-void CoverageReport::renderFileReports(raw_ostream &OS,
- ArrayRef<std::string> Files,
- const CoverageFilter &Filters) const {
+void CoverageReport::renderFileReports(
+ raw_ostream &OS, ArrayRef<std::string> Files,
+ const CoverageFiltersMatchAll &Filters) const {
FileCoverageSummary Totals("TOTAL");
auto FileReports =
prepareFileReports(Coverage, Totals, Files, Options, Filters);
@@ -405,7 +405,7 @@ void CoverageReport::renderFileReports(raw_ostream &OS,
EmptyFiles = true;
}
- if (EmptyFiles) {
+ if (EmptyFiles && Filters.empty()) {
OS << "\n"
<< "Files which contain no functions:\n";
diff --git a/tools/llvm-cov/CoverageReport.h b/tools/llvm-cov/CoverageReport.h
index d78f2e4c2bd..4126c319f43 100644
--- a/tools/llvm-cov/CoverageReport.h
+++ b/tools/llvm-cov/CoverageReport.h
@@ -50,7 +50,7 @@ public:
/// Render file reports for the files specified in \p Files and the functions
/// in \p Filters.
void renderFileReports(raw_ostream &OS, ArrayRef<std::string> Files,
- const CoverageFilter &Filters) const;
+ const CoverageFiltersMatchAll &Filters) const;
};
} // end namespace llvm
diff --git a/tools/llvm-cov/SourceCoverageView.h b/tools/llvm-cov/SourceCoverageView.h
index 7c7e8781364..24080284d8b 100644
--- a/tools/llvm-cov/SourceCoverageView.h
+++ b/tools/llvm-cov/SourceCoverageView.h
@@ -22,7 +22,7 @@
namespace llvm {
-class CoverageFilter;
+class CoverageFiltersMatchAll;
class SourceCoverageView;
/// \brief A view that represents a macro or include expansion.
@@ -113,7 +113,7 @@ public:
/// \brief Create an index which lists reports for the given source files.
virtual Error createIndexFile(ArrayRef<std::string> SourceFiles,
const coverage::CoverageMapping &Coverage,
- const CoverageFilter &Filters) = 0;
+ const CoverageFiltersMatchAll &Filters) = 0;
/// @}
};
diff --git a/tools/llvm-cov/SourceCoverageViewHTML.cpp b/tools/llvm-cov/SourceCoverageViewHTML.cpp
index a031f184825..b8fdf4483a7 100644
--- a/tools/llvm-cov/SourceCoverageViewHTML.cpp
+++ b/tools/llvm-cov/SourceCoverageViewHTML.cpp
@@ -366,7 +366,8 @@ void CoveragePrinterHTML::emitFileSummary(raw_ostream &OS, StringRef SF,
Error CoveragePrinterHTML::createIndexFile(
ArrayRef<std::string> SourceFiles,
- const coverage::CoverageMapping &Coverage, const CoverageFilter &Filters) {
+ const coverage::CoverageMapping &Coverage,
+ const CoverageFiltersMatchAll &Filters) {
// Emit the default stylesheet.
auto CSSOrErr = createOutputStream("style", "css", /*InToplevel=*/true);
if (Error E = CSSOrErr.takeError())
@@ -419,7 +420,7 @@ Error CoveragePrinterHTML::createIndexFile(
// Emit links to files which don't contain any functions. These are normally
// not very useful, but could be relevant for code which abuses the
// preprocessor.
- if (EmptyFiles) {
+ if (EmptyFiles && Filters.empty()) {
OSRef << tag("p", "Files which contain no functions. (These "
"files contain code pulled into other files "
"by the preprocessor.)\n");
diff --git a/tools/llvm-cov/SourceCoverageViewHTML.h b/tools/llvm-cov/SourceCoverageViewHTML.h
index e11111a5ad2..978a75aeced 100644
--- a/tools/llvm-cov/SourceCoverageViewHTML.h
+++ b/tools/llvm-cov/SourceCoverageViewHTML.h
@@ -30,7 +30,7 @@ public:
Error createIndexFile(ArrayRef<std::string> SourceFiles,
const coverage::CoverageMapping &Coverage,
- const CoverageFilter &Filters) override;
+ const CoverageFiltersMatchAll &Filters) override;
CoveragePrinterHTML(const CoverageViewOptions &Opts)
: CoveragePrinter(Opts) {}
diff --git a/tools/llvm-cov/SourceCoverageViewText.cpp b/tools/llvm-cov/SourceCoverageViewText.cpp
index b2902df185d..261f08d7022 100644
--- a/tools/llvm-cov/SourceCoverageViewText.cpp
+++ b/tools/llvm-cov/SourceCoverageViewText.cpp
@@ -30,7 +30,8 @@ void CoveragePrinterText::closeViewFile(OwnedStream OS) {
Error CoveragePrinterText::createIndexFile(
ArrayRef<std::string> SourceFiles,
- const coverage::CoverageMapping &Coverage, const CoverageFilter &Filters) {
+ const coverage::CoverageMapping &Coverage,
+ const CoverageFiltersMatchAll &Filters) {
auto OSOrErr = createOutputStream("index", "txt", /*InToplevel=*/true);
if (Error E = OSOrErr.takeError())
return E;
diff --git a/tools/llvm-cov/SourceCoverageViewText.h b/tools/llvm-cov/SourceCoverageViewText.h
index 3a04070d1ac..5cf7caf79da 100644
--- a/tools/llvm-cov/SourceCoverageViewText.h
+++ b/tools/llvm-cov/SourceCoverageViewText.h
@@ -28,7 +28,7 @@ public:
Error createIndexFile(ArrayRef<std::string> SourceFiles,
const coverage::CoverageMapping &Coverage,
- const CoverageFilter &Filters) override;
+ const CoverageFiltersMatchAll &Filters) override;
CoveragePrinterText(const CoverageViewOptions &Opts)
: CoveragePrinter(Opts) {}