summaryrefslogtreecommitdiffstats
path: root/llvm/test/Object
diff options
context:
space:
mode:
authorCyndy Ishida <cyndy_ishida@apple.com>2019-09-11 00:00:53 +0000
committerCyndy Ishida <cyndy_ishida@apple.com>2019-09-11 00:00:53 +0000
commitf88f46358dbffa20af3b054a9346e5154789d50f (patch)
tree1d7d8f81728b921b5d9a497842bc2a60c7b1dffe /llvm/test/Object
parent8b83f50c034d1a48785e233874f621106c6f22a3 (diff)
downloadbcm5719-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.tbd21
-rw-r--r--llvm/test/Object/Inputs/tapi-invalid-v2.tbd29
-rw-r--r--llvm/test/Object/Inputs/tapi-invalid-v3.tbd24
-rw-r--r--llvm/test/Object/Inputs/tapi-v1.tbd21
-rw-r--r--llvm/test/Object/Inputs/tapi-v2.tbd30
-rw-r--r--llvm/test/Object/Inputs/tapi-v3.tbd24
-rw-r--r--llvm/test/Object/nm-tapi-invalids.test20
-rw-r--r--llvm/test/Object/nm-tapi.test56
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
OpenPOWER on IntegriCloud