xref: /llvm-project/clang/test/InstallAPI/binary-attributes.test (revision feed66f3eae5006bb05e6cb34801930fd940daa8)
127b2d7d4SCyndy Ishida; RUN: rm -rf %t
227b2d7d4SCyndy Ishida; RUN: split-file %s %t
327b2d7d4SCyndy Ishida; RUN: mkdir -p %t/System/Library/Frameworks
427b2d7d4SCyndy Ishida; RUN: cp -r %S/Inputs/Simple/Simple.framework %t/System/Library/Frameworks/
527b2d7d4SCyndy Ishida; RUN: yaml2obj %S/Inputs/Simple/Simple.yaml -o %t/Simple
627b2d7d4SCyndy Ishida
727b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64h-apple-macos10.12 \
8*feed66f3SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
9*feed66f3SCyndy Ishida; RUN: -current_version 3 -compatibility_version 2 \
1027b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=ARCHITECTURE %s
1127b2d7d4SCyndy Ishida; ARCHITECTURE: error: architectures do not match: 'x86_64h' (provided) vs 'x86_64' (found)
1227b2d7d4SCyndy Ishida
1327b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
14*feed66f3SCyndy Ishida; RUN: -install_name Simple -dynamiclib \
15*feed66f3SCyndy Ishida; RUN: -current_version 3 -compatibility_version 2 \
1627b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=INSTALL_NAME %s
1727b2d7d4SCyndy Ishida; INSTALL_NAME: error: install_name does not match: 'Simple' (provided) vs '/System/Library/Frameworks/Simple.framework/Versions/A/Simple' (found)
1827b2d7d4SCyndy Ishida
1927b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
2027b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
2127b2d7d4SCyndy Ishida; RUN: -current_version 3 -compatibility_version 2 \
2227b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=CURRENT_VERSION %s
2327b2d7d4SCyndy Ishida; CURRENT_VERSION: error: current_version does not match: '3' (provided) vs '1.2.3' (found)
2427b2d7d4SCyndy Ishida
2527b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
2627b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
2727b2d7d4SCyndy Ishida; RUN: -current_version 1.2.3  -compatibility_version 2 \
2827b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=COMPATIBILITY_VERSION %s
2927b2d7d4SCyndy Ishida; COMPATIBILITY_VERSION: error: compatibility_version does not match: '2' (provided) vs '1' (found)
3027b2d7d4SCyndy Ishida
3127b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
3227b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
3327b2d7d4SCyndy Ishida; RUN: -current_version 1.2.3  -compatibility_version 1 -fapplication-extension \
3427b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=APPEXTSAFE %s
35b49ce9c3SAaron Ballman; APPEXTSAFE: error: the ApplicationExtensionSafe flag does not match: 'true' (provided) vs 'false' (found)
3627b2d7d4SCyndy Ishida
3727b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
3827b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
3927b2d7d4SCyndy Ishida; RUN: -current_version 1.2.3  -compatibility_version 1 -not_for_dyld_shared_cache \
4027b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=SHARED_CACHE %s
41b49ce9c3SAaron Ballman; SHARED_CACHE: error: the NotForDyldSharedCache flag does not match: 'true' (provided) vs 'false' (found)
4227b2d7d4SCyndy Ishida
4327b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
4427b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
4527b2d7d4SCyndy Ishida; RUN: -current_version 1.2.3  -compatibility_version 1 \
4627b2d7d4SCyndy Ishida; RUN: -allowable_client Foo -allowable_client Bar \
4727b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=ALLOWABLE %s
48515269b0SCyndy Ishida; ALLOWABLE: error: allowable client missing from binary file: '{{Foo|Bar}} [ x86_64 ]'
4927b2d7d4SCyndy Ishida
5027b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
5127b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
5227b2d7d4SCyndy Ishida; RUN: -current_version 1.2.3  -compatibility_version 1 -reexport_library %t/Foo.tbd \
5327b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=REEXPORT %s
5427b2d7d4SCyndy Ishida; REEXPORT: error: re-exported library missing from binary file: 'Foo [ x86_64 ]'
5527b2d7d4SCyndy Ishida
5627b2d7d4SCyndy Ishida; RUN: not clang-installapi -target x86_64-apple-macos10.12 \
5727b2d7d4SCyndy Ishida; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
5827b2d7d4SCyndy Ishida; RUN: -current_version 1.2.3  -compatibility_version 1 -umbrella Bogus \
5927b2d7d4SCyndy Ishida; RUN: -o tmp.tbd --verify-against=%t/Simple 2>&1 | FileCheck -check-prefix=UMBRELLA %s
6027b2d7d4SCyndy Ishida; UMBRELLA: error: parent umbrella missing from binary file: 'Bogus'
6127b2d7d4SCyndy Ishida
6227b2d7d4SCyndy Ishida;--- Foo.tbd
6327b2d7d4SCyndy Ishida{
6427b2d7d4SCyndy Ishida  "main_library": {
6527b2d7d4SCyndy Ishida    "install_names": [
6627b2d7d4SCyndy Ishida      {
6727b2d7d4SCyndy Ishida        "name": "Foo"
6827b2d7d4SCyndy Ishida      }
6927b2d7d4SCyndy Ishida    ],
7027b2d7d4SCyndy Ishida    "target_info": [
7127b2d7d4SCyndy Ishida      {
7227b2d7d4SCyndy Ishida        "min_deployment": "13.0",
7327b2d7d4SCyndy Ishida        "target": "arm64-macos"
7427b2d7d4SCyndy Ishida      }
7527b2d7d4SCyndy Ishida    ]
7627b2d7d4SCyndy Ishida  },
7727b2d7d4SCyndy Ishida  "tapi_tbd_version": 5
7827b2d7d4SCyndy Ishida}
79