aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp3
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/relative_dir/header.h1
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/relative_dir/main.c5
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmappingbin0 -> 157 bytes
-rw-r--r--llvm/test/tools/llvm-cov/Inputs/relative_dir/main.proftext16
-rw-r--r--llvm/test/tools/llvm-cov/coverage-prefix-map.test2
-rw-r--r--llvm/test/tools/llvm-cov/relative-dir.test10
-rw-r--r--llvm/unittests/ProfileData/CoverageMappingTest.cpp4
8 files changed, 37 insertions, 4 deletions
diff --git a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
index 0bb1c57..1a18779 100644
--- a/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
@@ -175,7 +175,8 @@ Error RawCoverageFilenamesReader::readUncompressed(CovMapVersion Version,
else
P.assign(CWD);
llvm::sys::path::append(P, Filename);
- Filenames.push_back(static_cast<std::string>(P));
+ sys::path::remove_dots(P, /*remove_dot_dot=*/true);
+ Filenames.push_back(static_cast<std::string>(P.str()));
}
}
}
diff --git a/llvm/test/tools/llvm-cov/Inputs/relative_dir/header.h b/llvm/test/tools/llvm-cov/Inputs/relative_dir/header.h
new file mode 100644
index 0000000..a39fce09
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/Inputs/relative_dir/header.h
@@ -0,0 +1 @@
+int f() { return 0; }
diff --git a/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.c b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.c
new file mode 100644
index 0000000..26e97a5
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.c
@@ -0,0 +1,5 @@
+#include "header.h"
+
+int main() {
+ return f();
+}
diff --git a/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping
new file mode 100644
index 0000000..665aa96
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.covmapping
Binary files differ
diff --git a/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.proftext b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.proftext
new file mode 100644
index 0000000..ab94aa2f
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/Inputs/relative_dir/main.proftext
@@ -0,0 +1,16 @@
+f
+# Func Hash:
+24
+# Num Counters:
+1
+# Counter Values:
+1
+
+main
+# Func Hash:
+24
+# Num Counters:
+1
+# Counter Values:
+1
+
diff --git a/llvm/test/tools/llvm-cov/coverage-prefix-map.test b/llvm/test/tools/llvm-cov/coverage-prefix-map.test
index eaebae3..5e8fae4 100644
--- a/llvm/test/tools/llvm-cov/coverage-prefix-map.test
+++ b/llvm/test/tools/llvm-cov/coverage-prefix-map.test
@@ -13,7 +13,7 @@
# REPORT: {{^}}bar.h{{.*}}
# REPORT: {{^}}TOTAL{{.*}}100.00%
-# LCOV: SF:.{{/|\\+}}bar.h
+# LCOV: SF:bar.h
# LCOV-NOT: SF
Instructions for regenerating the test:
diff --git a/llvm/test/tools/llvm-cov/relative-dir.test b/llvm/test/tools/llvm-cov/relative-dir.test
new file mode 100644
index 0000000..1fc902b
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/relative-dir.test
@@ -0,0 +1,10 @@
+# RUN: llvm-profdata merge %S/Inputs/relative_dir/main.proftext \
+# RUN: -o %t.profdata
+# RUN: llvm-cov report %S/Inputs/relative_dir/main.covmapping \
+# RUN: -instr-profile %t.profdata \
+# RUN: -compilation-dir=%S/Inputs/relative_dir/out/default \
+# RUN: %S/Inputs/relative_dir/header.h \
+# RUN: | FileCheck -DDIR=%S/Inputs/relative_dir --check-prefix=REPORT %s
+
+# REPORT: {{^}}[[DIR]]{{/|\\}}header.h{{.*}}
+# REPORT: {{^}}TOTAL{{.*}}100.00%
diff --git a/llvm/unittests/ProfileData/CoverageMappingTest.cpp b/llvm/unittests/ProfileData/CoverageMappingTest.cpp
index cc4c953..758398d 100644
--- a/llvm/unittests/ProfileData/CoverageMappingTest.cpp
+++ b/llvm/unittests/ProfileData/CoverageMappingTest.cpp
@@ -943,7 +943,7 @@ TEST(CoverageMappingTest, filename_roundtrip) {
for (unsigned I = 1; I < Paths.size(); ++I) {
SmallString<256> P(Paths[0]);
llvm::sys::path::append(P, Paths[I]);
- ASSERT_TRUE(ReadFilenames[I] == P);
+ ASSERT_EQ(ReadFilenames[I], P);
}
}
}
@@ -969,7 +969,7 @@ TEST(CoverageMappingTest, filename_compilation_dir) {
for (unsigned I = 1; I < Paths.size(); ++I) {
SmallString<256> P(CompilationDir);
llvm::sys::path::append(P, Paths[I]);
- ASSERT_TRUE(ReadFilenames[I] == P);
+ ASSERT_EQ(ReadFilenames[I], P);
}
}
}