diff options
author | Vedant Kumar <vsk@apple.com> | 2019-10-29 15:47:23 -0700 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2019-10-29 18:26:33 -0700 |
commit | bfed824b57d14e2ba98ddbaf1a1410cf04a3e279 (patch) | |
tree | ef8dc4694911d21ef423ad7c023fb4997b541be9 /llvm/test/tools/llvm-cov | |
parent | 3b982b11f4e7c45c59ff80136efab7c116313e98 (diff) | |
download | bcm5719-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.test | 88 |
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"}} |