From 6da58e7e0fac1e421d6a5a6e48ed8836c67ac543 Mon Sep 17 00:00:00 2001 From: Steven Wu Date: Wed, 6 Nov 2019 11:25:50 -0800 Subject: [Object][MachO] Rewrite macho-invalid-fat-arch-size into YAML Summary: Rewrite one of the invalid macho test input file with YAML file. The original invalid macho is breaking our internal test infrastusture because it is too broken to be copy around. Need to relax an assertion in the YAML/MachoEmitter to allow yaml2obj to write an invalid object like this. rdar://problem/56879982 Reviewers: beanz, mtrent Reviewed By: beanz Subscribers: hiraditya, jkorous, dexonsmith, ributzka, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69856 --- llvm/test/Object/Inputs/macho-invalid-fat-arch-size | Bin 56 -> 0 bytes llvm/test/Object/Inputs/macho-invalid-fat-arch-size.yaml | 12 ++++++++++++ llvm/test/Object/macho-invalid.test | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) delete mode 100644 llvm/test/Object/Inputs/macho-invalid-fat-arch-size create mode 100644 llvm/test/Object/Inputs/macho-invalid-fat-arch-size.yaml (limited to 'llvm/test/Object') diff --git a/llvm/test/Object/Inputs/macho-invalid-fat-arch-size b/llvm/test/Object/Inputs/macho-invalid-fat-arch-size deleted file mode 100644 index dfd154c88e3..00000000000 Binary files a/llvm/test/Object/Inputs/macho-invalid-fat-arch-size and /dev/null differ diff --git a/llvm/test/Object/Inputs/macho-invalid-fat-arch-size.yaml b/llvm/test/Object/Inputs/macho-invalid-fat-arch-size.yaml new file mode 100644 index 00000000000..f7bf00d7c13 --- /dev/null +++ b/llvm/test/Object/Inputs/macho-invalid-fat-arch-size.yaml @@ -0,0 +1,12 @@ +--- !fat-mach-o +FatHeader: + magic: 0xCAFEBABE + nfat_arch: 1 +FatArchs: + - cputype: 0x00000007 + cpusubtype: 0x00000003 + offset: 0x000000000000020 + size: 32 + align: 2 +Slices: +... diff --git a/llvm/test/Object/macho-invalid.test b/llvm/test/Object/macho-invalid.test index 1cbd7469d73..2206c678105 100644 --- a/llvm/test/Object/macho-invalid.test +++ b/llvm/test/Object/macho-invalid.test @@ -491,8 +491,8 @@ INVALID-EXPORT-OVERLAP: macho-invalid-export-overlap': truncated or malformed ob RUN: not llvm-objdump --macho --universal-headers %p/Inputs/macho-invalid-fat-header 2>&1 | FileCheck -check-prefix INVALID-FAT-HEADER %s INVALID-FAT-HEADER: macho-invalid-fat-header': truncated or malformed fat file (contains zero architecture types) -RUN: not llvm-objdump --macho --universal-headers %p/Inputs/macho-invalid-fat-arch-size 2>&1 | FileCheck -check-prefix INVALID-FAT-ARCH-SIZE %s -INVALID-FAT-ARCH-SIZE: macho-invalid-fat-arch-size': truncated or malformed fat file (offset plus size of cputype (7) cpusubtype (3) extends past the end of the file) +RUN: yaml2obj %p/Inputs/macho-invalid-fat-arch-size.yaml -o - | not llvm-objdump --macho --universal-headers - 2>&1 | FileCheck -check-prefix INVALID-FAT-ARCH-SIZE %s +INVALID-FAT-ARCH-SIZE: '-': truncated or malformed fat file (offset plus size of cputype (7) cpusubtype (3) extends past the end of the file) RUN: not llvm-objdump --macho --universal-headers %p/Inputs/macho-invalid-fat-arch-bigalign 2>&1 | FileCheck -check-prefix INVALID-FAT-ARCH-BIGALIGN %s INVALID-FAT-ARCH-BIGALIGN: macho-invalid-fat-arch-bigalign': truncated or malformed fat file (align (2^212) too large for cputype (7) cpusubtype (3) (maximum 2^15)) -- cgit v1.2.3