From 30815c536baacc07e925f0aef23a5395883173dc Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Thu, 20 Oct 2011 21:10:27 +0000 Subject: Vendor import of llvm release_30 branch r142614: http://llvm.org/svn/llvm-project/llvm/branches/release_30@142614 --- test/Object/TestObjectFiles/archive-test.a-bitcode | Bin 0 -> 790 bytes .../TestObjectFiles/archive-test.a-coff-i386 | Bin 0 -> 658 bytes test/Object/nm-archive.test | 17 +++++++ test/Object/nm-trivial-object.test | 19 ++++++++ test/Object/nm-trivial-object.test-broken | 19 -------- .../objdump-disassembly-inline-relocations.test | 32 ++++++++++++ test/Object/objdump-relocations.test | 28 +++++++++++ test/Object/objdump-sectionheaders.test | 16 ++++++ test/Object/objdump-trivial-object.test | 54 +++++++++++++++++++++ test/Object/objdump-trivial-object.test-broken | 54 --------------------- 10 files changed, 166 insertions(+), 73 deletions(-) create mode 100644 test/Object/TestObjectFiles/archive-test.a-bitcode create mode 100644 test/Object/TestObjectFiles/archive-test.a-coff-i386 create mode 100644 test/Object/nm-archive.test create mode 100644 test/Object/nm-trivial-object.test delete mode 100644 test/Object/nm-trivial-object.test-broken create mode 100644 test/Object/objdump-disassembly-inline-relocations.test create mode 100644 test/Object/objdump-relocations.test create mode 100644 test/Object/objdump-sectionheaders.test create mode 100644 test/Object/objdump-trivial-object.test delete mode 100644 test/Object/objdump-trivial-object.test-broken (limited to 'test/Object') diff --git a/test/Object/TestObjectFiles/archive-test.a-bitcode b/test/Object/TestObjectFiles/archive-test.a-bitcode new file mode 100644 index 000000000000..3aeb34fa3342 Binary files /dev/null and b/test/Object/TestObjectFiles/archive-test.a-bitcode differ diff --git a/test/Object/TestObjectFiles/archive-test.a-coff-i386 b/test/Object/TestObjectFiles/archive-test.a-coff-i386 new file mode 100644 index 000000000000..846cd636f1ed Binary files /dev/null and b/test/Object/TestObjectFiles/archive-test.a-coff-i386 differ diff --git a/test/Object/nm-archive.test b/test/Object/nm-archive.test new file mode 100644 index 000000000000..da6144ee712d --- /dev/null +++ b/test/Object/nm-archive.test @@ -0,0 +1,17 @@ +RUN: llvm-nm %p/TestObjectFiles/archive-test.a-coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF +RUN: llvm-nm %p/TestObjectFiles/archive-test.a-bitcode \ +RUN: | FileCheck %s -check-prefix BITCODE + + +COFF: trivial-object-test.coff-i386: +COFF-NEXT: 00000000 d .data +COFF-NEXT: 00000000 t .text +COFF-NEXT: 00000000 d L_.str +COFF-NEXT: U _SomeOtherFunction +COFF-NEXT: 00000000 T _main +COFF-NEXT: U _puts + +BITCODE: U SomeOtherFunction +BITCODE-NEXT: T main +BITCODE-NEXT: U puts diff --git a/test/Object/nm-trivial-object.test b/test/Object/nm-trivial-object.test new file mode 100644 index 000000000000..6de1780a1608 --- /dev/null +++ b/test/Object/nm-trivial-object.test @@ -0,0 +1,19 @@ +RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF +RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: | FileCheck %s -check-prefix COFF +RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF +RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF + +COFF: 00000000 d .data +COFF: 00000000 t .text +COFF: 00000000 d L{{_?}}.str +COFF: U {{_?}}SomeOtherFunction +COFF: 00000000 T {{_?}}main +COFF: U {{_?}}puts + +ELF: U SomeOtherFunction +ELF: 00000000 T main +ELF: U puts diff --git a/test/Object/nm-trivial-object.test-broken b/test/Object/nm-trivial-object.test-broken deleted file mode 100644 index 6de1780a1608..000000000000 --- a/test/Object/nm-trivial-object.test-broken +++ /dev/null @@ -1,19 +0,0 @@ -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.coff-i386 \ -RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ -RUN: | FileCheck %s -check-prefix COFF -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.elf-i386 \ -RUN: | FileCheck %s -check-prefix ELF -RUN: llvm-nm %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ -RUN: | FileCheck %s -check-prefix ELF - -COFF: 00000000 d .data -COFF: 00000000 t .text -COFF: 00000000 d L{{_?}}.str -COFF: U {{_?}}SomeOtherFunction -COFF: 00000000 T {{_?}}main -COFF: U {{_?}}puts - -ELF: U SomeOtherFunction -ELF: 00000000 T main -ELF: U puts diff --git a/test/Object/objdump-disassembly-inline-relocations.test b/test/Object/objdump-disassembly-inline-relocations.test new file mode 100644 index 000000000000..91f2e48f6230 --- /dev/null +++ b/test/Object/objdump-disassembly-inline-relocations.test @@ -0,0 +1,32 @@ +RUN: llvm-objdump -d -r %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-i386 +RUN: llvm-objdump -d -r %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: | FileCheck %s -check-prefix COFF-x86-64 + +COFF-i386: file format COFF-i386 +COFF-i386: Disassembly of section .text: +COFF-i386: 0: 83 ec 0c subl $12, %esp +COFF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) +COFF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp) +COFF-i386: e: IMAGE_REL_I386_DIR32 L_.str +COFF-i386: 12: e8 00 00 00 00 calll 0 +COFF-i386: 13: IMAGE_REL_I386_REL32 _puts +COFF-i386: 17: e8 00 00 00 00 calll 0 +COFF-i386: 18: IMAGE_REL_I386_REL32 _SomeOtherFunction +COFF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax +COFF-i386: 20: 83 c4 0c addl $12, %esp +COFF-i386: 23: c3 ret + +COFF-x86-64: file format COFF-x86-64 +COFF-x86-64: Disassembly of section .text: +COFF-x86-64: 0: 48 83 ec 28 subq $40, %rsp +COFF-x86-64: 4: c7 44 24 24 00 00 00 00 movl $0, 36(%rsp) +COFF-x86-64: c: 48 8d 0d 00 00 00 00 leaq (%rip), %rcx +COFF-x86-64: f: IMAGE_REL_AMD64_REL32 L.str +COFF-x86-64: 13: e8 00 00 00 00 callq 0 +COFF-x86-64: 14: IMAGE_REL_AMD64_REL32 puts +COFF-x86-64: 18: e8 00 00 00 00 callq 0 +COFF-x86-64: 19: IMAGE_REL_AMD64_REL32 SomeOtherFunction +COFF-x86-64: 1d: 8b 44 24 24 movl 36(%rsp), %eax +COFF-x86-64: 21: 48 83 c4 28 addq $40, %rsp +COFF-x86-64: 25: c3 ret diff --git a/test/Object/objdump-relocations.test b/test/Object/objdump-relocations.test new file mode 100644 index 000000000000..2dcdb432ef61 --- /dev/null +++ b/test/Object/objdump-relocations.test @@ -0,0 +1,28 @@ +RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-i386 +RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: | FileCheck %s -check-prefix COFF-x86-64 +RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF-i386 +RUN: llvm-objdump -r %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-x86-64 + +COFF-i386: .text +COFF-i386: IMAGE_REL_I386_DIR32 L_.str +COFF-i386: IMAGE_REL_I386_REL32 _puts +COFF-i386: IMAGE_REL_I386_REL32 _SomeOtherFunction + +COFF-x86-64: .text +COFF-x86-64: IMAGE_REL_AMD64_REL32 L.str +COFF-x86-64: IMAGE_REL_AMD64_REL32 puts +COFF-x86-64: IMAGE_REL_AMD64_REL32 SomeOtherFunction + +ELF-i386: .text +ELF-i386: R_386_32 +ELF-i386: R_386_PC32 +ELF-i386: R_386_PC32 + +ELF-x86-64: .text +ELF-x86-64: R_X86_64_32S .rodata.str1.1 +ELF-x86-64: R_X86_64_PC32 puts +ELF-x86-64: R_X86_64_PC32 SomeOtherFunction diff --git a/test/Object/objdump-sectionheaders.test b/test/Object/objdump-sectionheaders.test new file mode 100644 index 000000000000..4515d00e618d --- /dev/null +++ b/test/Object/objdump-sectionheaders.test @@ -0,0 +1,16 @@ +; RUN: llvm-objdump -h %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +; RUN: | FileCheck %s + +; To verify this, use readelf -S, not objdump -h. Binutils objdump filters the +; results in a way that we don't emulate. + +; CHECK: Sections: +; CHECK: Idx Name Size Address Type +; CHECK: 0 000000000 00000000000000000 +; CHECK: 1 .text 000000026 00000000000000000 TEXT DATA +; CHECK: 2 .rodata.str1.1 00000000d 00000000000000026 DATA +; CHECK: 3 .note.GNU-stack 000000000 00000000000000033 +; CHECK: 4 .rela.text 000000048 00000000000000038 +; CHECK: 5 .symtab 0000000c0 00000000000000080 +; CHECK: 6 .strtab 000000033 00000000000000140 +; CHECK: 7 .shstrtab 00000004b 00000000000000173 diff --git a/test/Object/objdump-trivial-object.test b/test/Object/objdump-trivial-object.test new file mode 100644 index 000000000000..c4855fdfd682 --- /dev/null +++ b/test/Object/objdump-trivial-object.test @@ -0,0 +1,54 @@ +RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.coff-i386 \ +RUN: | FileCheck %s -check-prefix COFF-i386 +RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ +RUN: | FileCheck %s -check-prefix COFF-x86-64 +RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.elf-i386 \ +RUN: | FileCheck %s -check-prefix ELF-i386 +RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ +RUN: | FileCheck %s -check-prefix ELF-x86-64 + +COFF-i386: file format COFF-i386 +COFF-i386: Disassembly of section .text: +COFF-i386: 0: 83 ec 0c subl $12, %esp +COFF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) +COFF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp) +COFF-i386: 12: e8 00 00 00 00 calll 0 +COFF-i386: 17: e8 00 00 00 00 calll 0 +COFF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax +COFF-i386: 20: 83 c4 0c addl $12, %esp +COFF-i386: 23: c3 ret + +COFF-x86-64: file format COFF-x86-64 +COFF-x86-64: Disassembly of section .text: +COFF-x86-64: 0: 48 83 ec 28 subq $40, %rsp +COFF-x86-64: 4: c7 44 24 24 00 00 00 00 movl $0, 36(%rsp) +COFF-x86-64: c: 48 8d 0d 00 00 00 00 leaq (%rip), %rcx +COFF-x86-64: 13: e8 00 00 00 00 callq 0 +COFF-x86-64: 18: e8 00 00 00 00 callq 0 +COFF-x86-64: 1d: 8b 44 24 24 movl 36(%rsp), %eax +COFF-x86-64: 21: 48 83 c4 28 addq $40, %rsp +COFF-x86-64: 25: c3 ret + + +ELF-i386: file format ELF32-i386 +ELF-i386: Disassembly of section .text: +ELF-i386: 0: 83 ec 0c subl $12, %esp +ELF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) +ELF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp) +ELF-i386: 12: e8 fc ff ff ff calll -4 +ELF-i386: 17: e8 fc ff ff ff calll -4 +ELF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax +ELF-i386: 20: 83 c4 0c addl $12, %esp +ELF-i386: 23: c3 ret + +ELF-x86-64: file format ELF64-x86-64 +ELF-x86-64: Disassembly of section .text: +ELF-x86-64: 0: 48 83 ec 08 subq $8, %rsp +ELF-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp) +ELF-x86-64: c: bf 00 00 00 00 movl $0, %edi +ELF-x86-64: 11: e8 00 00 00 00 callq 0 +ELF-x86-64: 16: 30 c0 xorb %al, %al +ELF-x86-64: 18: e8 00 00 00 00 callq 0 +ELF-x86-64: 1d: 8b 44 24 04 movl 4(%rsp), %eax +ELF-x86-64: 21: 48 83 c4 08 addq $8, %rsp +ELF-x86-64: 25: c3 ret diff --git a/test/Object/objdump-trivial-object.test-broken b/test/Object/objdump-trivial-object.test-broken deleted file mode 100644 index c4855fdfd682..000000000000 --- a/test/Object/objdump-trivial-object.test-broken +++ /dev/null @@ -1,54 +0,0 @@ -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.coff-i386 \ -RUN: | FileCheck %s -check-prefix COFF-i386 -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.coff-x86-64 \ -RUN: | FileCheck %s -check-prefix COFF-x86-64 -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.elf-i386 \ -RUN: | FileCheck %s -check-prefix ELF-i386 -RUN: llvm-objdump -d %p/TestObjectFiles/trivial-object-test.elf-x86-64 \ -RUN: | FileCheck %s -check-prefix ELF-x86-64 - -COFF-i386: file format COFF-i386 -COFF-i386: Disassembly of section .text: -COFF-i386: 0: 83 ec 0c subl $12, %esp -COFF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) -COFF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp) -COFF-i386: 12: e8 00 00 00 00 calll 0 -COFF-i386: 17: e8 00 00 00 00 calll 0 -COFF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax -COFF-i386: 20: 83 c4 0c addl $12, %esp -COFF-i386: 23: c3 ret - -COFF-x86-64: file format COFF-x86-64 -COFF-x86-64: Disassembly of section .text: -COFF-x86-64: 0: 48 83 ec 28 subq $40, %rsp -COFF-x86-64: 4: c7 44 24 24 00 00 00 00 movl $0, 36(%rsp) -COFF-x86-64: c: 48 8d 0d 00 00 00 00 leaq (%rip), %rcx -COFF-x86-64: 13: e8 00 00 00 00 callq 0 -COFF-x86-64: 18: e8 00 00 00 00 callq 0 -COFF-x86-64: 1d: 8b 44 24 24 movl 36(%rsp), %eax -COFF-x86-64: 21: 48 83 c4 28 addq $40, %rsp -COFF-x86-64: 25: c3 ret - - -ELF-i386: file format ELF32-i386 -ELF-i386: Disassembly of section .text: -ELF-i386: 0: 83 ec 0c subl $12, %esp -ELF-i386: 3: c7 44 24 08 00 00 00 00 movl $0, 8(%esp) -ELF-i386: b: c7 04 24 00 00 00 00 movl $0, (%esp) -ELF-i386: 12: e8 fc ff ff ff calll -4 -ELF-i386: 17: e8 fc ff ff ff calll -4 -ELF-i386: 1c: 8b 44 24 08 movl 8(%esp), %eax -ELF-i386: 20: 83 c4 0c addl $12, %esp -ELF-i386: 23: c3 ret - -ELF-x86-64: file format ELF64-x86-64 -ELF-x86-64: Disassembly of section .text: -ELF-x86-64: 0: 48 83 ec 08 subq $8, %rsp -ELF-x86-64: 4: c7 44 24 04 00 00 00 00 movl $0, 4(%rsp) -ELF-x86-64: c: bf 00 00 00 00 movl $0, %edi -ELF-x86-64: 11: e8 00 00 00 00 callq 0 -ELF-x86-64: 16: 30 c0 xorb %al, %al -ELF-x86-64: 18: e8 00 00 00 00 callq 0 -ELF-x86-64: 1d: 8b 44 24 04 movl 4(%rsp), %eax -ELF-x86-64: 21: 48 83 c4 08 addq $8, %rsp -ELF-x86-64: 25: c3 ret -- cgit v1.2.3