tools/llvm-readobj currently contains tests that are either general for all file types or that mix file types inside. This patch refactors these test and leaves only general tests in that folder. All other tests were moved to ELF/COFF/MachO and wasm accordingly. I tried to minimize amount of changes, so most of the test parts remained unchanged. Any further refactorings and improvements for particular tests should be done independently from this patch. Differential revision: https://reviews.llvm.org/D71269
88 lines
2.2 KiB
Plaintext
88 lines
2.2 KiB
Plaintext
# RUN: rm -f %t.a
|
|
# RUN: rm -rf %t
|
|
# RUN: mkdir -p %t
|
|
# RUN: yaml2obj --docnum=1 %s -o %t/1.o
|
|
# RUN: yaml2obj --docnum=2 %s -o %t/2.o
|
|
# RUN: yaml2obj --docnum=3 %s -o %t/3.o
|
|
# RUN: llvm-ar rcT %t.a %t/1.o %t/2.o %t/3.o
|
|
|
|
# Test that basic dumping works for all members.
|
|
# RUN: llvm-readobj --all %t.a | FileCheck %s --check-prefixes=LLVM,COFF
|
|
# RUN: llvm-readelf --all %t.a | FileCheck %s --check-prefixes=GNU,COFF
|
|
|
|
# LLVM: File: {{.*}}1.o
|
|
# LLVM: Format: ELF64-x86-64
|
|
# LLVM: ElfHeader {
|
|
# LLVM: SectionHeaderCount: 3
|
|
# LLVM: Sections [
|
|
# LLVM: Relocations [
|
|
# LLVM: Symbols [
|
|
|
|
# GNU: ELF Header:
|
|
# GNU: Number of section headers: 3
|
|
# GNU: Section Headers:
|
|
|
|
# LLVM: File: {{.*}}2.o
|
|
# LLVM: Format: ELF32-i386
|
|
# LLVM: ElfHeader {
|
|
# LLVM: SectionHeaderCount: 4
|
|
# LLVM: Sections [
|
|
# LLVM: Relocations [
|
|
# LLVM: Symbols [
|
|
|
|
# GNU: ELF Header:
|
|
# GNU: Number of section headers: 4
|
|
# GNU: Section Headers:
|
|
|
|
# LLVM: File: {{.*}}3.o
|
|
# LLVM: Format: COFF-ARM
|
|
# COFF: ImageFileHeader {
|
|
# COFF: Sections [
|
|
# COFF: Relocations [
|
|
# COFF: Symbols [
|
|
|
|
# Overwrite one of the members with a member of a different size to show that
|
|
# the size field in the member header is not relevant.
|
|
# RUN: rm -f %t/2.o
|
|
# RUN: cp %t/1.o %t/2.o
|
|
# RUN: llvm-readobj --file-headers %t.a | FileCheck %s --check-prefix=RESIZED
|
|
|
|
# RESIZED: File: {{.*}}1.o
|
|
# RESIZED: Format: ELF64-x86-64
|
|
# RESIZED: File: {{.*}}2.o
|
|
# RESIZED: Format: ELF64-x86-64
|
|
|
|
# Remove the second member and show that the first can still be dumped, but that the last isn't.
|
|
# RUN: rm %t/2.o
|
|
# RUN: not llvm-readobj --file-headers %t.a 2> %t.err | FileCheck %s --check-prefix=MISSING
|
|
# RUN: FileCheck %s --check-prefix=ERR --input-file=%t.err
|
|
|
|
# MISSING: File: {{.*}}1.o
|
|
# MISSING: Format: ELF64-x86-64
|
|
# MISSING-NOT: File: {{.*}}3.o
|
|
# ERR: error: '{{.*}}.a': '{{.*}}2.o': {{[Nn]}}o such file or directory
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS64
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_X86_64
|
|
|
|
--- !ELF
|
|
FileHeader:
|
|
Class: ELFCLASS32
|
|
Data: ELFDATA2LSB
|
|
Type: ET_REL
|
|
Machine: EM_386
|
|
Sections:
|
|
- Name: .foo
|
|
Type: SHT_PROGBITS
|
|
|
|
--- !COFF
|
|
header:
|
|
Machine: IMAGE_FILE_MACHINE_ARMNT
|
|
Characteristics: [ ]
|
|
sections: []
|
|
symbols: []
|