|
| 1 | +// REQUIRES: objc_interop |
| 2 | +// |
| 3 | +// RUN: %empty-directory(%t) |
| 4 | +// |
| 5 | +// ----------------------------------------------------------------------------- |
| 6 | +// --- Prepare SDK (.swiftmodule). |
| 7 | +// RUN: %empty-directory(%t/SDK) |
| 8 | +// |
| 9 | + |
| 10 | +// --- Build original high level framework. |
| 11 | +// RUN: mkdir -p %t/SDK/Frameworks/HighLevel.framework/Modules/HighLevel.swiftmodule |
| 12 | +// RUN: %target-build-swift-dylib(%t/SDK/Frameworks/HighLevel.framework/HighLevel) -module-name HighLevel -emit-module \ |
| 13 | +// RUN: -emit-module-path %t/SDK/Frameworks/HighLevel.framework/Modules/HighLevel.swiftmodule/%module-target-triple.swiftmodule \ |
| 14 | +// RUN: %S/Inputs/SymbolMove/HighLevelOriginal.swift -Xlinker -install_name -Xlinker @rpath/HighLevel.framework/HighLevel |
| 15 | + |
| 16 | +// --- Build an executable using the original high level framework |
| 17 | +// RUN: %target-build-swift -emit-executable %s -g -o %t/HighlevelRunner -F %t/SDK/Frameworks/ -framework HighLevel \ |
| 18 | +// RUN: -Xlinker -rpath -Xlinker %t/SDK/Frameworks |
| 19 | + |
| 20 | +// --- Run the executable |
| 21 | +// RUN: %t/HighlevelRunner | %FileCheck %s -check-prefix=BEFORE_MOVE |
| 22 | + |
| 23 | +// --- Build low level framework. |
| 24 | +// RUN: mkdir -p %t/SDK/Frameworks/LowLevel.framework/Modules/LowLevel.swiftmodule |
| 25 | +// RUN: %target-build-swift-dylib(%t/SDK/Frameworks/LowLevel.framework/LowLevel) -module-name LowLevel -emit-module \ |
| 26 | +// RUN: -emit-module-path %t/SDK/Frameworks/LowLevel.framework/Modules/LowLevel.swiftmodule/%module-target-triple.swiftmodule \ |
| 27 | +// RUN: %S/Inputs/SymbolMove/LowLevel.swift -Xlinker -install_name -Xlinker @rpath/LowLevel.framework/LowLevel |
| 28 | + |
| 29 | +// --- Build high level framework. |
| 30 | +// RUN: mkdir -p %t/SDK/Frameworks/HighLevel.framework/Modules/HighLevel.swiftmodule |
| 31 | +// RUN: %target-build-swift-dylib(%t/SDK/Frameworks/HighLevel.framework/HighLevel) -module-name HighLevel -emit-module \ |
| 32 | +// RUN: -emit-module-path %t/SDK/Frameworks/HighLevel.framework/Modules/HighLevel.swiftmodule/%module-target-triple.swiftmodule \ |
| 33 | +// RUN: %S/Inputs/SymbolMove/HighLevel.swift -F %t/SDK/Frameworks -Xlinker -reexport_framework -Xlinker LowLevel |
| 34 | + |
| 35 | +// --- Run the executable |
| 36 | +// RUN: %t/HighlevelRunner | %FileCheck %s -check-prefix=AFTER_MOVE |
| 37 | + |
| 38 | +import HighLevel |
| 39 | + |
| 40 | +printMessage() |
| 41 | +printMessageMoved() |
| 42 | + |
| 43 | +// BEFORE_MOVE: Hello from HighLevel |
| 44 | +// BEFORE_MOVE: Hello from HighLevel |
| 45 | +// AFTER_MOVE: Hello from LowLevel |
| 46 | +// AFTER_MOVE: Hello from LowLevel |
| 47 | + |
| 48 | +let e = Entity() |
| 49 | +print(e.location()) |
| 50 | +// BEFORE_MOVE: Entity from HighLevel |
| 51 | +// AFTER_MOVE: Entity from LowLevel |
0 commit comments