File: sources-specified.test

package info (click to toggle)
llvm-toolchain-16 1%3A16.0.6-15~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,634,792 kB
  • sloc: cpp: 6,179,261; ansic: 1,216,205; asm: 741,319; python: 196,614; objc: 75,325; f90: 49,640; lisp: 32,396; pascal: 12,286; sh: 9,394; perl: 7,442; ml: 5,494; awk: 3,523; makefile: 2,723; javascript: 1,206; xml: 886; fortran: 581; cs: 573
file content (62 lines) | stat: -rw-r--r-- 2,663 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
RUN: llvm-cov report -instr-profile %S/Inputs/sources_specified/main.profdata \
RUN:   -path-equivalence=/tmp,%S/Inputs \
RUN:   %S/Inputs/sources_specified/main.covmapping \
RUN:   %S/Inputs/sources_specified/main.cc %S/Inputs/sources_specified/extra \
RUN:   | FileCheck -check-prefix=REPORT %s

RUN: llvm-cov show -instr-profile %S/Inputs/sources_specified/main.profdata \
RUN:   -path-equivalence=/tmp,%S/Inputs \
RUN:   %S/Inputs/sources_specified/main.covmapping \
RUN:   %S/Inputs/sources_specified/main.cc %S/Inputs/sources_specified/extra \
RUN:   | FileCheck -check-prefix=SHOW %s

# Don't include all source files when provided source files are filtered out.
RUN: llvm-cov show -instr-profile %S/Inputs/sources_specified/main.profdata \
RUN:   -path-equivalence=/tmp,%S/Inputs \
RUN:   %S/Inputs/sources_specified/main.covmapping \
RUN:   --ignore-filename-regex='.*' \
RUN:   %S/Inputs/sources_specified/main.cc %S/Inputs/sources_specified/extra \
RUN:   | FileCheck -allow-empty -check-prefix=IGNORE %s

IGNORE-NOT: {{.*}}main.cc{{.*}}
IGNORE-NOT: {{.*}}inc.h{{.*}}
IGNORE-NOT: {{.*}}dec.h{{.*}}

# Order of files may differ, check the total values calculated.
REPORT-NOT: {{.*}}abs.h{{.*}}
REPORT: {{^}}TOTAL 3{{.*}}72.73%

# Order of files may differ, check that there are 3 files and not abs.h.
SHOW-NOT: {{.*}}abs.h{{.*}}
SHOW: {{.*}}sources_specified{{.*}}
SHOW: {{.*}}sources_specified{{.*}}
SHOW: {{.*}}sources_specified{{.*}}


# Test "export" command. Use a temp .json file as output is a single line.
RUN: llvm-cov export -instr-profile %S/Inputs/sources_specified/main.profdata \
RUN:   -path-equivalence=/tmp,%S/Inputs \
RUN:   %S/Inputs/sources_specified/main.covmapping \
RUN:   %S/Inputs/sources_specified/main.cc %S/Inputs/sources_specified/extra \
RUN:   > %t.export.json

RUN: FileCheck -check-prefix=NO-EXPORT %s < %t.export.json
RUN: FileCheck -check-prefix=EXPORT %s < %t.export.json

NO-EXPORT-NOT: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)abs.h"}}
EXPORT-DAG: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)main.cc"}}
EXPORT-DAG: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)extra(/|\\\\)dec.h"}}
EXPORT-DAG: {{"filename":"(/|\\\\)tmp(/|\\\\)sources_specified(/|\\\\)extra(/|\\\\)inc.h"}}

Instructions for regenerating the test:

# cd %S/Inputs/sources_specified
cp -r . /tmp/sources_specified

clang -mllvm -enable-name-compression=false -fprofile-instr-generate \
    -fcoverage-mapping /tmp/sources_specified/main.cc -o main

LLVM_PROFILE_FILE="main.raw" ./main
llvm-profdata merge main.raw -o main.profdata
llvm-cov convert-for-testing ./main -o ./main.covmapping
rm main main.raw