llvm-mirror/test/Object
Kevin Enderby 3bd0231fd8 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.

llvm-svn: 266248
2016-04-13 21:17:58 +00:00
..
AArch64 [ELFYAML] Provide default value 0 for YAML relocation addendum field 2015-01-29 06:56:24 +00:00
AMDGPU [AMDGPU] llvm-objdump: Minimal HSA Code Object disassembler support. 2016-04-07 07:24:01 +00:00
ARM llvm-nm: Don't print mapping symbols. 2015-06-25 21:00:51 +00:00
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 llvm/test/Object/ar-create.test: Relax a CHECK line to satisfy localized message catalogue. 2013-07-16 23:17:22 +00:00
ar-error.test llvm/test/Object/ar-error.test: Don't check the message "No such file or directory". 2014-05-24 08:47:11 +00:00
archive-delete.test lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
archive-error-tmp.txt Remove "REQUIRES:shell" from tests. They work for me. 2014-11-04 13:41:33 +00:00
archive-extract-dir.test lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
archive-extract.test Accept lower case to handle windows error messages. 2015-07-14 22:42:21 +00:00
archive-format.test Trying to fix the windows bots. 2015-07-16 00:38:34 +00:00
archive-long-index.test Changed the lvm-nm alias "-s" for -print-armap to "-M". 2014-07-08 23:47:31 +00:00
archive-move.test lit: Add 'cd' support to the internal shell and port some tests 2015-03-02 21:33:18 +00:00
archive-replace-pos.test Replace archive members in the old position. 2013-07-22 15:11:51 +00:00
archive-symtab.test Tests: be slightly more specific to avoid conflict with path. 2015-10-26 13:40:03 +00:00
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 Fix reading archive members with / in the name. 2015-07-13 23:07:05 +00:00
archive-update.test Stabilize llvm/test/Object/archive-update.test a bit. 2015-12-07 23:15:57 +00:00
check_binary_output.ll raw_ostream.cpp: Introduce <fcntl.h> to let O_BINARY provided. Or, llvm::outs() would be set to O_TEXT by default. 2013-07-17 02:21:10 +00:00
coff-archive-short.test Object, COFF: Cleanup symbol type code, improve binutils compatibility 2014-10-31 05:07:00 +00:00
coff-archive.test llvm-nm: treat weak undefined as undefined. 2015-07-06 21:36:23 +00:00
coff-invalid.test Check that COFF .obj files have sections with zero virtual address spaces. 2015-07-06 14:26:07 +00:00
corrupt.test Represent the dynamic table itself with a DynRegionInfo. 2016-02-17 16:48:00 +00:00
directory.ll Use std::error_code instead of llvm::error_code. 2014-06-11 19:05:50 +00:00
dllimport-globalref.ll Object: Add XFAILed test case for r239560. 2015-06-24 18:03:39 +00:00
dllimport.ll Object: Prepend __imp_ when mangling a dllimport symbol in IRObjectFile. 2015-06-11 21:42:18 +00:00
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 Handle relocations that don't point to symbols. 2013-06-05 01:33:53 +00:00
elf-unknown-type.test [Object][ELF] Test unknown type. 2015-01-23 21:58:09 +00:00
invalid.test Change how readobj stores info about dynamic symbols. 2016-02-17 15:38:21 +00:00
kext.test Object: Test for reading kext bundles 2015-02-27 18:58:23 +00:00
lit.local.cfg Change how symbol sizes are handled in lib/Object. 2015-06-24 10:20:30 +00:00
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 Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
mri1.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri2.test llvm-ar: Start adding support for mri scripts. 2014-10-10 18:33:51 +00:00
mri3.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri4.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri5.test llvm-ar: Start adding support for mri scripts. 2014-10-10 18:33:51 +00:00
mri-addlib.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri-addmod.test Re-enable tests in llvm/test/Object, corresponding to line_iterator's 2014-11-04 13:19:29 +00:00
mri-crlf.test Add CRLF support to LineIterator. 2014-11-03 14:09:47 +00:00
nm-archive.test Identify thin archives as archives. 2015-07-22 18:29:39 +00:00
nm-darwin-m.test Added the -m option as an alias for -format=darwin to llvm-nm and llvm-size 2014-06-20 00:04:16 +00:00
nm-error.test We do use pipefail these days. Update the test. 2014-01-29 04:08:05 +00:00
nm-irix6.test [Object] Support reading 64-bit MIPS ELF archives 2015-02-17 18:54:22 +00:00
nm-pe-image.test Update comments. 2015-08-06 20:05:27 +00:00
nm-shared-object.test Fix llvm-nm to print the full 64-bit address for symbols in 64-bit object files. 2014-05-09 23:57:49 +00:00
nm-trivial-object.test Fix llvm-nm -S option. 2015-05-22 13:28:35 +00:00
nm-universal-binary.test pr20589: Fix duplicated arch flag. 2014-08-08 16:18:29 +00:00
nm-weak-global-macho.test Fix llvm-nm to mach OS X's nm on some tests. 2013-11-02 05:03:24 +00:00
no-section-header-string-table.test [Object][ELF] Handle files with no section header string table. 2015-07-21 21:40:33 +00:00
no-section-table.test [llvm-readobj] Dump DT_RELACOUNT correctly. 2016-01-16 06:06:36 +00:00
obj2yaml-coff-long-file-symbol.test Object: Output .file symbols properly 2014-03-20 06:29:02 +00:00
obj2yaml-coff-long-section-name.test obj2yaml, COFF: Handle long section names 2014-10-10 00:17:57 +00:00
obj2yaml-coff-section-aux-symbol.test Add tests for r219479. 2014-10-10 06:59:05 +00:00
obj2yaml-coff-weak-external.test obj2yaml: Don't crash if the characteristics field is zero 2014-04-09 16:38:15 +00:00
obj2yaml-sectiongroup.test [obj2yaml/yaml2obj] Add SHT_GROUP support. 2015-02-21 04:28:26 +00:00
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 [Object] Don't crash on empty export lists. 2014-12-19 02:31:01 +00:00
objdump-file-header.test Move test yaml files under Inputs until they are converted to be the actual 2012-08-02 21:52:49 +00:00
objdump-no-sectionheaders.test objdump: Add test for ELF file with no section table 2014-06-30 20:03:02 +00:00
objdump-private-headers.test Add mach-o LC_RPATH support to llvm-objdump 2014-12-04 07:37:02 +00:00
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 Fix getRelocationValueString to return the symbol name for EM_386. 2014-10-29 18:37:13 +00:00
objdump-section-content.test llvm-objdump: Don't print contents of BSS sections: it makes no sense and crashes llvm-objdump on relocated objects with large bss 2013-04-16 10:53:11 +00:00
objdump-sectionheaders.test [llvm-objdump] Emit addresses with the correct number of leading 0's. 2013-01-10 22:40:50 +00:00
objdump-shndx.test Add a test showing that objdump (and so ObjectFIle) can handle shndx. 2015-08-10 21:00:15 +00:00
objdump-symbol-table.test objdump: Don't print a (always 0) size for MachO symbols. 2015-06-23 15:45:38 +00:00
pr25877.test Handle archives with paths in the names. 2015-12-18 16:07:17 +00:00
readobj-absent.test Avoid SEGFAULT if a requested symbol section is absent. 2015-09-21 19:17:18 +00:00
readobj-elf-versioning.test Teach llvm-readobj to print human friendly description of reserved sections. 2014-03-24 05:00:34 +00:00
readobj-shared-object.test Fix printing of 64 bit values and make test more strict. 2015-10-01 17:57:31 +00:00
readobj.test [Object][ELF] Fix crash on no dynamic section. 2013-02-07 18:26:45 +00:00
relocation-executable.test Reapply r260489. 2016-02-16 15:16:00 +00:00
simple-archive.test Changed the lvm-nm alias "-s" for -print-armap to "-M". 2014-07-08 23:47:31 +00:00
size-trivial-macho.test Add the -arch flag support to llvm-size like what was done to llvm-nm 2014-07-01 17:19:10 +00:00
stackmap-dump.test [Stackmap] Pre-assemble the stackmap parser test case. (Fix builders). 2015-06-27 03:49:25 +00:00
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] Add new command line option -docnum. 2014-05-31 04:51:07 +00:00
yaml2obj-elf-alignment.yaml [yaml2obj] Align section content using AddressAlign field's value 2015-07-08 10:12:40 +00:00
yaml2obj-elf-bits-endian.test [yaml2obj] Initial ELF support. 2013-06-10 23:44:15 +00:00
yaml2obj-elf-file-headers-with-e_flags.yaml [yaml2obj] Allow yaml2obj tool to recognize EF_MIPS_NAN2008 flag 2014-11-04 13:33:36 +00:00
yaml2obj-elf-file-headers.yaml [yaml2obj][ELF] Beef up this test a bit. 2013-06-19 00:55:32 +00:00
yaml2obj-elf-multi-doc.test [yaml2obj] Add new command line option -docnum. 2014-05-31 04:51:07 +00:00
yaml2obj-elf-rel-noref.yaml [ELFYAML] Fix handling SHT_NOBITS sections by obj2yaml/yaml2obj tools 2015-07-03 23:00:54 +00:00
yaml2obj-elf-rel.yaml [yaml2obj] Use regex to match sections offsets. NFC 2015-07-08 06:57:24 +00:00
yaml2obj-elf-section-basic.yaml [yaml2obj] Initialize sh_addralign field for the .symtab section 2015-07-09 18:23:02 +00:00
yaml2obj-elf-section-invalid-size.yaml [yaml2obj][ELF] Add an optional Size field to the YAML section declaration. 2014-05-16 16:01:00 +00:00
yaml2obj-elf-symbol-basic.yaml [ELF] Explicitly configure sections alignment in the tests. NFC 2015-07-09 18:22:55 +00:00
yaml2obj-elf-symbol-LocalGlobalWeak.yaml [yaml2obj][ELF] Make symbol table top-level key. 2013-06-22 01:38:00 +00:00
yaml2obj-elf-symbol-visibility.yaml [llvm-readobj] Decode st_other symbol's flags 2016-03-24 16:10:37 +00:00
yaml2obj-readobj.test [yaml2obj] Add "-o" command line option to specify an output file name. 2014-05-15 16:14:02 +00:00