
A zippered framework is a single framework that can be loaded in both macOS and macatalyst processes. Broadly to InstallAPI, it means the same interface can represent two separate platforms. A dylib's symbol table does not distinguish between macOS/macCatalyst. `InstallAPI` provides the ability for the tbd file to distinct symbols between them. The verifier handles this special logic by tracking all unavailable and obsoleted APIs in this context and checking against those when determining dylib symbols with no matching declaration. * If there exists an available decl for either platform, do not warn. * If there is no available decl, emit a diagnostic and print the source location for both decls.
29 lines
1.6 KiB
Plaintext
29 lines
1.6 KiB
Plaintext
/// Check non-darwin triple is rejected.
|
|
// RUN: not clang-installapi -target x86_64-unknown-unknown %s -o tmp.tbd 2> %t
|
|
// RUN: FileCheck --check-prefix INVALID_INSTALLAPI -input-file %t %s
|
|
// INVALID_INSTALLAPI: error: unsupported option 'installapi' for target 'x86_64-unknown-unknown'
|
|
|
|
/// Check that missing install_name is reported.
|
|
// RUN: not clang-installapi -target x86_64-apple-ios-simulator %s -o tmp.tbd 2> %t
|
|
// RUN: FileCheck --check-prefix INVALID_INSTALL_NAME -input-file %t %s
|
|
// INVALID_INSTALL_NAME: error: no install name specified: add -install_name <path>
|
|
|
|
/// Check invalid verification mode.
|
|
// RUN: not clang-installapi -install_name Foo -target arm64-apple-ios13 \
|
|
// RUN: --verify-mode=Invalid -o tmp.tbd 2> %t
|
|
// RUN: FileCheck --check-prefix INVALID_VERIFY_MODE -input-file %t %s
|
|
// INVALID_VERIFY_MODE: error: invalid value 'Invalid' in '--verify-mode=Invalid'
|
|
|
|
/// Check that invalid sysroot is fatal.
|
|
// RUN: not clang-installapi -install_name Foo -target arm64-apple-ios13 \
|
|
// RUN: -isysroot /no/such/path -o tmp.tbd 2> %t
|
|
// RUN: FileCheck --check-prefix INVALID_ISYSROOT -input-file %t %s
|
|
// INVALID_ISYSROOT: error: no such sysroot directory: {{.*}}no/such/path'
|
|
|
|
/// Check invalid target-variant.
|
|
// RUN: not clang-installapi -target x86_64-apple-macosx12 \
|
|
// RUN: -darwin-target-variant arm64-apple-ios15-macabi \
|
|
// RUN: -install_name tmp.dylib -o tmp.tbd 2> %t
|
|
// RUN: FileCheck --check-prefix INVALID_TARGET_VARIANT -input-file %t %s
|
|
// INVALID_TARGET_VARIANT: error: no matching target found for target variant 'arm64-apple-ios15-macabi'
|