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 | |
Justin Bogner | 31d8b7d | 2016-10-26 22:37:52 +0000 | [diff] [blame] | 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) |
Kevin Enderby | 31b07f1 | 2016-07-29 22:32:02 +0000 | [diff] [blame] | 51 | |
| 52 | # RUN: not llvm-objdump -s %p/Inputs/libbogus9.a \ |
| 53 | # RUN: 2>&1 | FileCheck -check-prefix=bogus9 %s |
| 54 | |
Justin Bogner | 31d8b7d | 2016-10-26 22:37:52 +0000 | [diff] [blame] | 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) |
Kevin Enderby | 31b07f1 | 2016-07-29 22:32:02 +0000 | [diff] [blame] | 56 | |
| 57 | # RUN: not llvm-objdump -s %p/Inputs/libbogus10.a \ |
| 58 | # RUN: 2>&1 | FileCheck -check-prefix=bogus10 %s |
| 59 | |
Justin Bogner | 31d8b7d | 2016-10-26 22:37:52 +0000 | [diff] [blame] | 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) |
Vedant Kumar | 4031d9f | 2016-08-03 19:02:50 +0000 | [diff] [blame] | 61 | |
| 62 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 63 | # RUN: %p/Inputs/libbogus11.a \ |
| 64 | # RUN: 2>&1 | FileCheck -check-prefix=bogus11 %s |
| 65 | |
Justin Bogner | 31d8b7d | 2016-10-26 22:37:52 +0000 | [diff] [blame] | 66 | # bogus11: libbogus11.a(hello.c): truncated or malformed archive (characters in UID field in archive header are not all decimal numbers: '~97&' for the archive member header at offset 8) |
Vedant Kumar | 4031d9f | 2016-08-03 19:02:50 +0000 | [diff] [blame] | 67 | |
| 68 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 69 | # RUN: %p/Inputs/libbogus12.a \ |
| 70 | # RUN: 2>&1 | FileCheck -check-prefix=bogus12 %s |
| 71 | |
Justin Bogner | 31d8b7d | 2016-10-26 22:37:52 +0000 | [diff] [blame] | 72 | # bogus12: libbogus12.a(hello.c): truncated or malformed archive (characters in GID field in archive header are not all decimal numbers: '#55!' for the archive member header at offset 8) |
Vedant Kumar | 4031d9f | 2016-08-03 19:02:50 +0000 | [diff] [blame] | 73 | |
| 74 | # RUN: not llvm-objdump -macho -archive-headers \ |
| 75 | # RUN: %p/Inputs/libbogus13.a \ |
| 76 | # RUN: 2>&1 | FileCheck -check-prefix=bogus13 %s |
| 77 | |
Justin Bogner | 31d8b7d | 2016-10-26 22:37:52 +0000 | [diff] [blame] | 78 | # bogus13: libbogus13.a(hello.c): truncated or malformed archive (characters in AccessMode field in archive header are not all decimal numbers: 'Feed' for the archive member header at offset 8) |
Vedant Kumar | 4031d9f | 2016-08-03 19:02:50 +0000 | [diff] [blame] | 79 | |
| 80 | # RUN: llvm-objdump -macho -archive-headers %p/Inputs/libbogus14.a \ |
| 81 | # RUN: 2>&1 | FileCheck -check-prefix=bogus14 %s |
| 82 | |
| 83 | # bogus14: -rw-r--r--124/0 102 (date: "1foobar273" contains non-decimal chars) hello.c |
| 84 | |
| 85 | # RUN: not llvm-ar tv %p/Inputs/libbogus14.a \ |
| 86 | # RUN: 2>&1 | FileCheck -check-prefix=bogus14a %s |
| 87 | |
| 88 | # bogus14a: truncated or malformed archive (characters in LastModified field in archive header are not all decimal numbers: '1foobar273' for the archive member header at offset 8) |