Georgii Rymar fff9f049b2 [llvm-readobj][test] - Cleanup and split tests in tools/llvm-readobj folder.
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
2019-12-12 12:21:58 +03:00

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: []