mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-05 00:59:19 +00:00
[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
This commit is contained in:
parent
b0c3c28f19
commit
b863c40437
@ -32,6 +32,14 @@ TEXT-INDEX-ONE-FILE-NOT: dir-with-filtering2.cpp
|
||||
|
||||
RUN: FileCheck -input-file=%t.text_one_file/coverage/tmp/dir-with-filtering1.cpp.txt %s -check-prefix=TEXT-FILE1
|
||||
|
||||
// Test TEXT index file with all functions in one file filtered out
|
||||
|
||||
RUN: llvm-cov show %S/Inputs/dir-with-filtering.covmapping -o %t.text_one_func -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main
|
||||
RUN: FileCheck -input-file=%t.text_one_func/index.txt %s -check-prefix=TEXT-INDEX-ONE-FUNC
|
||||
|
||||
TEXT-INDEX-ONE-FUNC-NOT: Files which contain no functions
|
||||
TEXT-INDEX-ONE-FUNC-NOT: dir-with-filtering2.cpp
|
||||
|
||||
// Test HTML both files
|
||||
|
||||
RUN: llvm-profdata merge %S/Inputs/dir-with-filtering.proftext -o %t.profdata
|
||||
@ -67,3 +75,11 @@ HTML-INDEX-ONE-FILE: dir-with-filtering1.cpp{{.*}}100.00% (1/1){{.*}}100.00% (4/
|
||||
HTML-INDEX-ONE-FILE-NOT: dir-with-filtering2.cpp
|
||||
|
||||
RUN: FileCheck -input-file=%t.html_one_file/coverage/tmp/dir-with-filtering1.cpp.html %s -check-prefix=HTML-FILE1
|
||||
|
||||
// Test HTML index file with all functions in one file filtered out
|
||||
|
||||
RUN: llvm-cov show %S/Inputs/dir-with-filtering.covmapping -format html -o %t.html_one_func -instr-profile %t.profdata -path-equivalence=/tmp,%S/Inputs -name=main
|
||||
RUN: FileCheck -input-file=%t.html_one_func/index.html %s -check-prefix=HTML-INDEX-ONE-FUNC
|
||||
|
||||
HTML-INDEX-ONE-FUNC-NOT: Files which contain no functions
|
||||
HTML-INDEX-ONE-FUNC-NOT: dir-with-filtering2.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";
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
||||
/// @}
|
||||
};
|
||||
|
@ -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");
|
||||
|
@ -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) {}
|
||||
|
@ -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;
|
||||
|
@ -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) {}
|
||||
|
Loading…
x
Reference in New Issue
Block a user