diff options
Diffstat (limited to 'clang/test/InstallAPI')
| -rw-r--r-- | clang/test/InstallAPI/asm.test | 2 | ||||
| -rw-r--r-- | clang/test/InstallAPI/basic.test | 4 | ||||
| -rw-r--r-- | clang/test/InstallAPI/binary-attributes.test | 6 | ||||
| -rw-r--r-- | clang/test/InstallAPI/cpp.test | 4 | ||||
| -rw-r--r-- | clang/test/InstallAPI/diagnostics-dsym.test | 4 | ||||
| -rw-r--r-- | clang/test/InstallAPI/directory-scanning-dylib.test | 57 | ||||
| -rw-r--r-- | clang/test/InstallAPI/directory-scanning-frameworks.test | 88 | ||||
| -rw-r--r-- | clang/test/InstallAPI/functions.test | 2 | ||||
| -rw-r--r-- | clang/test/InstallAPI/variables.test | 2 |
9 files changed, 158 insertions, 11 deletions
diff --git a/clang/test/InstallAPI/asm.test b/clang/test/InstallAPI/asm.test index b6af7f643d72..9df644a82390 100644 --- a/clang/test/InstallAPI/asm.test +++ b/clang/test/InstallAPI/asm.test @@ -3,7 +3,7 @@ // RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json // RUN: clang-installapi -target arm64-apple-macos13.1 \ -// RUN: -I%t/usr/include \ +// RUN: -I%t/usr/include -dynamiclib \ // RUN: -install_name @rpath/lib/libasm.dylib \ // RUN: %t/inputs.json -o %t/output.tbd 2>&1 | FileCheck %s --allow-empty // RUN: llvm-readtapi -compare %t/output.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty diff --git a/clang/test/InstallAPI/basic.test b/clang/test/InstallAPI/basic.test index 096911039d11..d86948fd2228 100644 --- a/clang/test/InstallAPI/basic.test +++ b/clang/test/InstallAPI/basic.test @@ -3,13 +3,13 @@ /// Check basic arguments are captured. // RUN: clang-installapi -x objective-c -target arm64-apple-ios13.0.0 \ // RUN: -fapplication-extension -current_version 1 -compatibility_version 1 \ -// RUN: -install_name /usr/lib/basic.dylib \ +// RUN: -install_name /usr/lib/basic.dylib -dynamiclib \ // RUN: %t/basic_inputs.json -o %t/basic.tbd 2>&1 | FileCheck %s --allow-empty // RUN: llvm-readtapi -compare %t/basic.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty /// Check multiple targets are captured. // RUN: clang-installapi -x objective-c -target arm64-apple-ios14.1 -target arm64e-apple-ios14.1 \ -// RUN: -fapplication-extension -install_name /usr/lib/basic.dylib \ +// RUN: -fapplication-extension -install_name /usr/lib/basic.dylib -dynamiclib \ // RUN: %t/basic_inputs.json -o %t/multi-targets.tbd 2>&1 | FileCheck %s --allow-empty // RUN: llvm-readtapi -compare %t/multi-targets.tbd %t/expected-multi.tbd 2>&1 | FileCheck %s --allow-empty diff --git a/clang/test/InstallAPI/binary-attributes.test b/clang/test/InstallAPI/binary-attributes.test index fd9ff12998a3..4c56c01c30aa 100644 --- a/clang/test/InstallAPI/binary-attributes.test +++ b/clang/test/InstallAPI/binary-attributes.test @@ -5,12 +5,14 @@ ; RUN: yaml2obj %S/Inputs/Simple/Simple.yaml -o %t/Simple ; RUN: not clang-installapi -target x86_64h-apple-macos10.12 \ -; RUN: -install_name Simple -current_version 3 -compatibility_version 2 \ +; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \ +; RUN: -current_version 3 -compatibility_version 2 \ ; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=ARCHITECTURE %s ; ARCHITECTURE: error: architectures do not match: 'x86_64h' (provided) vs 'x86_64' (found) ; RUN: not clang-installapi -target x86_64-apple-macos10.12 \ -; RUN: -install_name Simple -current_version 3 -compatibility_version 2 \ +; RUN: -install_name Simple -dynamiclib \ +; RUN: -current_version 3 -compatibility_version 2 \ ; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=INSTALL_NAME %s ; INSTALL_NAME: error: install_name does not match: 'Simple' (provided) vs '/System/Library/Frameworks/Simple.framework/Versions/A/Simple' (found) diff --git a/clang/test/InstallAPI/cpp.test b/clang/test/InstallAPI/cpp.test index 481789909530..e29fb0c7fdb6 100644 --- a/clang/test/InstallAPI/cpp.test +++ b/clang/test/InstallAPI/cpp.test @@ -4,7 +4,7 @@ // Invoke C++ with no-rtti. // RUN: clang-installapi -target arm64-apple-macos13.1 \ -// RUN: -I%t/usr/include -I%t/usr/local/include -x c++ \ +// RUN: -I%t/usr/include -I%t/usr/local/include -x c++ -dynamiclib \ // RUN: -install_name @rpath/lib/libcpp.dylib -fno-rtti \ // RUN: %t/inputs.json -o %t/no-rtti.tbd 2>&1 | FileCheck %s --allow-empty @@ -14,7 +14,7 @@ // Invoke C++ with rtti. // RUN: clang-installapi -target arm64-apple-macos13.1 \ // RUN: -I%t/usr/include -I%t/usr/local/include -x c++ \ -// RUN: -install_name @rpath/lib/libcpp.dylib -frtti \ +// RUN: -install_name @rpath/lib/libcpp.dylib -frtti -dynamiclib \ // RUN: %t/inputs.json -o %t/rtti.tbd 2>&1 | FileCheck %s --allow-empty // RUN: llvm-readtapi -compare %t/rtti.tbd \ // RUN: %t/expected-rtti.tbd 2>&1 | FileCheck %s --allow-empty diff --git a/clang/test/InstallAPI/diagnostics-dsym.test b/clang/test/InstallAPI/diagnostics-dsym.test index c9cbeffef7ba..42fa67a1f9b1 100644 --- a/clang/test/InstallAPI/diagnostics-dsym.test +++ b/clang/test/InstallAPI/diagnostics-dsym.test @@ -7,14 +7,14 @@ // Build a simple dylib with debug info. ; RUN: %clang --target=arm64-apple-macos11 -g -dynamiclib %t/foo.c \ ; RUN: -current_version 1 -compatibility_version 1 -L%t/usr/lib \ -; RUN: -save-temps \ +; RUN: -save-temps -dynamiclib \ ; RUN: -o %t/foo.dylib -install_name %t/foo.dylib ; RUN: dsymutil %t/foo.dylib -o %t/foo.dSYM ; RUN: not clang-installapi -x c++ --target=arm64-apple-macos11 \ ; RUN: -install_name %t/foo.dylib \ ; RUN: -current_version 1 -compatibility_version 1 \ -; RUN: -o %t/output.tbd \ +; RUN: -o %t/output.tbd -dynamiclib \ ; RUN: --verify-against=%t/foo.dylib --dsym=%t/foo.dSYM \ ; RUN: --verify-mode=Pedantic 2>&1 | FileCheck %s diff --git a/clang/test/InstallAPI/directory-scanning-dylib.test b/clang/test/InstallAPI/directory-scanning-dylib.test new file mode 100644 index 000000000000..b81b29c5da9b --- /dev/null +++ b/clang/test/InstallAPI/directory-scanning-dylib.test @@ -0,0 +1,57 @@ +; RUN: rm -rf %t +; RUN: split-file %s %t +; RUN: mkdir -p %t/DstRoot/ +; RUN: cp -r %S/Inputs/LibFoo/* %t/DstRoot/ + +; RUN: clang-installapi \ +; RUN: -target arm64-apple-macos12 -install_name @rpath/libfoo.dylib \ +; RUN: -current_version 1 -compatibility_version 1 \ +; RUN: -I%t/DstRoot/usr/include -dynamiclib \ +; RUN: -exclude-public-header %t/DstRoot/usr/include/public.h \ +; RUN: %t/DstRoot -o %t/output.tbd 2>&1 | FileCheck %s --allow-empty \ +; RUN: --implicit-check-not=error --implicit-check-not=warning +; RUN: llvm-readtapi --compare %t/output.tbd %t/expected.tbd + +# Test expected error by empty directory. +; RUN: mkdir -p %t/EmptyRoot +; RUN: not clang-installapi \ +; RUN: -target arm64-apple-macos12 -install_name @rpath/libfoo.dylib \ +; RUN: -current_version 1 -compatibility_version 1 \ +; RUN: %t/DstRoot/usr/include -dynamiclib \ +; RUN: %t/EmptyRoot -o %t/output.tbd 2>&1 | FileCheck %s --check-prefix=EMPTY + +; EMPTY: could not read directory {{.*}} cannot find any public (usr/include) or private (usr/local/include) header directory + +;--- expected.tbd +{ + "main_library": { + "exported_symbols": [ + { + "text": { + "global": [ + "_foo" + ] + } + } + ], + "flags": [ + { + "attributes": [ + "not_app_extension_safe" + ] + } + ], + "install_names": [ + { + "name": "@rpath/libfoo.dylib" + } + ], + "target_info": [ + { + "min_deployment": "12", + "target": "arm64-macos" + } + ] + }, + "tapi_tbd_version": 5 +} diff --git a/clang/test/InstallAPI/directory-scanning-frameworks.test b/clang/test/InstallAPI/directory-scanning-frameworks.test new file mode 100644 index 000000000000..029a1cdda560 --- /dev/null +++ b/clang/test/InstallAPI/directory-scanning-frameworks.test @@ -0,0 +1,88 @@ +; RUN: rm -rf %t +; RUN: split-file %s %t +; RUN: mkdir -p %t/SDKRoot/System/Library/Frameworks +; RUN: cp -r %S/Inputs/Simple/* %t/SDKRoot/System/Library/Frameworks/ +; RUN: cp -r %S/Inputs/Foundation/* %t/SDKRoot/System/Library/Frameworks/ +# Skip over header that produces warnings. +; RUN: rm %t/SDKRoot/System/Library/Frameworks/Simple.framework/Headers/Simple.h + +; RUN: clang-installapi -target x86_64-apple-macosx10.12 \ +; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \ +; RUN: -current_version 1.2.3 -compatibility_version 1 -o %t/Simple.tbd \ +; RUN: -F %t/SDKRoot/System/Library/Frameworks --verify-mode=ErrorsOnly \ +; RUN: %t/SDKRoot/System/Library/Frameworks/Simple.framework 2>&1 | FileCheck -allow-empty %s \ +; RUN: --implicit-check-not=error --implicit-check-not=warning +; RUN: llvm-readtapi -compare %t/expected.tbd %t/Simple.tbd + +# Test expected error by collecting too many frameworks. +; RUN: not clang-installapi -target x86_64-apple-macosx10.12 \ +; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \ +; RUN: -current_version 1.2.3 -compatibility_version 1 -o %t/Simple.tbd \ +; RUN: -F %t/SDKRoot/System/Library/Frameworks --verify-mode=ErrorsOnly \ +; RUN: %t/SDKRoot/ 2>&1 | FileCheck %s --check-prefix=TOO_MANY + +; TOO_MANY: error: more than one framework/dynamic library found + +;--- expected.tbd +{ + "main_library": { + "current_versions": [ + { + "version": "1.2.3" + } + ], + "exported_symbols": [ + { + "data": { + "global": [ + "_otherFrameworkAPI", + "_otherFrameworkSPI", + "_privateGlobalVariable" + ], + "objc_class": [ + "Basic6", + "Basic1", + "Basic3", + "Basic4_2", + "Basic5", + "Basic9", + "Basic8", + "Basic2", + "Basic4", + "A", + "ExternalManagedObject" + ], + "objc_ivar": [ + "Basic4.ivar2", + "Basic4_2.ivar1", + "Basic6.ivar1", + "Basic4.ivar1", + "Basic4_2.ivar2" + ], + "weak": [ + "_weakPrivateGlobalVariable" + ] + } + } + ], + "flags": [ + { + "attributes": [ + "not_app_extension_safe" + ] + } + ], + "install_names": [ + { + "name": "/System/Library/Frameworks/Simple.framework/Versions/A/Simple" + } + ], + "target_info": [ + { + "min_deployment": "10.12", + "target": "x86_64-macos" + } + ] + }, + "tapi_tbd_version": 5 +} diff --git a/clang/test/InstallAPI/functions.test b/clang/test/InstallAPI/functions.test index 5b5fd1308842..a50a6a53e100 100644 --- a/clang/test/InstallAPI/functions.test +++ b/clang/test/InstallAPI/functions.test @@ -3,7 +3,7 @@ // RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json // RUN: clang-installapi -target arm64-apple-macos13.1 \ -// RUN: -I%t/usr/include -I%t/usr/local/include \ +// RUN: -I%t/usr/include -I%t/usr/local/include -dynamiclib \ // RUN: -install_name @rpath/lib/libfunctions.dylib --filetype=tbd-v4 \ // RUN: %t/inputs.json -o %t/outputs.tbd 2>&1 | FileCheck %s --allow-empty // RUN: llvm-readtapi -compare %t/outputs.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty diff --git a/clang/test/InstallAPI/variables.test b/clang/test/InstallAPI/variables.test index 6272867911f1..159158a6b91e 100644 --- a/clang/test/InstallAPI/variables.test +++ b/clang/test/InstallAPI/variables.test @@ -4,7 +4,7 @@ /// Check multiple targets are captured. // RUN: clang-installapi -target arm64-apple-macos13.1 -target arm64e-apple-macos13.1 \ -// RUN: -fapplication-extension -install_name /usr/lib/vars.dylib \ +// RUN: -fapplication-extension -install_name /usr/lib/vars.dylib -dynamiclib \ // RUN: %t/vars_inputs.json -o %t/vars.tbd 2>&1 | FileCheck %s --allow-empty // RUN: llvm-readtapi -compare %t/vars.tbd %t/expected.tbd 2>&1 | FileCheck %s --allow-empty |
