xref: /llvm-project/lldb/test/Shell/ObjectFile/PECOFF/settings-abi.yaml (revision 3c867898c7be7ed2b5d119a2478a836a0c85f19b)
1# RUN: yaml2obj %s -o %t
2# RUN: yaml2obj %s -o %t.debug
3# RUN: mkdir -p %t.dir
4# RUN: yaml2obj %s -o %t.dir/UPPER_CASE
5# RUN: yaml2obj %s -o %t.dir/UPPER_CASE.debug
6
7## Default ABI is msvc:
8# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
9# RUN:   -f %t -o "image list --triple --basename" -o exit | \
10# RUN:   FileCheck -DABI=msvc -DFILENAME=%basename_t.tmp %s
11
12## Default ABI is gnu:
13# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi gnu" \
14# RUN:   -f %t -o "image list --triple --basename" -o exit | \
15# RUN:   FileCheck -DABI=gnu -DFILENAME=%basename_t.tmp %s
16
17## Default ABI is msvc, module override is gnu:
18# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
19# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi %basename_t.tmp=gnu" \
20# RUN:   -f %t -o "image list --triple --basename" -o exit | \
21# RUN:   FileCheck -DABI=gnu -DFILENAME=%basename_t.tmp %s
22
23## Default ABI is gnu, module override is msvc:
24# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi gnu" \
25# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi %basename_t.tmp=msvc" \
26# RUN:   -f %t -o "image list --triple --basename" -o exit | \
27# RUN:   FileCheck -DABI=msvc -DFILENAME=%basename_t.tmp %s
28
29## Default ABI is msvc, module override is gnu (with .debug suffix):
30# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
31# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi %basename_t.tmp=gnu" \
32# RUN:   -f %t.debug -o "image list --triple --basename" -o exit | \
33# RUN:   FileCheck -DABI=gnu -DFILENAME=%basename_t.tmp.debug %s
34
35## Default ABI is gnu, module override is msvc (with .debug suffix):
36# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi gnu" \
37# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi %basename_t.tmp=msvc" \
38# RUN:   -f %t.debug -o "image list --triple --basename" -o exit | \
39# RUN:   FileCheck -DABI=msvc -DFILENAME=%basename_t.tmp.debug %s
40
41## Check that case-sensitive match is chosen before lower-case:
42# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
43# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi upper_case=msvc" \
44# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi UPPER_CASE=gnu" \
45# RUN:   -f %t.dir/UPPER_CASE -o "image list --triple --basename" -o exit | \
46# RUN:   FileCheck -DABI=gnu -DFILENAME=UPPER_CASE %s
47
48## Check that lower-case match with .debug suffix is chosen before case-sensitive match without .debug suffix:
49# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
50# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi UPPER_CASE=msvc" \
51# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi upper_case.debug=gnu" \
52# RUN:   -f %t.dir/UPPER_CASE.debug -o "image list --triple --basename" -o exit | \
53# RUN:   FileCheck -DABI=gnu -DFILENAME=UPPER_CASE.debug %s
54
55## Check that case-sensitive match without .debug suffix is chosen before lower-case match without .debug suffix:
56# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
57# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi upper_case.debug=msvc" \
58# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi UPPER_CASE.debug=gnu" \
59# RUN:   -f %t.dir/UPPER_CASE.debug -o "image list --triple --basename" -o exit | \
60# RUN:   FileCheck -DABI=gnu -DFILENAME=UPPER_CASE.debug %s
61
62## Check that lower-case match without .debug suffix works:
63# RUN: %lldb -O "settings set plugin.object-file.pe-coff.abi msvc" \
64# RUN:   -O "settings append plugin.object-file.pe-coff.module-abi upper_case.debug=gnu" \
65# RUN:   -f %t.dir/UPPER_CASE.debug -o "image list --triple --basename" -o exit | \
66# RUN:   FileCheck -DABI=gnu -DFILENAME=UPPER_CASE.debug %s
67
68# CHECK-LABEL: image list --triple --basename
69# CHECK-NEXT: x86_64-pc-windows-[[ABI]] [[FILENAME]]
70
71--- !COFF
72OptionalHeader:
73  AddressOfEntryPoint: 5152
74  ImageBase:       5368709120
75  SectionAlignment: 4096
76  FileAlignment:   512
77  MajorOperatingSystemVersion: 6
78  MinorOperatingSystemVersion: 0
79  MajorImageVersion: 0
80  MinorImageVersion: 0
81  MajorSubsystemVersion: 6
82  MinorSubsystemVersion: 0
83  Subsystem:       IMAGE_SUBSYSTEM_WINDOWS_CUI
84  DLLCharacteristics: [ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLL_CHARACTERISTICS_NX_COMPAT, IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE ]
85  SizeOfStackReserve: 1048576
86  SizeOfStackCommit: 4096
87  SizeOfHeapReserve: 1048576
88  SizeOfHeapCommit: 4096
89header:
90  Machine:         IMAGE_FILE_MACHINE_AMD64
91  Characteristics: [ IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LARGE_ADDRESS_AWARE ]
92sections:
93  - Name:            .text
94    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ]
95    VirtualAddress:  4096
96    VirtualSize:     64
97    SectionData:     DEADBEEFBAADF00D
98  - Name:            .data
99    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ ]
100    VirtualAddress:  8192
101    VirtualSize:     64
102    SectionData:     DEADBEEFBAADF00D
103symbols:         []
104...
105