1ca518c49SSameer Arora## This test checks updating a dynamic shared library ID in a MachO binary. 2ca518c49SSameer Arora 3ca518c49SSameer Arora# RUN: yaml2obj %s --docnum=1 -o %t 4ca518c49SSameer Arora 5ca518c49SSameer Arora## Specifying -id once: 6ca518c49SSameer Arora# RUN: llvm-install-name-tool -id /usr/lib/A_long_long_test %t 75f56da37SShoaib Meenai# RUN: llvm-objdump -p %t | FileCheck %s --check-prefix=ID --implicit-check-not='name /usr' 8ca518c49SSameer Arora 95f56da37SShoaib Meenai# ID: name /usr/lib/A_long_long_test 10ca518c49SSameer Arora 11ca518c49SSameer Arora## Specifying -id more than once: 12ca518c49SSameer Arora# RUN: llvm-install-name-tool -id /usr/lib/B_long -id /usr/lib/K_long -id /usr/A_short %t 135f56da37SShoaib Meenai# RUN: llvm-objdump -p %t | FileCheck %s --check-prefix=ID-MULTIPLE --implicit-check-not='name /usr' 14ca518c49SSameer Arora 155f56da37SShoaib Meenai# ID-MULTIPLE: name /usr/A_short 16ca518c49SSameer Arora 17ca518c49SSameer Arora## Specifying -id with empty string: 18ca518c49SSameer Arora# RUN: not llvm-install-name-tool -id '' %t 2>&1 | \ 19ca518c49SSameer Arora# RUN: FileCheck %s --check-prefix=EMPTY 20ca518c49SSameer Arora 21ca518c49SSameer Arora# EMPTY: cannot specify an empty id 22ca518c49SSameer Arora 23ca518c49SSameer Arora## Missing id argument: 24ca518c49SSameer Arora# RUN: not llvm-install-name-tool %t -id 2>&1 | \ 25ca518c49SSameer Arora# RUN: FileCheck %s --check-prefix=MISSING 26ca518c49SSameer Arora 27ca518c49SSameer Arora# MISSING: missing argument to -id option 28ca518c49SSameer Arora 29ca518c49SSameer Arora## Shared dylib binary 30ca518c49SSameer Arora--- !mach-o 31ca518c49SSameer AroraFileHeader: 32ca518c49SSameer Arora magic: 0xFEEDFACF 33ca518c49SSameer Arora cputype: 0x01000007 34ca518c49SSameer Arora cpusubtype: 0x00000003 35ca518c49SSameer Arora filetype: 0x00000006 36ca518c49SSameer Arora ncmds: 1 37ca518c49SSameer Arora sizeofcmds: 56 38ca518c49SSameer Arora flags: 0x00002000 39ca518c49SSameer Arora reserved: 0x00000000 40ca518c49SSameer AroraLoadCommands: 41ca518c49SSameer Arora - cmd: LC_ID_DYLIB 42ca518c49SSameer Arora cmdsize: 56 43ca518c49SSameer Arora dylib: 44ca518c49SSameer Arora name: 24 45ca518c49SSameer Arora timestamp: 2 46ca518c49SSameer Arora current_version: 82115073 47ca518c49SSameer Arora compatibility_version: 65536 48*c0da287cSFangrui Song Content: '/usr/lib/A' 49ca518c49SSameer Arora 50ca518c49SSameer Arora# RUN: yaml2obj %s --docnum=2 -o %t 51ca518c49SSameer Arora 52ca518c49SSameer Arora## Check that -id option has no effect if binary is not a shared dylib: 53ca518c49SSameer Arora# RUN: cp %t %t1 54ca518c49SSameer Arora# RUN: llvm-install-name-tool -id /usr/lib/J %t 55ca518c49SSameer Arora# RUN: cmp %t %t1 56ca518c49SSameer Arora 57ca518c49SSameer Arora## Executable binary 58ca518c49SSameer Arora--- !mach-o 59ca518c49SSameer AroraFileHeader: 60ca518c49SSameer Arora magic: 0xFEEDFACF 61ca518c49SSameer Arora cputype: 0x01000007 62ca518c49SSameer Arora cpusubtype: 0x00000003 63ca518c49SSameer Arora filetype: 0x00000001 64ca518c49SSameer Arora ncmds: 0 65ca518c49SSameer Arora sizeofcmds: 0 66ca518c49SSameer Arora flags: 0x00002000 67ca518c49SSameer Arora reserved: 0x00000000 68