201 lines
3.1 KiB
Text
201 lines
3.1 KiB
Text
# Test MC/DC bitmap reading and merging.
|
|
|
|
# Merge as profdata.
|
|
RUN: split-file %s %t
|
|
RUN: llvm-profdata merge %t/mcdc-1.proftext %t/mcdc-2.proftext -o %t.profdata
|
|
RUN: llvm-profdata show %t.profdata --text -all-functions | FileCheck %s --check-prefix=MCDC
|
|
# Merge as proftext.
|
|
RUN: llvm-profdata merge %t/mcdc-1.proftext %t/mcdc-2.proftext -o %t.proftext
|
|
RUN: llvm-profdata show %t.proftext --text -all-functions | FileCheck %s --check-prefix=MCDC
|
|
|
|
MCDC: # Num Bitmap Bytes:
|
|
MCDC-NEXT: $1
|
|
MCDC-NEXT: # Bitmap Byte Values:
|
|
MCDC-NEXT: a
|
|
MCDC: # Num Bitmap Bytes:
|
|
MCDC-NEXT: $2
|
|
MCDC-NEXT: # Bitmap Byte Values:
|
|
MCDC-NEXT: 0x29
|
|
MCDC-NEXT: 0x0
|
|
|
|
# Merge as profdata.
|
|
RUN: llvm-profdata merge %t/mcdc-3.proftext %t/mcdc-4.proftext -o %t.profdata
|
|
RUN: llvm-profdata show %t.profdata --text -all-functions | FileCheck %s --check-prefix=MCDC2
|
|
# Merge as proftext.
|
|
RUN: llvm-profdata merge %t/mcdc-3.proftext %t/mcdc-4.proftext -o %t.proftext
|
|
RUN: llvm-profdata show %t.proftext --text -all-functions | FileCheck %s --check-prefix=MCDC2
|
|
|
|
MCDC2: # Num Bitmap Bytes:
|
|
MCDC2-NEXT: $8
|
|
MCDC2-NEXT: # Bitmap Byte Values:
|
|
MCDC2-NEXT: 0x1
|
|
MCDC2-NEXT: 0x2
|
|
MCDC2-NEXT: 0x3
|
|
MCDC2-NEXT: 0xf
|
|
MCDC2-NEXT: 0xf
|
|
MCDC2-NEXT: 0xe
|
|
MCDC2-NEXT: 0xf
|
|
MCDC2-NEXT: 0xa
|
|
|
|
# Incompatible size mismatch.
|
|
RUN: llvm-profdata merge %t/mcdc-2.proftext %t/mcdc-4.proftext -o %t.profdata 2>&1 | FileCheck %s --check-prefix=MCDC3
|
|
# Merge as proftext
|
|
RUN: llvm-profdata merge %t/mcdc-2.proftext %t/mcdc-4.proftext -o %t.proftext 2>&1 | FileCheck %s --check-prefix=MCDC3
|
|
|
|
MCDC3: function bitmap size change detected (bitmap size mismatch)
|
|
|
|
# Invalid number of bitmap bytes.
|
|
RUN: not llvm-profdata merge %t/mcdc-3.proftext %t/mcdc-err0.proftext -o %t.proftext 2>&1 | FileCheck %s --check-prefix=MCDC4
|
|
|
|
MCDC4: malformed instrumentation profile data: number of bitmap bytes is not a valid integer
|
|
|
|
# Invalid bitmap byte.
|
|
RUN: not llvm-profdata merge %t/mcdc-3.proftext %t/mcdc-err1.proftext -o %t.proftext 2>&1 | FileCheck %s --check-prefix=MCDC5
|
|
|
|
MCDC5: malformed instrumentation profile data: bitmap byte is not a valid integer
|
|
|
|
;--- mcdc-1.proftext
|
|
main
|
|
# Func Hash:
|
|
702755447896
|
|
# Num Counters:
|
|
4
|
|
# Counter Values:
|
|
1
|
|
0
|
|
1
|
|
0
|
|
# Num Bitmask Bytes:
|
|
$1
|
|
# Bitmask Byte Values:
|
|
2
|
|
;--- mcdc-2.proftext
|
|
main
|
|
# Func Hash:
|
|
702755447896
|
|
# Num Counters:
|
|
4
|
|
# Counter Values:
|
|
1
|
|
1
|
|
1
|
|
1
|
|
# Num Bitmask Bytes:
|
|
$1
|
|
# Bitmask Byte Values:
|
|
8
|
|
|
|
|
|
test3
|
|
# Func Hash:
|
|
15288018065
|
|
# Num Counters:
|
|
6
|
|
# Counter Values:
|
|
4
|
|
2
|
|
1
|
|
0
|
|
0
|
|
2
|
|
# Num Bitmask Bytes:
|
|
$0x2
|
|
# Bitmask Byte Values:
|
|
0x29
|
|
0x0
|
|
;--- mcdc-3.proftext
|
|
test3
|
|
# Func Hash:
|
|
15288018065
|
|
# Num Counters:
|
|
6
|
|
# Counter Values:
|
|
4
|
|
2
|
|
1
|
|
0
|
|
0
|
|
2
|
|
# Num Bitmask Bytes:
|
|
$8
|
|
# Bitmask Byte Values:
|
|
0x0
|
|
0x2
|
|
0x3
|
|
0xf
|
|
0xf
|
|
0xa
|
|
0xc
|
|
0x2
|
|
;--- mcdc-4.proftext
|
|
test3
|
|
# Func Hash:
|
|
15288018065
|
|
# Num Counters:
|
|
6
|
|
# Counter Values:
|
|
4
|
|
2
|
|
1
|
|
0
|
|
0
|
|
2
|
|
# Num Bitmask Bytes:
|
|
$ 8
|
|
# Bitmask Byte Values:
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
;--- mcdc-err0.proftext
|
|
test3
|
|
# Func Hash:
|
|
15288018065
|
|
# Num Counters:
|
|
6
|
|
# Counter Values:
|
|
4
|
|
2
|
|
1
|
|
0
|
|
0
|
|
2
|
|
# Num Bitmask Bytes:
|
|
$8.9
|
|
# Bitmask Byte Values:
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
;--- mcdc-err1.proftext
|
|
test3
|
|
# Func Hash:
|
|
15288018065
|
|
# Num Counters:
|
|
6
|
|
# Counter Values:
|
|
4
|
|
2
|
|
1
|
|
0
|
|
0
|
|
2
|
|
# Num Bitmask Bytes:
|
|
$8
|
|
# Bitmask Byte Values:
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5.4
|
|
6
|
|
7
|
|
8
|