diff options
author | Stephen Hines <srhines@google.com> | 2014-05-29 02:49:00 -0700 |
---|---|---|
committer | Stephen Hines <srhines@google.com> | 2014-05-29 02:49:00 -0700 |
commit | dce4a407a24b04eebc6a376f8e62b41aaa7b071f (patch) | |
tree | dcebc53f2b182f145a2e659393bf9a0472cedf23 /test/tools/llvm-cov | |
parent | 220b921aed042f9e520c26cffd8282a94c66c3d5 (diff) | |
download | external_llvm-dce4a407a24b04eebc6a376f8e62b41aaa7b071f.zip external_llvm-dce4a407a24b04eebc6a376f8e62b41aaa7b071f.tar.gz external_llvm-dce4a407a24b04eebc6a376f8e62b41aaa7b071f.tar.bz2 |
Update LLVM for 3.5 rebase (r209712).
Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
Diffstat (limited to 'test/tools/llvm-cov')
-rw-r--r-- | test/tools/llvm-cov/Inputs/range_based_for.gcda | bin | 0 -> 164 bytes | |||
-rw-r--r-- | test/tools/llvm-cov/Inputs/range_based_for.gcno | bin | 0 -> 552 bytes | |||
-rw-r--r-- | test/tools/llvm-cov/Inputs/test_long_file_names.output | 8 | ||||
-rw-r--r-- | test/tools/llvm-cov/Inputs/test_long_paths.output | 8 | ||||
-rw-r--r-- | test/tools/llvm-cov/Inputs/test_missing.cpp.gcov | 77 | ||||
-rw-r--r-- | test/tools/llvm-cov/Inputs/test_missing.h.gcov | 6 | ||||
-rw-r--r-- | test/tools/llvm-cov/Inputs/test_missing.output | 8 | ||||
-rw-r--r-- | test/tools/llvm-cov/Inputs/test_no_output.output | 6 | ||||
-rw-r--r-- | test/tools/llvm-cov/lit.local.cfg | 2 | ||||
-rw-r--r-- | test/tools/llvm-cov/llvm-cov.test | 19 | ||||
-rw-r--r-- | test/tools/llvm-cov/range_based_for.cpp | 29 |
11 files changed, 162 insertions, 1 deletions
diff --git a/test/tools/llvm-cov/Inputs/range_based_for.gcda b/test/tools/llvm-cov/Inputs/range_based_for.gcda Binary files differnew file mode 100644 index 0000000..df51888 --- /dev/null +++ b/test/tools/llvm-cov/Inputs/range_based_for.gcda diff --git a/test/tools/llvm-cov/Inputs/range_based_for.gcno b/test/tools/llvm-cov/Inputs/range_based_for.gcno Binary files differnew file mode 100644 index 0000000..5f30acf --- /dev/null +++ b/test/tools/llvm-cov/Inputs/range_based_for.gcno diff --git a/test/tools/llvm-cov/Inputs/test_long_file_names.output b/test/tools/llvm-cov/Inputs/test_long_file_names.output new file mode 100644 index 0000000..e09f4cb --- /dev/null +++ b/test/tools/llvm-cov/Inputs/test_long_file_names.output @@ -0,0 +1,8 @@ +File 'srcdir/./nested_dir/../test.h' +Lines executed:100.00% of 1 +srcdir/./nested_dir/../test.h:creating 'test_paths.cpp##test.h.gcov' + +File 'srcdir/./nested_dir/../test.cpp' +Lines executed:84.21% of 38 +srcdir/./nested_dir/../test.cpp:creating 'test_paths.cpp##test.cpp.gcov' + diff --git a/test/tools/llvm-cov/Inputs/test_long_paths.output b/test/tools/llvm-cov/Inputs/test_long_paths.output new file mode 100644 index 0000000..376ee5b --- /dev/null +++ b/test/tools/llvm-cov/Inputs/test_long_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#^#test_paths.cpp##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#^#test_paths.cpp##srcdir#nested_dir#^#test.cpp.gcov' + diff --git a/test/tools/llvm-cov/Inputs/test_missing.cpp.gcov b/test/tools/llvm-cov/Inputs/test_missing.cpp.gcov new file mode 100644 index 0000000..1c138e4 --- /dev/null +++ b/test/tools/llvm-cov/Inputs/test_missing.cpp.gcov @@ -0,0 +1,77 @@ + -: 0:Source:srcdir/./nested_dir/../test.cpp + -: 0:Graph:test_paths.gcno + -: 0:Data:test_paths.gcda + -: 0:Runs:3 + -: 0:Programs:1 + -: 1:/*EOF*/ + -: 2:/*EOF*/ + -: 3:/*EOF*/ + -: 4:/*EOF*/ + -: 5:/*EOF*/ + -: 6:/*EOF*/ + -: 7:/*EOF*/ + -: 8:/*EOF*/ + -: 9:/*EOF*/ +12884901888: 10:/*EOF*/ + -: 11:/*EOF*/ + #####: 12:/*EOF*/ + -: 13:/*EOF*/ + -: 14:/*EOF*/ + #####: 15:/*EOF*/ + -: 16:/*EOF*/ + -: 17:/*EOF*/ + -: 18:/*EOF*/ + 3: 19:/*EOF*/ + 3: 20:/*EOF*/ + -: 21:/*EOF*/ + -: 22:/*EOF*/ + -: 23:/*EOF*/ + #####: 24:/*EOF*/ + #####: 25:/*EOF*/ + -: 26:/*EOF*/ + -: 27:/*EOF*/ + 12: 28:/*EOF*/ + 12: 29:/*EOF*/ + 12: 30:/*EOF*/ + -: 31:/*EOF*/ + -: 32:/*EOF*/ + 21: 33:/*EOF*/ + 36: 34:/*EOF*/ + 18: 35:/*EOF*/ + 3: 36:/*EOF*/ + -: 37:/*EOF*/ + -: 38:/*EOF*/ + 3: 39:/*EOF*/ + -: 40:/*EOF*/ + 3: 41:/*EOF*/ + 3: 42:/*EOF*/ + 3: 43:/*EOF*/ + 3: 44:/*EOF*/ + 3: 45:/*EOF*/ + 3: 46:/*EOF*/ + #####: 47:/*EOF*/ + #####: 48:/*EOF*/ + -: 49:/*EOF*/ + -: 50:/*EOF*/ + 66: 51:/*EOF*/ + 30: 52:/*EOF*/ + -: 53:/*EOF*/ + 6: 54:/*EOF*/ + 6: 55:/*EOF*/ + -: 56:/*EOF*/ + -: 57:/*EOF*/ + 3: 58:/*EOF*/ + 3: 59:/*EOF*/ + -: 60:/*EOF*/ + 9: 61:/*EOF*/ + 9: 62:/*EOF*/ + -: 63:/*EOF*/ + 12: 64:/*EOF*/ + 12: 65:/*EOF*/ + 30: 66:/*EOF*/ + -: 67:/*EOF*/ + 3: 68:/*EOF*/ +25769803782: 69:/*EOF*/ +12884901888: 70:/*EOF*/ + -: 71:/*EOF*/ + 3: 72:/*EOF*/ diff --git a/test/tools/llvm-cov/Inputs/test_missing.h.gcov b/test/tools/llvm-cov/Inputs/test_missing.h.gcov new file mode 100644 index 0000000..d500e86 --- /dev/null +++ b/test/tools/llvm-cov/Inputs/test_missing.h.gcov @@ -0,0 +1,6 @@ + -: 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:/*EOF*/ diff --git a/test/tools/llvm-cov/Inputs/test_missing.output b/test/tools/llvm-cov/Inputs/test_missing.output new file mode 100644 index 0000000..ada0c36 --- /dev/null +++ b/test/tools/llvm-cov/Inputs/test_missing.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_no_output.output b/test/tools/llvm-cov/Inputs/test_no_output.output new file mode 100644 index 0000000..74286b9 --- /dev/null +++ b/test/tools/llvm-cov/Inputs/test_no_output.output @@ -0,0 +1,6 @@ +File 'test.cpp' +Lines executed:84.21% of 38 + +File './test.h' +Lines executed:100.00% of 1 + diff --git a/test/tools/llvm-cov/lit.local.cfg b/test/tools/llvm-cov/lit.local.cfg index f738810..56c6f1f 100644 --- a/test/tools/llvm-cov/lit.local.cfg +++ b/test/tools/llvm-cov/lit.local.cfg @@ -1 +1 @@ -config.suffixes = ['.test', '.m'] +config.suffixes = ['.test', '.m', '.cpp'] diff --git a/test/tools/llvm-cov/llvm-cov.test b/test/tools/llvm-cov/llvm-cov.test index 19d3e5d..2345f8d 100644 --- a/test/tools/llvm-cov/llvm-cov.test +++ b/test/tools/llvm-cov/llvm-cov.test @@ -31,6 +31,15 @@ RUN: llvm-cov -o objdir/test test.c | diff -u test_no_options.output - RUN: diff -aub test_objdir.cpp.gcov test.cpp.gcov RUN: diff -aub test_objdir.h.gcov test.h.gcov +# With gcov output disabled +RUN: llvm-cov -n test.c | diff -u test_no_output.output - + +# Missing source files. This test is fragile, as it depends on being +# run before we copy some sources into place in the next test. +RUN: llvm-cov test_paths.cpp 2>/dev/null | diff -u test_missing.output - +RUN: diff -aub test_missing.cpp.gcov test.cpp.gcov +RUN: diff -aub test_missing.h.gcov test.h.gcov + # Preserve paths. This mangles the output filenames. RUN: mkdir -p %t/srcdir/nested_dir RUN: cp test.cpp test.h %t/srcdir @@ -43,6 +52,16 @@ RUN: llvm-cov test_paths.cpp | diff -u test_no_preserve_paths.output - RUN: diff -aub test_paths.cpp.gcov test.cpp.gcov RUN: diff -aub test_paths.h.gcov test.h.gcov +# Long file names. +RUN: llvm-cov -l test_paths.cpp | diff -u test_long_file_names.output - +RUN: diff -aub test_paths.cpp.gcov test_paths.cpp##test.cpp.gcov +RUN: diff -aub test_paths.h.gcov test_paths.cpp##test.h.gcov + +# Long file names and preserve paths. +RUN: llvm-cov -lp -gcno test_paths.gcno -gcda test_paths.gcda srcdir/../test_paths.cpp | diff -u test_long_paths.output - +RUN: diff -aub test_paths.cpp.gcov srcdir#^#test_paths.cpp##srcdir#nested_dir#^#test.cpp.gcov +RUN: diff -aub test_paths.h.gcov srcdir#^#test_paths.cpp##srcdir#nested_dir#^#test.h.gcov + # Function summaries. This changes stdout, but not the gcov files. RUN: llvm-cov test.c -f | diff -u test_-f.output - RUN: diff -aub test_no_options.cpp.gcov test.cpp.gcov diff --git a/test/tools/llvm-cov/range_based_for.cpp b/test/tools/llvm-cov/range_based_for.cpp new file mode 100644 index 0000000..61f60f6 --- /dev/null +++ b/test/tools/llvm-cov/range_based_for.cpp @@ -0,0 +1,29 @@ +// Make sure that compiler-added local variables (whose line number is zero) +// don't crash llvm-cov. + +// We need shell for cd +// REQUIRES: shell + +// RUN: rm -rf %t +// RUN: mkdir %t +// RUN: cd %t +// RUN: cp %s %p/Inputs/range_based_for.gc* . + +// RUN: llvm-cov range_based_for.cpp | FileCheck %s --check-prefix=STDOUT +// STDOUT: File 'range_based_for.cpp' +// STDOUT: Lines executed:100.00% of 5 +// STDOUT: range_based_for.cpp:creating 'range_based_for.cpp.gcov' + +// RUN: FileCheck %s --check-prefix=GCOV < %t/range_based_for.cpp.gcov +// GCOV: -: 0:Runs:1 +// GCOV: -: 0:Programs:1 + +int main(int argc, const char *argv[]) { // GCOV: 1: [[@LINE]]:int main( + int V[] = {1, 2}; // GCOV: 1: [[@LINE]]: int V[] + for (int &I : V) { // GCOV: 10: [[@LINE]]: for ( + } // GCOV: 2: [[@LINE]]: } + return 0; // GCOV: 1: [[@LINE]]: return +} // GCOV: -: [[@LINE]]:} + +// llvm-cov doesn't work on big endian yet +// XFAIL: powerpc64, s390x, mips-, mips64-, sparc |