aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYing Yi <maggieyi666@gmail.com>2016-09-06 21:41:38 +0000
committerYing Yi <maggieyi666@gmail.com>2016-09-06 21:41:38 +0000
commit24e91bd05fec332b73a991fa1f59160ea1c1e18e (patch)
tree8e65166010889596601e08e24a5592560daaa0d3
parent8a0e3f828a6712cf5098bb53ca082b5f87c7ea75 (diff)
downloadllvm-24e91bd05fec332b73a991fa1f59160ea1c1e18e.zip
llvm-24e91bd05fec332b73a991fa1f59160ea1c1e18e.tar.gz
llvm-24e91bd05fec332b73a991fa1f59160ea1c1e18e.tar.bz2
[llvm-cov] Add the project summary to the text coverage report for each source file.
This patch is a spin-off from https://reviews.llvm.org/D23922. It extends the text view to preserve the same feature as the html view. Differential Revision: https://reviews.llvm.org/D24241 llvm-svn: 280756
-rw-r--r--llvm/test/tools/llvm-cov/native_separators.c5
-rw-r--r--llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp6
-rw-r--r--llvm/tools/llvm-cov/CodeCoverage.cpp2
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageView.cpp9
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageView.h3
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp7
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageViewText.cpp4
7 files changed, 24 insertions, 12 deletions
diff --git a/llvm/test/tools/llvm-cov/native_separators.c b/llvm/test/tools/llvm-cov/native_separators.c
index 2133feb..e7659d7 100644
--- a/llvm/test/tools/llvm-cov/native_separators.c
+++ b/llvm/test/tools/llvm-cov/native_separators.c
@@ -20,6 +20,11 @@
int main() {}
+// RUN: llvm-cov show %S/Inputs/native_separators.covmapping -instr-profile=%t.profdata -filename-equivalence %s -o %t.dir
+// RUN: FileCheck -check-prefixes=TEXT -input-file=%t.dir/coverage/tmp/native_separators.c.txt %s
+// TEXT: {{^}}Source: \tmp\native_separators.c:{{$}}
+// TEXT: {{^}}Binary: {{.*}}tools\llvm-cov\Inputs\native_separators.covmapping:{{$}}
+
// Re-purpose this file to test that "Go to first unexecuted line" feature.
// RUN: llvm-cov show %S/Inputs/native_separators.covmapping -instr-profile %t.profdata -filename-equivalence -format html -o %t.dir %s
diff --git a/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp b/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
index 5a656db..db9576d 100644
--- a/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
+++ b/llvm/test/tools/llvm-cov/showTemplateInstantiations.cpp
@@ -12,7 +12,7 @@ int func(T x) { // ALL-NEXT: [[@LINE]]| 2|int func(T x) {
int j = 1; // ALL-NEXT: [[@LINE]]| 0| int j = 1;
} // ALL-NEXT: [[@LINE]]| 2|}
- // SHARED: {{^ *(\| )?}}_Z4funcIbEiT_:
+ // SHARED: {{^ *(\| )?}}Function: _Z4funcIbEiT_:
// SHARED: [[@LINE-9]]| 1|int func(T x) {
// SHARED-NEXT: [[@LINE-9]]| 1| if(x)
// SHARED-NEXT: [[@LINE-9]]| 1| return 0;
@@ -21,8 +21,8 @@ int func(T x) { // ALL-NEXT: [[@LINE]]| 2|int func(T x) {
// SHARED-NEXT: [[@LINE-9]]| 0| int j = 1;
// SHARED-NEXT: [[@LINE-9]]| 1|}
- // ALL: {{^ *}}| _Z4funcIiEiT_:
- // FILTER-NOT: {{^ *(\| )?}} _Z4funcIiEiT_:
+ // ALL: {{^ *}}| Function: _Z4funcIiEiT_:
+ // FILTER-NOT: {{^ *(\| )?}}Function: _Z4funcIiEiT_:
// ALL: [[@LINE-19]]| 1|int func(T x) {
// ALL-NEXT: [[@LINE-19]]| 1| if(x)
// ALL-NEXT: [[@LINE-19]]| 0| return 0;
diff --git a/llvm/tools/llvm-cov/CodeCoverage.cpp b/llvm/tools/llvm-cov/CodeCoverage.cpp
index 00c5470..02309c9 100644
--- a/llvm/tools/llvm-cov/CodeCoverage.cpp
+++ b/llvm/tools/llvm-cov/CodeCoverage.cpp
@@ -669,7 +669,7 @@ int CodeCoverageTool::show(int argc, const char **argv,
// Show files
bool ShowFilenames =
- (SourceFiles.size() != 1) ||
+ (SourceFiles.size() != 1) || ViewOpts.hasOutputDirectory() ||
(ViewOpts.Format == CoverageViewOptions::OutputFormat::HTML);
if (SourceFiles.empty())
diff --git a/llvm/tools/llvm-cov/SourceCoverageView.cpp b/llvm/tools/llvm-cov/SourceCoverageView.cpp
index 323352a..47980ab 100644
--- a/llvm/tools/llvm-cov/SourceCoverageView.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageView.cpp
@@ -142,6 +142,15 @@ SourceCoverageView::create(StringRef SourceName, const MemoryBuffer &File,
llvm_unreachable("Unknown coverage output format!");
}
+std::string SourceCoverageView::getNativeSourceName() const {
+ std::string SourceFile = isFunctionView() ? "Function: " : "Source: ";
+ SourceFile += getSourceName().str();
+ SmallString<128> SourceText(SourceFile);
+ sys::path::remove_dots(SourceText, /*remove_dot_dots=*/true);
+ sys::path::native(SourceText);
+ return SourceText.c_str();
+}
+
void SourceCoverageView::addExpansion(
const coverage::CounterMappingRegion &Region,
std::unique_ptr<SourceCoverageView> View) {
diff --git a/llvm/tools/llvm-cov/SourceCoverageView.h b/llvm/tools/llvm-cov/SourceCoverageView.h
index 410c8fd..63c5b65 100644
--- a/llvm/tools/llvm-cov/SourceCoverageView.h
+++ b/llvm/tools/llvm-cov/SourceCoverageView.h
@@ -278,6 +278,9 @@ public:
StringRef getSourceName() const { return SourceName; }
+ /// \brief Return the source name formatted for the host OS.
+ std::string getNativeSourceName() const;
+
bool isFunctionView() const { return FunctionView; }
const CoverageViewOptions &getOptions() const { return Options; }
diff --git a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
index 7e069de..52e594f 100644
--- a/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
@@ -342,12 +342,7 @@ void SourceCoverageViewHTML::renderSourceName(raw_ostream &OS, bool WholeFile,
unsigned FirstUncoveredLineNo) {
OS << BeginSourceNameDiv;
// Render the source name for the view.
- std::string SourceFile = isFunctionView() ? "Function: " : "Source: ";
- SourceFile += getSourceName().str();
- SmallString<128> SourceText(SourceFile);
- sys::path::remove_dots(SourceText, /*remove_dot_dots=*/true);
- sys::path::native(SourceText);
- OS << tag("pre", escape(SourceText, getOptions()));
+ OS << tag("pre", escape(getNativeSourceName(), getOptions()));
if (WholeFile) {
// Render the object file name for the view.
OS << tag("pre",
diff --git a/llvm/tools/llvm-cov/SourceCoverageViewText.cpp b/llvm/tools/llvm-cov/SourceCoverageViewText.cpp
index 52e405e..6dec4c7 100644
--- a/llvm/tools/llvm-cov/SourceCoverageViewText.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageViewText.cpp
@@ -65,11 +65,11 @@ void SourceCoverageViewText::renderViewFooter(raw_ostream &) {}
void SourceCoverageViewText::renderSourceName(raw_ostream &OS, bool WholeFile,
unsigned FirstUncoveredLineNo) {
- getOptions().colored_ostream(OS, raw_ostream::CYAN) << getSourceName()
+ getOptions().colored_ostream(OS, raw_ostream::CYAN) << getNativeSourceName()
<< ":\n";
if (WholeFile) {
getOptions().colored_ostream(OS, raw_ostream::CYAN)
- << getOptions().ObjectFilename << ":\n";
+ << "Binary: " << getOptions().ObjectFilename << ":\n";
}
}