diff options
| author | George Rimar <grimar@accesssoftek.com> | 2019-03-01 10:58:45 +0000 |
|---|---|---|
| committer | George Rimar <grimar@accesssoftek.com> | 2019-03-01 10:58:45 +0000 |
| commit | aee005291c6735673a50fe0d43c9be7a45006838 (patch) | |
| tree | b69ea2affacd72e4f0ab13a59cc5dff90a147dd3 | |
| parent | 22ce712c1915216a12ddc968f69f095c729ee59f (diff) | |
| download | bcm5719-llvm-aee005291c6735673a50fe0d43c9be7a45006838.tar.gz bcm5719-llvm-aee005291c6735673a50fe0d43c9be7a45006838.zip | |
[LLD][ELF] - Convert 3 testcases to use yaml instead of binaries.
This change makes 3 tests to use yaml instead of binaries.
Differential revision: https://reviews.llvm.org/D58780
llvm-svn: 355196
| -rw-r--r-- | lld/test/ELF/invalid/Inputs/symtab-sh_info.elf | bin | 512 -> 0 bytes | |||
| -rw-r--r-- | lld/test/ELF/invalid/Inputs/symtab-sh_info2.elf | bin | 470 -> 0 bytes | |||
| -rw-r--r-- | lld/test/ELF/invalid/Inputs/symtab-sh_info3.elf | bin | 470 -> 0 bytes | |||
| -rw-r--r-- | lld/test/ELF/invalid/invalid-elf.test | 4 | ||||
| -rw-r--r-- | lld/test/ELF/invalid/symtab-sh-info.s | 68 |
5 files changed, 59 insertions, 13 deletions
diff --git a/lld/test/ELF/invalid/Inputs/symtab-sh_info.elf b/lld/test/ELF/invalid/Inputs/symtab-sh_info.elf Binary files differdeleted file mode 100644 index aa63d582d75..00000000000 --- a/lld/test/ELF/invalid/Inputs/symtab-sh_info.elf +++ /dev/null diff --git a/lld/test/ELF/invalid/Inputs/symtab-sh_info2.elf b/lld/test/ELF/invalid/Inputs/symtab-sh_info2.elf Binary files differdeleted file mode 100644 index 4fea12cf203..00000000000 --- a/lld/test/ELF/invalid/Inputs/symtab-sh_info2.elf +++ /dev/null diff --git a/lld/test/ELF/invalid/Inputs/symtab-sh_info3.elf b/lld/test/ELF/invalid/Inputs/symtab-sh_info3.elf Binary files differdeleted file mode 100644 index ca889fbca1a..00000000000 --- a/lld/test/ELF/invalid/Inputs/symtab-sh_info3.elf +++ /dev/null diff --git a/lld/test/ELF/invalid/invalid-elf.test b/lld/test/ELF/invalid/invalid-elf.test index 80c8f41eb61..722569f0498 100644 --- a/lld/test/ELF/invalid/invalid-elf.test +++ b/lld/test/ELF/invalid/invalid-elf.test @@ -9,10 +9,6 @@ # RUN: FileCheck --check-prefix=INVALID-FILE-CLASS %s # INVALID-FILE-CLASS: test.o: invalid file class -# RUN: not ld.lld %p/Inputs/symtab-sh_info.elf -o %t2 2>&1 | \ -# RUN: FileCheck --check-prefix=INVALID-SYMTAB-SHINFO %s -# INVALID-SYMTAB-SHINFO: invalid sh_info in symbol table - # RUN: not ld.lld %p/Inputs/binding.elf -o %t2 2>&1 | \ # RUN: FileCheck --check-prefix=INVALID-BINDING %s # INVALID-BINDING: unexpected binding diff --git a/lld/test/ELF/invalid/symtab-sh-info.s b/lld/test/ELF/invalid/symtab-sh-info.s index 3522ae550c0..dc99c712765 100644 --- a/lld/test/ELF/invalid/symtab-sh-info.s +++ b/lld/test/ELF/invalid/symtab-sh-info.s @@ -1,9 +1,59 @@ -## sh_info contains zero value. First entry in a symbol table is always completely zeroed, -## so sh_info should be at least 1 in a valid ELF. -# RUN: not ld.lld %p/Inputs/symtab-sh_info2.elf -o %t2 2>&1 | FileCheck %s -# CHECK: invalid sh_info in symbol table - -## sh_info contains invalid value saying non-local symbol is local. -# RUN: not ld.lld %p/Inputs/symtab-sh_info3.elf -o %t2 2>&1 | \ -# RUN: FileCheck --check-prefix=INVALID-SYMTAB-SHINFO %s -# INVALID-SYMTAB-SHINFO: broken object: getLocalSymbols returns a non-local symbol +## .symtab's sh_info contains zero value. First entry in a .symtab is a +## zero entry that must exist in a valid object, so sh_info can't be null. +## Check we report a proper error for that case. +# RUN: yaml2obj -docnum=1 %s -o %t.o +# RUN: not ld.lld %t.o -o %t2 2>&1 | FileCheck %s --check-prefix=ERR1 +# ERR1: invalid sh_info in symbol table + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .symtab + Info: 0 + Type: SHT_SYMTAB +Symbols: + Global: + - Name: foo + +## sh_info has value 2 what says that non-local symbol `foo` is local. +## Check we report this case. +# RUN: yaml2obj -docnum=2 %s -o %t.o +# RUN: not ld.lld %t.o -o %t2 2>&1 | FileCheck --check-prefix=ERR2 %s +# ERR2: broken object: getLocalSymbols returns a non-local symbol + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .symtab + Info: 2 + Type: SHT_SYMTAB +Symbols: + Global: + - Name: foo + +## sh_info has value 0xff what is larger than number of symbols in a .symtab. +## Check we report this case. +# RUN: yaml2obj -docnum=3 %s -o %t.o +# RUN: not ld.lld %t.o -o %t2 2>&1 | FileCheck --check-prefix=ERR1 %s + +--- !ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_REL + Machine: EM_X86_64 +Sections: + - Name: .symtab + Info: 0xff + Type: SHT_SYMTAB +Symbols: + Global: + - Name: foo |

