[llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API.
[llvm-complete.git] / test / tools / llvm-readobj / hex-dump.test
blob4088fa56b7f2246ceb6aa38b19804f8b01b14a4c
1 ## Test that the -x alias can be used flexibly. Create a baseline and ensure
2 ## all other combinations are identical.
3 # RUN: llvm-readelf --file-header --hex-dump=.text \
4 # RUN:   %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.out
5 # RUN: llvm-readelf -h --hex-dump .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.1
6 # RUN: llvm-readelf -h -x .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.2
7 # RUN: llvm-readelf -h -x=.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.3
8 # RUN: llvm-readelf -h -x.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.4
9 # RUN: llvm-readelf -hx .text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.5
10 # RUN: llvm-readelf -hx=.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.6
11 # RUN: llvm-readelf -hx.text %p/Inputs/trivial.obj.elf-x86-64 > %t.hexdump.7
13 # RUN: cmp %t.hexdump.out %t.hexdump.1
14 # RUN: cmp %t.hexdump.out %t.hexdump.2
15 # RUN: cmp %t.hexdump.out %t.hexdump.3
16 # RUN: cmp %t.hexdump.out %t.hexdump.4
17 # RUN: cmp %t.hexdump.out %t.hexdump.5
18 # RUN: cmp %t.hexdump.out %t.hexdump.6
19 # RUN: cmp %t.hexdump.out %t.hexdump.7
21 # RUN: llvm-readelf -S %p/Inputs/trivial.obj.elf-x86-64 | FileCheck %s --check-prefix=ELF-SEC
23 ## Both 9 and .strtab refer to .strtab. Test we dump the section only once.
24 # RUN: llvm-readobj -x 9 -x 9 -x .strtab -x .strtab %p/Inputs/trivial.obj.elf-x86-64 2>&1 | \
25 # RUN:   FileCheck %s --check-prefix=ELF
26 # RUN: llvm-readobj -x 9 -x .strtab -x 10 -x not_exist \
27 # RUN:   %p/Inputs/trivial.obj.elf-x86-64 2>&1 | FileCheck %s -DFILE=%p/Inputs/trivial.obj.elf-x86-64 --check-prefixes=ELF-WARN,ELF
29 # ELF-SEC: [ 9] .strtab
31 # ELF-WARN: warning: '[[FILE]]': could not find section 'not_exist'
32 # ELF-WARN: warning: '[[FILE]]': could not find section 10
33 # ELF:      Hex dump of section '.strtab':
34 # ELF-NEXT: 0x00000000 00747269 7669616c 2e6c6c00 6d61696e .trivial.ll.main
35 # ELF-NEXT: 0x00000010 002e4c2e 73747200 70757473 00536f6d ..L.str.puts.Som
36 # ELF-NEXT: 0x00000020 654f7468 65724675 6e637469 6f6e005f eOtherFunction._
37 # ELF-NEXT: 0x00000030 474c4f42 414c5f4f 46465345 545f5441 GLOBAL_OFFSET_TA
38 # ELF-NEXT: 0x00000040 424c455f 00                         BLE_.
39 # ELF-NOT:  {{.}}
41 ## Below we test -x can be used for other binary formats.
43 # RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.coff-x86-64 \
44 # RUN:     | FileCheck %s --check-prefix COFF
46 # COFF: 0x00000000 4883ec28 488d0d00 000000e8 00000000 H..(H...........
47 # COFF: 0x00000010 e8000000 0031c048 83c428c3          .....1.H..(.
49 # RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.macho-x86-64 \
50 # RUN:     | FileCheck %s --check-prefix MACHO
52 # MACHO: 0x00000000 50488d3d 00000000 e8000000 00e80000 PH.=............
53 # MACHO: 0x00000010 000031c0 5ac3                       ..1.Z.
55 # RUN: llvm-readobj -x 1 %p/Inputs/trivial.obj.wasm \
56 # RUN:     | FileCheck %s --check-prefix WASM
58 # WASM: 0x00000000 04600001 7f60017f 017f6000 0060017f .`...`....`..`..
59 # WASM: 0x00000010 00                                  .