|
| 1 | +// RUN: %empty-directory(%t) |
| 2 | +// RUN: %empty-directory(%t/cache) |
| 3 | +// REQUIRES: VENDOR=apple |
| 4 | + |
| 5 | +/// Prepare the SDK. |
| 6 | +// RUN: cp -r %S/../Sema/Inputs/public-private-sdk %t/sdk |
| 7 | +// RUN: %target-swift-frontend -emit-module -module-name PublicSwift -enable-library-evolution -swift-version 5 \ |
| 8 | +// RUN: %t/sdk/System/Library/Frameworks/PublicSwift.framework/Modules/PublicSwift.swiftmodule/source.swift \ |
| 9 | +// RUN: -o %t/sdk/System/Library/Frameworks/PublicSwift.framework/Modules/PublicSwift.swiftmodule/%target-swiftmodule-name \ |
| 10 | +// RUN: -emit-module-interface-path %t/sdk/System/Library/Frameworks/PublicSwift.framework/Modules/PublicSwift.swiftmodule/%target-swiftinterface-name |
| 11 | +// RUN: %target-swift-typecheck-module-from-interface(%t/sdk/System/Library/Frameworks/PublicSwift.framework/Modules/PublicSwift.swiftmodule/%target-swiftinterface-name) -module-name PublicSwift |
| 12 | +// RUN: %target-swift-frontend -emit-module -module-name PrivateSwift -enable-library-evolution -swift-version 5 \ |
| 13 | +// RUN: %t/sdk/System/Library/PrivateFrameworks/PrivateSwift.framework/Modules/PrivateSwift.swiftmodule/source.swift \ |
| 14 | +// RUN: -o %t/sdk/System/Library/PrivateFrameworks/PrivateSwift.framework/Modules/PrivateSwift.swiftmodule/%target-swiftmodule-name \ |
| 15 | +// RUN: -emit-module-interface-path %t/sdk/System/Library/PrivateFrameworks/PrivateSwift.framework/Modules/PrivateSwift.swiftmodule/%target-swiftinterface-name |
| 16 | +// RUN: %target-swift-typecheck-module-from-interface(%t/sdk/System/Library/PrivateFrameworks/PrivateSwift.framework/Modules/PrivateSwift.swiftmodule/%target-swiftinterface-name) -module-name PrivateSwift |
| 17 | + |
| 18 | +/// Break the swiftmodules. |
| 19 | +// RUN: echo "This is a malformed swiftmodule" > %t/sdk/System/Library/Frameworks/PublicSwift.framework/Modules/PublicSwift.swiftmodule/%target-swiftmodule-name |
| 20 | +// RUN: echo "This is a malformed swiftmodule" > %t/sdk/System/Library/PrivateFrameworks/PrivateSwift.framework/Modules/PrivateSwift.swiftmodule/%target-swiftmodule-name |
| 21 | + |
| 22 | +/// There should be no attempt at loading the malformed PublicSwift swiftmodule. |
| 23 | +/// This means no notes about: |
| 24 | +/// * compiled module is out of date |
| 25 | +/// * unable to load compiled module '*': malformed |
| 26 | +// RUN: %target-swift-frontend -typecheck %s -sdk %t/sdk \ |
| 27 | +// RUN: -module-name Main -module-cache-path %t/cache \ |
| 28 | +// RUN: -F %t/sdk/System/Library/PrivateFrameworks/ \ |
| 29 | +// RUN: -verify -Rmodule-interface-rebuild |
| 30 | + |
| 31 | +import PublicSwift // expected-remark {{rebuilding module 'PublicSwift' from interface}} |
| 32 | + |
| 33 | +// The private adjacent module under PrivateFrameworks should still be tried first, and then rebuilt. |
| 34 | +import PrivateSwift |
| 35 | +// expected-remark @-1 {{rebuilding module 'PrivateSwift' from interface}} |
| 36 | +// expected-note @-2 {{compiled module is out of date}} |
| 37 | +// expected-note @-3 {{: malformed}} |
0 commit comments