Kevin Enderby | 31b07f1 | 2016-07-29 22:32:02 +0000 | [diff] [blame] | 1 | // These test checks that llvm-objdump will not crash with malformed Archive |
| 2 | // files. So the check line is not all that important but the bug fixes to |
| 3 | // make sure llvm-objdump is robust is what matters. |
| 4 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 5 | # RUN: %p/Inputs/libbogus1.a \ |
| 6 | # RUN: 2>&1 | FileCheck -check-prefix=bogus1 %s |
| 7 | |
| 8 | # bogus1: libbogus1.a': truncated or malformed archive (characters in size field in archive header are not all decimal numbers: '10%' for archive member header at offset 8) |
| 9 | |
| 10 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 11 | # RUN: %p/Inputs/libbogus2.a \ |
| 12 | # RUN: 2>&1 | FileCheck -check-prefix=bogus2 %s |
| 13 | |
| 14 | # bogus2: libbogus2.a': truncated or malformed archive (characters in size field in archive header are not all decimal numbers: '1%' for archive member header at offset 170) |
| 15 | |
| 16 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 17 | # RUN: %p/Inputs/libbogus3.a \ |
| 18 | # RUN: 2>&1 | FileCheck -check-prefix=bogus3 %s |
| 19 | |
| 20 | # bogus3: libbogus3.a': truncated or malformed archive (offset to next archive member past the end of the archive after member foo.c) |
| 21 | |
| 22 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 23 | # RUN: %p/Inputs/libbogus4.a \ |
| 24 | # RUN: 2>&1 | FileCheck -check-prefix=bogus4 %s |
| 25 | |
| 26 | # bogus4: libbogus4.a': truncated or malformed archive (remaining size of archive too small for next archive member header for foo.c) |
| 27 | |
| 28 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 29 | # RUN: %p/Inputs/libbogus5.a \ |
| 30 | # RUN: 2>&1 | FileCheck -check-prefix=bogus5 %s |
| 31 | |
| 32 | # bogus5: libbogus5.a': truncated or malformed archive (terminator characters in archive member "@\n" not the correct "`\n" values for the archive member header for hello.c) |
| 33 | |
| 34 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 35 | # RUN: %p/Inputs/libbogus6.a \ |
| 36 | # RUN: 2>&1 | FileCheck -check-prefix=bogus6 %s |
| 37 | |
| 38 | # bogus6: libbogus6.a': truncated or malformed archive (name contains a leading space for archive member header at offset 96) |
| 39 | |
| 40 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 41 | # RUN: %p/Inputs/libbogus7.a \ |
| 42 | # RUN: 2>&1 | FileCheck -check-prefix=bogus7 %s |
| 43 | |
| 44 | # bogus7: libbogus7.a': truncated or malformed archive (long name length characters after the #1/ are not all decimal numbers: '@123$' for archive member header at offset 8) |
| 45 | |
| 46 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 47 | # RUN: %p/Inputs/libbogus8.a \ |
| 48 | # RUN: 2>&1 | FileCheck -check-prefix=bogus8 %s |
| 49 | |
| 50 | # bogus8: libbogus8.a(???) truncated or malformed archive (long name length: 1234 extends past the end of the member or archive for archive member header at offset 86) |
| 51 | |
| 52 | # RUN: not llvm-objdump -s %p/Inputs/libbogus9.a \ |
| 53 | # RUN: 2>&1 | FileCheck -check-prefix=bogus9 %s |
| 54 | |
| 55 | # bogus9: libbogus9.a(???) truncated or malformed archive (long name offset characters after the '/' are not all decimal numbers: '&a25*' for archive member header at offset 94) |
| 56 | |
| 57 | # RUN: not llvm-objdump -s %p/Inputs/libbogus10.a \ |
| 58 | # RUN: 2>&1 | FileCheck -check-prefix=bogus10 %s |
| 59 | |
| 60 | # bogus10: libbogus10.a(???) truncated or malformed archive (long name offset 507 past the end of the string table for archive member header at offset 94) |