llvm/test/Object
Kevin Enderby 63247519d7 Start to add real error messages for malformed Mach-O files.
And update the existing test cases in test/Object/macho-invalid.test
to use llvm-objdump with the -macho option to produce these
error messages and stop producing the generic "Invalid data
was encountered while parsing the file" message.

Working from the beginning of the file, if the mach header is too large for
the size of the file and then if the load commands that follow extend past
the end of the file these two errors now generate correct error messages.

Both of these have existing test cases in test/Object/macho-invalid.test .

But the first with macho-invalid-header it will never trigger the error message
"mach header extends past the end of the file" using any of the llvm tools as
they all use identify_magic() which rejects files with the correct magic number
that are too small in size.  So I tested this by hacking that code and seeing the
error message down in parseHeader() really does happen.  So in case there
is ever code in llvm that directly calls createMachOObjectFile() this error
message will be correctly produced.

The second error message of "load commands extends past the end of the file"
is triggered by a number of existing tests cases in test/Object/macho-invalid.test .
Also other tests trigger different error messages now like "ilocalsym plus
nlocalsym in LC_DYSYMTAB load command extends past the end of the
symbol table".

There are two existing test cases that still get the "Invalid data was encountered ..."
error messages that I will tackle next.  But they will involve a bit of pluming an
Expect<...> up through the call stack and I want to do those as separate changes.

FYI, for those test cases that were trying to test specific errors that now get
different errors I’ll fix those in follow on changes and create new test cases
for those so they test the error they were meant to test.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@266248 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-13 21:17:58 +00:00
..
AArch64
AMDGPU [AMDGPU] llvm-objdump: Minimal HSA Code Object disassembler support. 2016-04-07 07:24:01 +00:00
ARM
Inputs Add a testcase that would have found the bug in r263971. 2016-03-21 21:09:38 +00:00
Lanai [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
Mips Revert r265817 2016-04-08 18:15:37 +00:00
X86 Revert r265817 2016-04-08 18:15:37 +00:00
ar-create.test
ar-error.test
archive-delete.test
archive-error-tmp.txt
archive-extract-dir.test
archive-extract.test
archive-format.test
archive-long-index.test
archive-move.test
archive-replace-pos.test
archive-symtab.test
archive-thin-read.test Create thin archive in GNU format to fix test on OS X. 2016-03-31 23:07:50 +00:00
archive-toc.test
archive-update.test
check_binary_output.ll
coff-archive-short.test
coff-archive.test
coff-invalid.test
corrupt.test Represent the dynamic table itself with a DynRegionInfo. 2016-02-17 16:48:00 +00:00
directory.ll
dllimport-globalref.ll
dllimport.ll
dyn-rel-relocation.test [llvm-readobj][ELF] Teach llvm-readobj to show dynamic relocation in REL format 2016-01-16 22:40:09 +00:00
dynamic-reloc.test Add a testcase that would have found the bug in r263971. 2016-03-21 21:09:38 +00:00
elf-reloc-no-sym.test
elf-unknown-type.test
invalid.test Change how readobj stores info about dynamic symbols. 2016-02-17 15:38:21 +00:00
kext.test
lit.local.cfg
macho-invalid.test Start to add real error messages for malformed Mach-O files. 2016-04-13 21:17:58 +00:00
mangle-ir.ll
mri1.test
mri2.test
mri3.test
mri4.test
mri5.test
mri-addlib.test
mri-addmod.test
mri-crlf.test
nm-archive.test
nm-darwin-m.test
nm-error.test
nm-irix6.test
nm-pe-image.test
nm-shared-object.test
nm-trivial-object.test
nm-universal-binary.test
nm-weak-global-macho.test
no-section-header-string-table.test
no-section-table.test
obj2yaml-coff-long-file-symbol.test
obj2yaml-coff-long-section-name.test
obj2yaml-coff-section-aux-symbol.test
obj2yaml-coff-weak-external.test
obj2yaml-sectiongroup.test
obj2yaml.test [llvm-readobj][ELF] Teach llvm-readobj to show arch specific ELF section's flags 2016-01-20 19:15:18 +00:00
objdump-export-list.test
objdump-file-header.test
objdump-no-sectionheaders.test
objdump-private-headers.test
objdump-reloc-shared.test Revert "[llvm-objdump] Printing relocations in executable and shared object files. This partially reverts r215844 by removing test objdump-reloc-shared.test which stated GNU objdump doesn't print relocations, it does." 2016-03-21 20:59:15 +00:00
objdump-relocations.test
objdump-section-content.test
objdump-sectionheaders.test
objdump-shndx.test
objdump-symbol-table.test
pr25877.test
readobj-absent.test
readobj-elf-versioning.test
readobj-shared-object.test
readobj.test
relocation-executable.test Reapply r260489. 2016-02-16 15:16:00 +00:00
simple-archive.test
size-trivial-macho.test
stackmap-dump.test
yaml2obj-coff-invalid-alignment.test [yaml2obj, COFF] Correctly handle section alignment 2016-03-17 05:43:26 +00:00
yaml2obj-coff-multi-doc.test
yaml2obj-elf-alignment.yaml
yaml2obj-elf-bits-endian.test
yaml2obj-elf-file-headers-with-e_flags.yaml
yaml2obj-elf-file-headers.yaml
yaml2obj-elf-multi-doc.test
yaml2obj-elf-rel-noref.yaml
yaml2obj-elf-rel.yaml
yaml2obj-elf-section-basic.yaml
yaml2obj-elf-section-invalid-size.yaml
yaml2obj-elf-symbol-basic.yaml
yaml2obj-elf-symbol-LocalGlobalWeak.yaml
yaml2obj-elf-symbol-visibility.yaml [llvm-readobj] Decode st_other symbol's flags 2016-03-24 16:10:37 +00:00
yaml2obj-readobj.test