summaryrefslogtreecommitdiff
path: root/test/tools/llvm-cov/Inputs
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2014-02-04 10:45:02 +0000
committerJustin Bogner <mail@justinbogner.com>2014-02-04 10:45:02 +0000
commit01c05505841940a899fbfd3e214b5d3214d80ef6 (patch)
treeca02f24ac0384d572f18007daf01d5b3339caf91 /test/tools/llvm-cov/Inputs
parent284c931330404e61d548fc1eedf44d5dd1b87507 (diff)
downloadllvm-01c05505841940a899fbfd3e214b5d3214d80ef6.tar.gz
llvm-01c05505841940a899fbfd3e214b5d3214d80ef6.tar.bz2
llvm-01c05505841940a899fbfd3e214b5d3214d80ef6.tar.xz
llvm-cov: Implement the preserve-paths flag
Until now, when a path in a gcno file included a directory, we would emit our .gcov file in that directory, whereas gcov always emits the file in the current directory. In doing so, this implements gcov's strange name-mangling -p flag, which is needed to avoid clobbering files when two with the same name exist in different directories. The path mangling is a bit ugly and only handles unix-like paths, but it's simple, and it doesn't make any guesses as to how it should behave outside of what gcov documents. If we decide this should be cross platform later, we can consider the compatibility implications then. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200754 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/tools/llvm-cov/Inputs')
-rw-r--r--test/tools/llvm-cov/Inputs/test_-b.output2
-rw-r--r--test/tools/llvm-cov/Inputs/test_-f.output2
-rw-r--r--test/tools/llvm-cov/Inputs/test_no_gcda.output2
-rw-r--r--test/tools/llvm-cov/Inputs/test_no_options.output2
-rw-r--r--test/tools/llvm-cov/Inputs/test_no_preserve_paths.output8
-rw-r--r--test/tools/llvm-cov/Inputs/test_paths.cpp.gcov79
-rw-r--r--test/tools/llvm-cov/Inputs/test_paths.gcdabin0 -> 904 bytes
-rw-r--r--test/tools/llvm-cov/Inputs/test_paths.gcnobin0 -> 4476 bytes
-rw-r--r--test/tools/llvm-cov/Inputs/test_paths.h.gcov8
-rw-r--r--test/tools/llvm-cov/Inputs/test_preserve_paths.output8
10 files changed, 107 insertions, 4 deletions
diff --git a/test/tools/llvm-cov/Inputs/test_-b.output b/test/tools/llvm-cov/Inputs/test_-b.output
index 4003ce8e69..515987d45e 100644
--- a/test/tools/llvm-cov/Inputs/test_-b.output
+++ b/test/tools/llvm-cov/Inputs/test_-b.output
@@ -9,5 +9,5 @@ File './test.h'
Lines executed:100.00% of 1
No branches
No calls
-./test.h:creating './test.h.gcov'
+./test.h:creating 'test.h.gcov'
diff --git a/test/tools/llvm-cov/Inputs/test_-f.output b/test/tools/llvm-cov/Inputs/test_-f.output
index 9e98d88880..d97aa18174 100644
--- a/test/tools/llvm-cov/Inputs/test_-f.output
+++ b/test/tools/llvm-cov/Inputs/test_-f.output
@@ -34,5 +34,5 @@ test.cpp:creating 'test.cpp.gcov'
File './test.h'
Lines executed:100.00% of 1
-./test.h:creating './test.h.gcov'
+./test.h:creating 'test.h.gcov'
diff --git a/test/tools/llvm-cov/Inputs/test_no_gcda.output b/test/tools/llvm-cov/Inputs/test_no_gcda.output
index 69adce209b..e994be7291 100644
--- a/test/tools/llvm-cov/Inputs/test_no_gcda.output
+++ b/test/tools/llvm-cov/Inputs/test_no_gcda.output
@@ -4,5 +4,5 @@ test.cpp:creating 'test.cpp.gcov'
File './test.h'
Lines executed:0.00% of 1
-./test.h:creating './test.h.gcov'
+./test.h:creating 'test.h.gcov'
diff --git a/test/tools/llvm-cov/Inputs/test_no_options.output b/test/tools/llvm-cov/Inputs/test_no_options.output
index 93ea726720..8be8c1c210 100644
--- a/test/tools/llvm-cov/Inputs/test_no_options.output
+++ b/test/tools/llvm-cov/Inputs/test_no_options.output
@@ -4,5 +4,5 @@ test.cpp:creating 'test.cpp.gcov'
File './test.h'
Lines executed:100.00% of 1
-./test.h:creating './test.h.gcov'
+./test.h:creating 'test.h.gcov'
diff --git a/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output b/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output
new file mode 100644
index 0000000000..ada0c36030
--- /dev/null
+++ b/test/tools/llvm-cov/Inputs/test_no_preserve_paths.output
@@ -0,0 +1,8 @@
+File 'srcdir/./nested_dir/../test.h'
+Lines executed:100.00% of 1
+srcdir/./nested_dir/../test.h:creating 'test.h.gcov'
+
+File 'srcdir/./nested_dir/../test.cpp'
+Lines executed:84.21% of 38
+srcdir/./nested_dir/../test.cpp:creating 'test.cpp.gcov'
+
diff --git a/test/tools/llvm-cov/Inputs/test_paths.cpp.gcov b/test/tools/llvm-cov/Inputs/test_paths.cpp.gcov
new file mode 100644
index 0000000000..3982ddf4e5
--- /dev/null
+++ b/test/tools/llvm-cov/Inputs/test_paths.cpp.gcov
@@ -0,0 +1,79 @@
+ -: 0:Source:srcdir/./nested_dir/../test.cpp
+ -: 0:Graph:test_paths.gcno
+ -: 0:Data:test_paths.gcda
+ -: 0:Runs:3
+ -: 0:Programs:1
+ -: 1:#include "test.h"
+ -: 2:#include <cstdlib>
+ -: 3:
+ -: 4:bool on = false;
+ -: 5:int len = 42;
+ -: 6:double grid[10][10] = {0};
+ -: 7:const char * hello = "world";
+ -: 8:const char * world = "hello";
+ -: 9:
+12884901888: 10:void A::B() {}
+ -: 11:
+ #####: 12:void useless() {}
+ -: 13:
+ -: 14:double more_useless() {
+ #####: 15: return 0;
+ -: 16:}
+ -: 17:
+ -: 18:int foo() {
+ 3: 19: on = true;
+ 3: 20: return 3;
+ -: 21:}
+ -: 22:
+ -: 23:int bar() {
+ #####: 24: len--;
+ #####: 25: return foo() + 45;
+ -: 26:}
+ -: 27:
+ 12: 28:void assign(int ii, int jj) {
+ 12: 29: grid[ii][jj] = (ii+1) * (jj+1);
+ 12: 30:}
+ -: 31:
+ -: 32:void initialize_grid() {
+ 21: 33: for (int ii = 0; ii < 2; ii++)
+ 36: 34: for (int jj = 0; jj < 2; jj++)
+ 18: 35: assign(ii, jj);
+ 3: 36:}
+ -: 37:
+ -: 38:int main() {
+ 3: 39: initialize_grid();
+ -: 40:
+ 3: 41: int a = 2;
+ 3: 42: on = rand() % 2;
+ 3: 43: if (on) {
+ 3: 44: foo();
+ 3: 45: ++a;
+ 3: 46: } else {
+ #####: 47: bar();
+ #####: 48: a += rand();
+ -: 49: }
+ -: 50:
+ 66: 51: for (int ii = 0; ii < 10; ++ii) {
+ 30: 52: switch (rand() % 5) {
+ -: 53: case 0:
+ 6: 54: a += rand();
+ 6: 55: break;
+ -: 56: case 1:
+ -: 57: case 2:
+ 3: 58: a += rand() / rand();
+ 3: 59: break;
+ -: 60: case 3:
+ 9: 61: a -= rand();
+ 9: 62: break;
+ -: 63: default:
+ 12: 64: a = -1;
+ 12: 65: }
+ 30: 66: }
+ -: 67:
+ 3: 68: A thing;
+25769803782: 69: for (uint64_t ii = 0; ii < 4294967296; ++ii)
+12884901888: 70: thing.B();
+ -: 71:
+ 3: 72: return a + 8 + grid[2][3] + len;
+ -: 73: return more_useless();
+ -: 74:}
diff --git a/test/tools/llvm-cov/Inputs/test_paths.gcda b/test/tools/llvm-cov/Inputs/test_paths.gcda
new file mode 100644
index 0000000000..7e2cf9ef20
--- /dev/null
+++ b/test/tools/llvm-cov/Inputs/test_paths.gcda
Binary files differ
diff --git a/test/tools/llvm-cov/Inputs/test_paths.gcno b/test/tools/llvm-cov/Inputs/test_paths.gcno
new file mode 100644
index 0000000000..aada974bc5
--- /dev/null
+++ b/test/tools/llvm-cov/Inputs/test_paths.gcno
Binary files differ
diff --git a/test/tools/llvm-cov/Inputs/test_paths.h.gcov b/test/tools/llvm-cov/Inputs/test_paths.h.gcov
new file mode 100644
index 0000000000..95e90ca664
--- /dev/null
+++ b/test/tools/llvm-cov/Inputs/test_paths.h.gcov
@@ -0,0 +1,8 @@
+ -: 0:Source:srcdir/./nested_dir/../test.h
+ -: 0:Graph:test_paths.gcno
+ -: 0:Data:test_paths.gcda
+ -: 0:Runs:3
+ -: 0:Programs:1
+ 6: 1:struct A {
+ -: 2: virtual void B();
+ -: 3:};
diff --git a/test/tools/llvm-cov/Inputs/test_preserve_paths.output b/test/tools/llvm-cov/Inputs/test_preserve_paths.output
new file mode 100644
index 0000000000..5331972556
--- /dev/null
+++ b/test/tools/llvm-cov/Inputs/test_preserve_paths.output
@@ -0,0 +1,8 @@
+File 'srcdir/./nested_dir/../test.h'
+Lines executed:100.00% of 1
+srcdir/./nested_dir/../test.h:creating 'srcdir#nested_dir#^#test.h.gcov'
+
+File 'srcdir/./nested_dir/../test.cpp'
+Lines executed:84.21% of 38
+srcdir/./nested_dir/../test.cpp:creating 'srcdir#nested_dir#^#test.cpp.gcov'
+