|
| 1 | +// REQUIRES: OS=macosx || OS=linux-gnu |
| 2 | +// REQUIRES: CPU=x86_64 |
| 3 | + |
| 4 | +// RUN: %empty-directory(%t) |
| 5 | +// RUN: mkdir -p %t/Frameworks |
| 6 | +// RUN: mkdir -p %t/Modules |
| 7 | + |
| 8 | +// RUN: mkdir -p %t/Frameworks/MacAndLinuxInterfaceFW.framework/Modules/MacAndLinuxInterfaceFW.swiftmodule/ |
| 9 | +// RUN: touch %t/Frameworks/MacAndLinuxInterfaceFW.framework/Modules/MacAndLinuxInterfaceFW.swiftmodule/x86_64-apple-macos.swiftinterface |
| 10 | +// RUN: touch %t/Frameworks/MacAndLinuxInterfaceFW.framework/Modules/MacAndLinuxInterfaceFW.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| 11 | + |
| 12 | +// RUN: mkdir -p %t/Frameworks/MacAndLinuxSerializedFW.framework/Modules/MacAndLinuxSerializedFW.swiftmodule/ |
| 13 | +// RUN: touch %t/Frameworks/MacAndLinuxSerializedFW.framework/Modules/MacAndLinuxSerializedFW.swiftmodule/x86_64-apple-macos.swiftmodule |
| 14 | +// RUN: touch %t/Frameworks/MacAndLinuxSerializedFW.framework/Modules/MacAndLinuxSerializedFW.swiftmodule/x86_64-unknown-linux-gnu.swiftmodule |
| 15 | + |
| 16 | +// Not-matching target. |
| 17 | +// RUN: mkdir -p %t/Frameworks/IosInterfaceFW.framework/Modules/IosInterfaceFW.swiftmodule/ |
| 18 | +// RUN: touch %t/Frameworks/IosInterfaceFW.framework/Modules/IosInterfaceFW.swiftmodule/arm64-apple-ios.swiftinterface |
| 19 | + |
| 20 | +// Invalid - Framework must be target specific. |
| 21 | +// RUN: mkdir -p %t/Frameworks/NonTargetInterfaceFW.framework/Modules/ |
| 22 | +// RUN: touch %t/Frameworks/NonTargetInterfaceFW.framework/Modules/NonTargetInterfaceFW.swiftinterface |
| 23 | + |
| 24 | +// Invalid - Framework must be target specific. |
| 25 | +// RUN: mkdir -p %t/Frameworks/NonTargetSerializedFW.framework/Modules/ |
| 26 | +// RUN: touch %t/Frameworks/NonTargetSerializedFW.framework/Modules/NonTargetSerializedFW.swiftmodule |
| 27 | + |
| 28 | +// RUN: mkdir -p %t/Modules/MacAndLinuxInterfaceMod.swiftmodule/ |
| 29 | +// RUN: touch %t/Modules/MacAndLinuxInterfaceMod.swiftmodule/x86_64-apple-macos.swiftinterface |
| 30 | +// RUN: touch %t/Modules/MacAndLinuxInterfaceMod.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| 31 | + |
| 32 | +// RUN: mkdir -p %t/Modules/MacAndLinuxSerializedMod.swiftmodule/ |
| 33 | +// RUN: touch %t/Modules/MacAndLinuxSerializedMod.swiftmodule/x86_64-apple-macos.swiftmodule |
| 34 | +// RUN: touch %t/Modules/MacAndLinuxSerializedMod.swiftmodule/x86_64-unknown-linux-gnu.swiftmodule |
| 35 | + |
| 36 | +// Non-matching target. |
| 37 | +// RUN: mkdir -p %t/Modules/IosInterfaceMod.swiftmodule |
| 38 | +// RUN: touch %t/Modules/IosInterfaceMod.swiftmodule/arm64-apple-ios.swiftinterface |
| 39 | + |
| 40 | +// RUN: touch %t/Modules/NonTargetInterfaceMod.swiftinterface |
| 41 | +// RUN: touch %t/Modules/NonTargetSerializedMod.swiftmodule |
| 42 | + |
| 43 | +// Invalid - '.swiftinterface' directory. |
| 44 | +// RUN: mkdir -p %t/Modules/DirInterfaceMod.swiftinterface |
| 45 | +// RUN: touch %t/Modules/DirInterfaceMod.swiftinterface/x86_64-apple-macos.swiftinterface |
| 46 | +// RUN: touch %t/Modules/DirInterfaceMod.swiftinterface/x86_64-unknown-linux-gnu.swiftinterface |
| 47 | + |
| 48 | +// Invalid - Empty directory. |
| 49 | +// RUN: mkdir -p %t/Modules/EmptyDirInterfaceMod.swiftinterface |
| 50 | +// RUN: mkdir -p %t/Modules/EmptyDirSerializedMod.swiftmodule |
| 51 | + |
| 52 | +// Invalid - Not a module. |
| 53 | +// RUN: touch %t/Modules/UnrelatedFile.dat |
| 54 | + |
| 55 | +// Invalid - Serialized in -F directory. |
| 56 | +// RUN: touch %t/Frameworks/ModuleInFrameworkDir.swiftmodule |
| 57 | + |
| 58 | +// Invalid - Framework in -I directory. |
| 59 | +// RUN: mkdir -p %t/Modules/FrameworkInModuleDir.framework/Modules/FrameworkInModuleDir.swiftmodule/ |
| 60 | +// RUN: touch %t/Modules/FrameworkInModuleDir.framework/Modules/FrameworkInModuleDir.swiftmodule/x86_64-apple-macos.swiftinterface |
| 61 | +// RUN: touch %t/Modules/FrameworkInModuleDir.framework/Modules/FrameworkInModuleDir.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| 62 | + |
| 63 | +// Invalid - FrameworkName/SerializedName mismatch |
| 64 | +// RUN: mkdir -p %t/Frameworks/NameMismatchFW.framework/Modules/MismatchNameFW.swiftmodule/ |
| 65 | +// RUN: touch %t/Frameworks/NameMismatchFW.framework/Modules/MismatchNameFW.swiftmodule/x86_64-apple-macos.swiftinterface |
| 66 | +// RUN: touch %t/Frameworks/NameMismatchFW.framework/Modules/MismatchNameFW.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| 67 | + |
| 68 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=COMPLETE -F %t/Frameworks -sdk %t -I %t/Modules | %FileCheck %s |
| 69 | + |
| 70 | +// CHECK-NOT: IosInterfaceFW |
| 71 | +// CHECK-NOT: NonTargetInterfaceFW |
| 72 | +// CHECK-NOT: NonTargetSerializedFW |
| 73 | +// CHECK-NOT: IosInterfaceMod |
| 74 | +// CHECK-NOT: DirInterfaceMod |
| 75 | +// CHECK-NOT: EmptyDirInterfaceMod |
| 76 | +// CHECK-NOT: EmptyDirSerializedMod |
| 77 | +// CHECK-NOT: UnrelatedFile |
| 78 | +// CHECK-NOT: ModuleInFrameworkDir |
| 79 | +// CHECK-NOT: FrameworkInModuleDir |
| 80 | +// CHECK-NOT: NameMismatchFW |
| 81 | +// CHECK-NOT: MismatchNameFW |
| 82 | + |
| 83 | +// CHECK-DAG: MacAndLinuxInterfaceFW[#Module#] |
| 84 | +// CHECK-DAG: MacAndLinuxSerializedFW[#Module#] |
| 85 | +// CHECK-DAG: MacAndLinuxInterfaceMod[#Module#] |
| 86 | +// CHECK-DAG: MacAndLinuxSerializedMod[#Module#] |
| 87 | +// CHECK-DAG: NonTargetInterfaceMod[#Module#] |
| 88 | +// CHECK-DAG: NonTargetSerializedMod[#Module#] |
| 89 | + |
| 90 | +// CHECK-DAG: Swift[#Module#] |
| 91 | + |
| 92 | +import #^COMPLETE^# |
0 commit comments