summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-cov
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2019-10-29 15:47:23 -0700
committerVedant Kumar <vsk@apple.com>2019-10-29 18:26:33 -0700
commitbfed824b57d14e2ba98ddbaf1a1410cf04a3e279 (patch)
treeef8dc4694911d21ef423ad7c023fb4997b541be9 /llvm/test/tools/llvm-cov
parent3b982b11f4e7c45c59ff80136efab7c116313e98 (diff)
downloadbcm5719-llvm-bfed824b57d14e2ba98ddbaf1a1410cf04a3e279.tar.gz
bcm5719-llvm-bfed824b57d14e2ba98ddbaf1a1410cf04a3e279.zip
[llvm-cov] Add option to whitelist filenames
Add the `-whitelist-filename-regex` option to restrict coverage reporting to file paths that match a whitelist regex. Patch by Michael Daniels! rdar://56720320
Diffstat (limited to 'llvm/test/tools/llvm-cov')
-rw-r--r--llvm/test/tools/llvm-cov/whitelist-filename-regex.test88
1 files changed, 88 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-cov/whitelist-filename-regex.test b/llvm/test/tools/llvm-cov/whitelist-filename-regex.test
new file mode 100644
index 00000000000..7039fb532f3
--- /dev/null
+++ b/llvm/test/tools/llvm-cov/whitelist-filename-regex.test
@@ -0,0 +1,88 @@
+########################
+# Test "report" command.
+########################
+# Only source files
+RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \
+RUN: -path-equivalence=/tmp,%S/Inputs -whitelist-filename-regex='.*\.cc$' \
+RUN: %S/Inputs/sources_specified/main.covmapping \
+RUN: | FileCheck -check-prefix=REPORT_WHITELIST_SOURCE %s
+
+REPORT_WHITELIST_SOURCE-NOT: {{.*}}dec.h{{.*}}
+REPORT_WHITELIST_SOURCE-NOT: {{.*}}inc.h{{.*}}
+REPORT_WHITELIST_SOURCE-NOT: {{.*}}abs.h{{.*}}
+REPORT_WHITELIST_SOURCE: {{.*}}main.cc{{.*}}
+REPORT_WHITELIST_SOURCE: {{^}}TOTAL 1{{.*}}100.00%{{$}}
+
+# Whitelist all files from "extra" directory.
+RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \
+RUN: -path-equivalence=/tmp,%S/Inputs -whitelist-filename-regex='.*extra[/\\].*' \
+RUN: %S/Inputs/sources_specified/main.covmapping \
+RUN: | FileCheck -check-prefix=REPORT_WHITELIST_DIR %s
+
+REPORT_WHITELIST_DIR: {{.*}}dec.h{{.*}}
+REPORT_WHITELIST_DIR: {{.*}}inc.h{{.*}}
+REPORT_WHITELIST_DIR-NOT: {{.*}}abs.h{{.*}}
+REPORT_WHITELIST_DIR-NOT: {{.*}}main.cc{{.*}}
+REPORT_WHITELIST_DIR: {{^}}TOTAL 2{{.*}}50.00%{{$}}
+
+# Whitelist ignored files
+RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \
+RUN: -path-equivalence=/tmp,%S/Inputs \
+RUN: -ignore-filename-regex='.*' -whitelist-filename-regex='.*' \
+RUN: %S/Inputs/sources_specified/main.covmapping \
+RUN: | FileCheck -check-prefix=REPORT_WHITELIST_IGNORED %s
+
+REPORT_WHITELIST_IGNORED-NOT: {{.*}}dec.h{{.*}}
+REPORT_WHITELIST_IGNORED-NOT: {{.*}}inc.h{{.*}}
+REPORT_WHITELIST_IGNORED-NOT: {{.*}}abs.h{{.*}}
+REPORT_WHITELIST_IGNORED-NOT: {{.*}}main.cc{{.*}}
+REPORT_WHITELIST_IGNORED-NOT: {{^}}TOTAL 0{{.*}}0.00%{{$}}
+
+# Whitelist all files from "extra" directory even when SOURCES specified.
+RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \
+RUN: -path-equivalence=/tmp,%S/Inputs -whitelist-filename-regex='.*extra[/\\].*' \
+RUN: %S/Inputs/sources_specified/main.covmapping \
+RUN: %S/Inputs/sources_specified/extra %S/Inputs/sources_specified/abs.h \
+RUN: | FileCheck -check-prefix=REPORT_WHITELIST_DIR_WITH_SOURCES %s
+
+REPORT_WHITELIST_DIR_WITH_SOURCES: {{.*}}dec.h{{.*}}
+REPORT_WHITELIST_DIR_WITH_SOURCES: {{.*}}inc.h{{.*}}
+REPORT_WHITELIST_DIR_WITH_SOURCES-NOT: {{.*}}abs.h{{.*}}
+REPORT_WHITELIST_DIR_WITH_SOURCES-NOT: {{.*}}main.cc{{.*}}
+REPORT_WHITELIST_DIR_WITH_SOURCES: {{^}}TOTAL 2{{.*}}50.00%{{$}}
+
+########################
+# Test "show" command.
+########################
+# Whitelist a couple files
+RUN: llvm-cov show -instr-profile %S/Inputs/sources_specified/main.profdata \
+RUN: -path-equivalence=/tmp,%S/Inputs \
+RUN: -whitelist-filename-regex='.*\.cc$' -whitelist-filename-regex='.*abs\.h$' \
+RUN: %S/Inputs/sources_specified/main.covmapping \
+RUN: | FileCheck -check-prefix=SHOW_WHITELIST_CC %s
+
+# Order of files may differ, check that there are 3 files and not abs.h.
+SHOW_IGNORE_CC-NOT: {{.*}}main.cc{{.*}}
+
+SHOW_WHITELIST_CC-NOT: {{.*}}dec.h{{.*}}
+SHOW_WHITELIST_CC-NOT: {{.*}}inc.h{{.*}}
+SHOW_WHITELIST_CC: {{.*}}sources_specified{{.*}}
+SHOW_WHITELIST_CC: {{.*}}sources_specified{{.*}}
+
+########################
+# Test "export" command.
+########################
+# Use a temp .json file as output in a single line. Whitelist headers that have
+# an 'a' follow by 2 chars followed by '.h'.
+RUN: llvm-cov export -instr-profile %S/Inputs/sources_specified/main.profdata \
+RUN: -path-equivalence=/tmp,%S/Inputs -whitelist-filename-regex='.*a..\.h$' \
+RUN: %S/Inputs/sources_specified/main.covmapping \
+RUN: > %t.export.json
+
+RUN: FileCheck -check-prefix=NO-EXPORT_WHITELIST_3_SYMBOLS_H %s < %t.export.json
+RUN: FileCheck -check-prefix=EXPORT_WHITELIST_3_SYMBOLS_H %s < %t.export.json
+
+NO-EXPORT_WHITELIST_3_SYMBOLS_H-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)inc.h"}}
+NO-EXPORT_WHITELIST_3_SYMBOLS_H-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)dec.h"}}
+NO-EXPORT_WHITELIST_3_SYMBOLS_H-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)main.cc"}}
+EXPORT_WHITELIST_3_SYMBOLS_H: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)abs.h"}}
OpenPOWER on IntegriCloud