1 ######################## 2 # Test "report" command. 3 ######################## 4 # Ignore all header files. 5 RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \ 6 RUN: -path-equivalence=/tmp,%S/Inputs -ignore-filename-regex='.*\.h$' \ 7 RUN: %S/Inputs/sources_specified/main.covmapping \ 8 RUN: | FileCheck -check-prefix=REPORT_IGNORE_HEADERS %s 9 10 REPORT_IGNORE_HEADERS-NOT: {{.*}}dec.h{{.*}} 11 REPORT_IGNORE_HEADERS-NOT: {{.*}}inc.h{{.*}} 12 REPORT_IGNORE_HEADERS-NOT: {{.*}}abs.h{{.*}} 13 REPORT_IGNORE_HEADERS: {{^}}TOTAL 1{{.*}}100.00%{{$}} 14 15 # Ignore all files from "extra" directory. 16 RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \ 17 RUN: -path-equivalence=/tmp,%S/Inputs -ignore-filename-regex='.*extra[/\\].*' \ 18 RUN: %S/Inputs/sources_specified/main.covmapping \ 19 RUN: | FileCheck -check-prefix=REPORT_IGNORE_DIR %s 20 21 REPORT_IGNORE_DIR-NOT: {{.*}}extra{{[/\\]}}dec.h{{.*}} 22 REPORT_IGNORE_DIR-NOT: {{.*}}extra{{[/\\]}}inc.h{{.*}} 23 REPORT_IGNORE_DIR: {{.*}}abs.h{{.*}} 24 REPORT_IGNORE_DIR: {{.*}}main.cc{{.*}} 25 REPORT_IGNORE_DIR: {{^}}TOTAL 5{{.*}}100.00%{{$}} 26 27 # Ignore all files from "extra" directory even when SOURCES specified. 28 RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \ 29 RUN: -path-equivalence=/tmp,%S/Inputs -ignore-filename-regex='.*extra[/\\].*' \ 30 RUN: %S/Inputs/sources_specified/main.covmapping \ 31 RUN: %S/Inputs/sources_specified/extra %S/Inputs/sources_specified/abs.h \ 32 RUN: | FileCheck -check-prefix=REPORT_IGNORE_DIR_WITH_SOURCES %s 33 34 REPORT_IGNORE_DIR_WITH_SOURCES-NOT: {{.*}}extra{{[/\\]}}dec.h{{.*}} 35 REPORT_IGNORE_DIR_WITH_SOURCES-NOT: {{.*}}extra{{[/\\]}}inc.h{{.*}} 36 REPORT_IGNORE_DIR_WITH_SOURCES-NOT: {{.*}}main.cc{{.*}} 37 REPORT_IGNORE_DIR_WITH_SOURCES: {{.*}}abs.h{{.*}} 38 REPORT_IGNORE_DIR_WITH_SOURCES: {{^}}TOTAL 4{{.*}}100.00%{{$}} 39 40 ######################## 41 # Test "show" command. 42 ######################## 43 # Ignore all ".cc" files. 44 RUN: llvm-cov show -instr-profile %S/Inputs/sources_specified/main.profdata \ 45 RUN: -path-equivalence=/tmp,%S/Inputs -ignore-filename-regex='.*\.cc$' \ 46 RUN: %S/Inputs/sources_specified/main.covmapping \ 47 RUN: | FileCheck -check-prefix=SHOW_IGNORE_CC %s 48 49 # Order of files may differ, check that there are 3 files and not abs.h. 50 SHOW_IGNORE_CC-NOT: {{.*}}main.cc{{.*}} 51 SHOW_IGNORE_CC: {{.*}}sources_specified{{.*}} 52 SHOW_IGNORE_CC: {{.*}}sources_specified{{.*}} 53 SHOW_IGNORE_CC: {{.*}}sources_specified{{.*}} 54 55 ######################## 56 # Test "export" command. 57 ######################## 58 # Use a temp .json file as output in a single line. Ignore headers that have 59 # name in a format of 3 symbols followed by ".h". 60 RUN: llvm-cov export -instr-profile %S/Inputs/sources_specified/main.profdata \ 61 RUN: -path-equivalence=/tmp,%S/Inputs -ignore-filename-regex='.*...\.h$' \ 62 RUN: %S/Inputs/sources_specified/main.covmapping \ 63 RUN: > %t.export.json 64 65 RUN: FileCheck -check-prefix=NO-EXPORT_IGNORE_3_SYMBOLS_H %s < %t.export.json 66 RUN: FileCheck -check-prefix=EXPORT_IGNORE_3_SYMBOLS_H %s < %t.export.json 67 68 NO-EXPORT_IGNORE_3_SYMBOLS_H-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)abs.h"}} 69 NO-EXPORT_IGNORE_3_SYMBOLS_H-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)inc.h"}} 70 NO-EXPORT_IGNORE_3_SYMBOLS_H-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)dec.h"}} 71 EXPORT_IGNORE_3_SYMBOLS_H: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)main.cc"}} 72