xref: /llvm-project/bolt/test/X86/yaml-unknown-keys.test (revision 15fa3ba547bc3ee04af5c32b8f723a97e3feefd8)
1*15fa3ba5SAmir Ayupov## Test that BOLT gracefully handles a YAML profile with unknown keys.
2*15fa3ba5SAmir Ayupov
3*15fa3ba5SAmir Ayupov# REQUIRES: system-linux
4*15fa3ba5SAmir Ayupov# RUN: split-file %s %t
5*15fa3ba5SAmir Ayupov# RUN: llvm-mc -filetype=obj -triple x86_64-unknown-unknown %t/main.s -o %t.o
6*15fa3ba5SAmir Ayupov# RUN: %clang %cflags %t.o -o %t.exe -Wl,-q -nostdlib
7*15fa3ba5SAmir Ayupov# RUN: llvm-bolt %t.exe -o %t.null --data %t/profile.yaml \
8*15fa3ba5SAmir Ayupov# RUN:   --profile-ignore-hash -v=1 2>&1 | FileCheck %s
9*15fa3ba5SAmir Ayupov# CHECK: warning: unknown key 'unknown-header-key'
10*15fa3ba5SAmir Ayupov# CHECK: warning: unknown key 'unknown_succ_key'
11*15fa3ba5SAmir Ayupov# CHECK: warning: unknown key 'unknown_block_key'
12*15fa3ba5SAmir Ayupov# CHECK: warning: unknown key 'unknown_function_key'
13*15fa3ba5SAmir Ayupov# CHECK: warning: unknown key 'unknown_toplev_key'
14*15fa3ba5SAmir Ayupov#--- main.s
15*15fa3ba5SAmir Ayupov  .globl main
16*15fa3ba5SAmir Ayupov  .type main, %function
17*15fa3ba5SAmir Ayupovmain:
18*15fa3ba5SAmir Ayupov  .cfi_startproc
19*15fa3ba5SAmir Ayupov  cmpl	$0x0, %eax
20*15fa3ba5SAmir Ayupov  jne .LBB0
21*15fa3ba5SAmir Ayupov.LBB0:
22*15fa3ba5SAmir Ayupov  retq
23*15fa3ba5SAmir Ayupov  .cfi_endproc
24*15fa3ba5SAmir Ayupov.size main, .-main
25*15fa3ba5SAmir Ayupov#--- profile.yaml
26*15fa3ba5SAmir Ayupov---
27*15fa3ba5SAmir Ayupovheader:
28*15fa3ba5SAmir Ayupov  profile-version: 1
29*15fa3ba5SAmir Ayupov  binary-name:     'yaml-multiple-profiles.test.tmp.exe'
30*15fa3ba5SAmir Ayupov  binary-build-id: '<unknown>'
31*15fa3ba5SAmir Ayupov  profile-flags:   [ lbr ]
32*15fa3ba5SAmir Ayupov  profile-origin:  branch profile reader
33*15fa3ba5SAmir Ayupov  profile-events:  ''
34*15fa3ba5SAmir Ayupov  dfs-order:       false
35*15fa3ba5SAmir Ayupov  unknown-header-key: true
36*15fa3ba5SAmir Ayupovfunctions:
37*15fa3ba5SAmir Ayupov  - name:            'main'
38*15fa3ba5SAmir Ayupov    fid:             1
39*15fa3ba5SAmir Ayupov    hash:            0x50BBA3441D436491
40*15fa3ba5SAmir Ayupov    exec:            1
41*15fa3ba5SAmir Ayupov    nblocks:         1
42*15fa3ba5SAmir Ayupov    blocks:
43*15fa3ba5SAmir Ayupov      - bid:             0
44*15fa3ba5SAmir Ayupov        insns:           2
45*15fa3ba5SAmir Ayupov        hash:            0x4D4D8FAF7D4C0000
46*15fa3ba5SAmir Ayupov        succ:            [ { bid: 1, cnt: 0, unknown_succ_key: 0x10 } ]
47*15fa3ba5SAmir Ayupov        unknown_block_key: [ ]
48*15fa3ba5SAmir Ayupov    unknown_function_key: 1
49*15fa3ba5SAmir Ayupovunknown_toplev_key: ''
50*15fa3ba5SAmir Ayupov...
51