diff options
author | Cyndy Ishida <cyndy_ishida@apple.com> | 2019-09-11 00:00:53 +0000 |
---|---|---|
committer | Cyndy Ishida <cyndy_ishida@apple.com> | 2019-09-11 00:00:53 +0000 |
commit | f88f46358dbffa20af3b054a9346e5154789d50f (patch) | |
tree | 1d7d8f81728b921b5d9a497842bc2a60c7b1dffe /llvm/test/Object | |
parent | 8b83f50c034d1a48785e233874f621106c6f22a3 (diff) | |
download | bcm5719-llvm-f88f46358dbffa20af3b054a9346e5154789d50f.tar.gz bcm5719-llvm-f88f46358dbffa20af3b054a9346e5154789d50f.zip |
[llvm-nm] Add tapi file support
Summary:
This commit is the final one for adding tapi support to the llvm-nm implementation.
This commit also has accompanying tests the additions to lib/Object
Reviewers: ributzka, steven_wu
Reviewed By: ributzka
Subscribers: hiraditya, plotfi, dexonsmith, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66160
llvm-svn: 371576
Diffstat (limited to 'llvm/test/Object')
-rw-r--r-- | llvm/test/Object/Inputs/tapi-invalid-v1.tbd | 21 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/tapi-invalid-v2.tbd | 29 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/tapi-invalid-v3.tbd | 24 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/tapi-v1.tbd | 21 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/tapi-v2.tbd | 30 | ||||
-rw-r--r-- | llvm/test/Object/Inputs/tapi-v3.tbd | 24 | ||||
-rw-r--r-- | llvm/test/Object/nm-tapi-invalids.test | 20 | ||||
-rw-r--r-- | llvm/test/Object/nm-tapi.test | 56 |
8 files changed, 225 insertions, 0 deletions
diff --git a/llvm/test/Object/Inputs/tapi-invalid-v1.tbd b/llvm/test/Object/Inputs/tapi-invalid-v1.tbd new file mode 100644 index 00000000000..bc9289c2438 --- /dev/null +++ b/llvm/test/Object/Inputs/tapi-invalid-v1.tbd @@ -0,0 +1,21 @@ +--- !tapi-tbd-v1 + +archs: [ armv7, armv7s, arm64 ] + +platform: ios +install-name: /u/l/libfoo.dylib +current-version: 1.2.3 +compatibility-version: 1.0 +swift-version: 0 +objc-constraint: none +expors: + - archs: [ arm64, armv7 ] + allowed-clients: [ client ] + re-exports: [ ] + symbols: [ _sym, _test, _a, _b, ] + objc-classes: [] + objc-ivars: [] + + weak-def-symbols: [] + thread-local-symbols: [] +... diff --git a/llvm/test/Object/Inputs/tapi-invalid-v2.tbd b/llvm/test/Object/Inputs/tapi-invalid-v2.tbd new file mode 100644 index 00000000000..d7e58f372ea --- /dev/null +++ b/llvm/test/Object/Inputs/tapi-invalid-v2.tbd @@ -0,0 +1,29 @@ +--- !tapi-tbd-v2 +uuids: [ "armv7: 00000000-0000-0000-0000-000000000000", + "armv7s: 11111111-1111-1111-1111-111111111111", + "arm64: 22222222-2222-2222-2222-222222222222" ] +platform: ios +flags: [ installapi ] +install-name: /u/l/libfoo.dylib +current-version: 1.2.3 +compatibility-version: 1.0 +swift-version: 0 +objc-constraint: retain_release +parent-umbrella: Umbrella.dylib +exports: + - archs: [ armv7, armv7s, arm64 ] + allowable-clients: [ client ] + re-exports: [ ] + symbols: [ _sym1, _sym2, _sym3 ] + objc-classes: [] + objc-ivars: [] + + weak-def-symbols: [] + thread-local-symbols: [] +undefineds: + - archs: [ arm64 ] + symbols: [ _sym ] + objc-classes: [] + objc-ivars: [] + weak-ref-symbols: [] +... diff --git a/llvm/test/Object/Inputs/tapi-invalid-v3.tbd b/llvm/test/Object/Inputs/tapi-invalid-v3.tbd new file mode 100644 index 00000000000..fbf615979a9 --- /dev/null +++ b/llvm/test/Object/Inputs/tapi-invalid-v3.tbd @@ -0,0 +1,24 @@ +--- !tapi-tbd-v3 +archs: [ i386, armv7, armv7s ] +platform: ios +install-name: /usr/lib/libfoo.dylib +swift-abi-version: 3 +exports: + - archs: [ i386, armv7, armv7s ] + re-exports: [ /usr/lib/external/liba.dylib ] + symbols: [ _sym1, _sym2 ] + objc-classes: [ NSString, NSBlockPredicate ] + objc-eh-types: [ NSString ] + objc-ivars: [ NSBlockPredicate._block ] + - archs: [ i386 ] + symbols: [ _sym3 ] +--- !tapi-tbd-v3 +archs: [ armv7, armv7s ] +platform: ios +install-name: /usr/lib/liba.dylib +swift-version: 3 +exports: + - archs: [ armv7, armv7s ] + re-exports: [ /usr/lib/internal/liba.dylib ] + symbols: [ _sym10, _sym11 ] +... diff --git a/llvm/test/Object/Inputs/tapi-v1.tbd b/llvm/test/Object/Inputs/tapi-v1.tbd new file mode 100644 index 00000000000..91a3571ec82 --- /dev/null +++ b/llvm/test/Object/Inputs/tapi-v1.tbd @@ -0,0 +1,21 @@ +--- !tapi-tbd-v1 + +archs: [ armv7, armv7s ] + +platform: ios +install-name: /u/l/libfoo.dylib +current-version: 1.2.3 +compatibility-version: 1.0 +swift-version: 0 +objc-constraint: none +exports: + - archs: [ armv7 ] + allowed-clients: [ client ] + re-exports: [ ] + symbols: [ _sym, ] + objc-classes: [] + objc-ivars: [] + + weak-def-symbols: [] + thread-local-symbols: [_sym] +... diff --git a/llvm/test/Object/Inputs/tapi-v2.tbd b/llvm/test/Object/Inputs/tapi-v2.tbd new file mode 100644 index 00000000000..7ba9a12600d --- /dev/null +++ b/llvm/test/Object/Inputs/tapi-v2.tbd @@ -0,0 +1,30 @@ +--- !tapi-tbd-v2 +archs: [ armv7, armv7s, arm64 ] +uuids: [ "armv7: 00000000-0000-0000-0000-000000000000", + "armv7s: 11111111-1111-1111-1111-111111111111", + "arm64: 22222222-2222-2222-2222-222222222222" ] +platform: ios +flags: [ installapi ] +install-name: /u/l/libfoo.dylib +current-version: 1.2.3 +compatibility-version: 1.0 +swift-version: 0 +objc-constraint: retain_release +parent-umbrella: Umbrella.dylib +exports: + - archs: [ armv7, armv7s, arm64 ] + allowable-clients: [ client ] + re-exports: [ ] + symbols: [ _sym1, _sym2, _sym3 ] + objc-classes: [] + objc-ivars: [] + + weak-def-symbols: [] + thread-local-symbols: [] +undefineds: + - archs: [ arm64 ] + symbols: [ _sym ] + objc-classes: [] + objc-ivars: [] + weak-ref-symbols: [] +... diff --git a/llvm/test/Object/Inputs/tapi-v3.tbd b/llvm/test/Object/Inputs/tapi-v3.tbd new file mode 100644 index 00000000000..1d08024543b --- /dev/null +++ b/llvm/test/Object/Inputs/tapi-v3.tbd @@ -0,0 +1,24 @@ +--- !tapi-tbd-v3 +archs: [ i386, armv7, armv7s ] +platform: ios +install-name: /usr/lib/libfoo.dylib +swift-abi-version: 3 +exports: + - archs: [ i386, armv7, armv7s ] + re-exports: [ /usr/lib/external/liba.dylib ] + symbols: [ _sym1, _sym2 ] + objc-classes: [ NSString, NSBlockPredicate ] + objc-eh-types: [ NSString ] + objc-ivars: [ NSBlockPredicate._block ] + - archs: [ i386 ] + symbols: [ _sym3 ] +--- !tapi-tbd-v3 +archs: [ armv7, armv7s ] +platform: ios +install-name: /usr/lib/liba.dylib +swift-abi-version: 3 +exports: + - archs: [ armv7, armv7s ] + re-exports: [ /usr/lib/internal/liba.dylib ] + symbols: [ _sym10, _sym11 ] +... diff --git a/llvm/test/Object/nm-tapi-invalids.test b/llvm/test/Object/nm-tapi-invalids.test new file mode 100644 index 00000000000..c9199f89c6c --- /dev/null +++ b/llvm/test/Object/nm-tapi-invalids.test @@ -0,0 +1,20 @@ +RUN: not llvm-nm %p/Inputs/tapi-invalid-v1.tbd 2>&1\ +RUN: | Filecheck %s -check-prefix v1 + +RUN: not llvm-nm %p/Inputs/tapi-invalid-v2.tbd 2>&1\ +RUN: | Filecheck %s -check-prefix v2 + +RUN: not llvm-nm %p/Inputs/tapi-invalid-v3.tbd 2>&1\ +RUN: | Filecheck %s -check-prefix v3 + +# Typo Check +v1: tapi-invalid-v1.tbd malformed file +v1: tapi-invalid-v1.tbd:12:2: error: unknown key 'expors' + +# Missing required key +v2: tapi-invalid-v2.tbd malformed file +v2: tapi-invalid-v2.tbd:2:1: error: missing required key 'archs' + +# v2 key in v3 specified file +v3: tapi-invalid-v3.tbd malformed file +v3: tapi-invalid-v3.tbd:19:16: error: unknown key 'swift-version' diff --git a/llvm/test/Object/nm-tapi.test b/llvm/test/Object/nm-tapi.test new file mode 100644 index 00000000000..069fffb5c9d --- /dev/null +++ b/llvm/test/Object/nm-tapi.test @@ -0,0 +1,56 @@ +RUN: llvm-nm %p/Inputs/tapi-v1.tbd 2>&1\ +RUN: | Filecheck %s -check-prefix v1 + +RUN: llvm-nm %p/Inputs/tapi-v2.tbd \ +RUN: | Filecheck %s -check-prefix v2 + +RUN: llvm-nm %p/Inputs/tapi-v3.tbd \ +RUN: | Filecheck %s -check-prefix v3 + +v1: no symbols +v1: tapi-v1.tbd (for architecture armv7): +v1: 00000000 S _sym +v1: tapi-v1.tbd (for architecture armv7s): + +v2: tapi-v2.tbd (for architecture armv7): +v2: 00000000 S _sym1 +v2: 00000000 S _sym2 +v2: 00000000 S _sym3 +v2: tapi-v2.tbd (for architecture armv7s): +v2: 00000000 S _sym1 +v2: 00000000 S _sym2 +v2: 00000000 S _sym3 +v2: tapi-v2.tbd (for architecture arm64): +v2: U _sym +v2: 0000000000000000 S _sym1 +v2: 0000000000000000 S _sym2 +v2: 0000000000000000 S _sym3 + +v3: tapi-v3.tbd (for architecture i386): +v3: 00000000 S _OBJC_CLASS_$_NSBlockPredicate +v3: 00000000 S _OBJC_CLASS_$_NSString +v3: 00000000 S _OBJC_EHTYPE_$_NSString +v3: 00000000 S _OBJC_IVAR_$_NSBlockPredicate._block +v3: 00000000 S _OBJC_METACLASS_$_NSBlockPredicate +v3: 00000000 S _OBJC_METACLASS_$_NSString +v3: 00000000 S _sym1 +v3: 00000000 S _sym2 +v3: 00000000 S _sym3 +v3: tapi-v3.tbd (for architecture armv7): +v3: 00000000 S _OBJC_CLASS_$_NSBlockPredicate +v3: 00000000 S _OBJC_CLASS_$_NSString +v3: 00000000 S _OBJC_EHTYPE_$_NSString +v3: 00000000 S _OBJC_IVAR_$_NSBlockPredicate._block +v3: 00000000 S _OBJC_METACLASS_$_NSBlockPredicate +v3: 00000000 S _OBJC_METACLASS_$_NSString +v3: 00000000 S _sym1 +v3: 00000000 S _sym2 +v3: tapi-v3.tbd (for architecture armv7s): +v3: 00000000 S _OBJC_CLASS_$_NSBlockPredicate +v3: 00000000 S _OBJC_CLASS_$_NSString +v3: 00000000 S _OBJC_EHTYPE_$_NSString +v3: 00000000 S _OBJC_IVAR_$_NSBlockPredicate._block +v3: 00000000 S _OBJC_METACLASS_$_NSBlockPredicate +v3: 00000000 S _OBJC_METACLASS_$_NSString +v3: 00000000 S _sym1 +v3: 00000000 S _sym2 |