Max Moroz | 4220f89 | 2018-04-09 15:20:35 +0000 | [diff] [blame] | 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"}} |