| // REQUIRES: OS=macosx || OS=linux-gnu |
| // REQUIRES: CPU=x86_64 |
| |
| // RUN: %empty-directory(%t) |
| // RUN: mkdir -p %t/Frameworks |
| // RUN: mkdir -p %t/Modules |
| |
| // RUN: mkdir -p %t/Frameworks/MacAndLinuxInterfaceFW.framework/Modules/MacAndLinuxInterfaceFW.swiftmodule/ |
| // RUN: touch %t/Frameworks/MacAndLinuxInterfaceFW.framework/Modules/MacAndLinuxInterfaceFW.swiftmodule/x86_64-apple-macos.swiftinterface |
| // RUN: touch %t/Frameworks/MacAndLinuxInterfaceFW.framework/Modules/MacAndLinuxInterfaceFW.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| |
| // RUN: mkdir -p %t/Frameworks/MacAndLinuxSerializedFW.framework/Modules/MacAndLinuxSerializedFW.swiftmodule/ |
| // RUN: touch %t/Frameworks/MacAndLinuxSerializedFW.framework/Modules/MacAndLinuxSerializedFW.swiftmodule/x86_64-apple-macos.swiftmodule |
| // RUN: touch %t/Frameworks/MacAndLinuxSerializedFW.framework/Modules/MacAndLinuxSerializedFW.swiftmodule/x86_64-unknown-linux-gnu.swiftmodule |
| |
| // Not-matching target. |
| // RUN: mkdir -p %t/Frameworks/IosInterfaceFW.framework/Modules/IosInterfaceFW.swiftmodule/ |
| // RUN: touch %t/Frameworks/IosInterfaceFW.framework/Modules/IosInterfaceFW.swiftmodule/arm64-apple-ios.swiftinterface |
| |
| // Invalid - Framework must be target specific. |
| // RUN: mkdir -p %t/Frameworks/NonTargetInterfaceFW.framework/Modules/ |
| // RUN: touch %t/Frameworks/NonTargetInterfaceFW.framework/Modules/NonTargetInterfaceFW.swiftinterface |
| |
| // Invalid - Framework must be target specific. |
| // RUN: mkdir -p %t/Frameworks/NonTargetSerializedFW.framework/Modules/ |
| // RUN: touch %t/Frameworks/NonTargetSerializedFW.framework/Modules/NonTargetSerializedFW.swiftmodule |
| |
| // RUN: mkdir -p %t/Modules/MacAndLinuxInterfaceMod.swiftmodule/ |
| // RUN: touch %t/Modules/MacAndLinuxInterfaceMod.swiftmodule/x86_64-apple-macos.swiftinterface |
| // RUN: touch %t/Modules/MacAndLinuxInterfaceMod.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| |
| // RUN: mkdir -p %t/Modules/MacAndLinuxSerializedMod.swiftmodule/ |
| // RUN: touch %t/Modules/MacAndLinuxSerializedMod.swiftmodule/x86_64-apple-macos.swiftmodule |
| // RUN: touch %t/Modules/MacAndLinuxSerializedMod.swiftmodule/x86_64-unknown-linux-gnu.swiftmodule |
| |
| // Non-matching target. |
| // RUN: mkdir -p %t/Modules/IosInterfaceMod.swiftmodule |
| // RUN: touch %t/Modules/IosInterfaceMod.swiftmodule/arm64-apple-ios.swiftinterface |
| |
| // RUN: touch %t/Modules/NonTargetInterfaceMod.swiftinterface |
| // RUN: touch %t/Modules/NonTargetSerializedMod.swiftmodule |
| |
| // Invalid - '.swiftinterface' directory. |
| // RUN: mkdir -p %t/Modules/DirInterfaceMod.swiftinterface |
| // RUN: touch %t/Modules/DirInterfaceMod.swiftinterface/x86_64-apple-macos.swiftinterface |
| // RUN: touch %t/Modules/DirInterfaceMod.swiftinterface/x86_64-unknown-linux-gnu.swiftinterface |
| |
| // Invalid - Empty directory. |
| // RUN: mkdir -p %t/Modules/EmptyDirInterfaceMod.swiftinterface |
| // RUN: mkdir -p %t/Modules/EmptyDirSerializedMod.swiftmodule |
| |
| // Invalid - Not a module. |
| // RUN: touch %t/Modules/UnrelatedFile.dat |
| |
| // Invalid - Serialized in -F directory. |
| // RUN: touch %t/Frameworks/ModuleInFrameworkDir.swiftmodule |
| |
| // Invalid - Framework in -I directory. |
| // RUN: mkdir -p %t/Modules/FrameworkInModuleDir.framework/Modules/FrameworkInModuleDir.swiftmodule/ |
| // RUN: touch %t/Modules/FrameworkInModuleDir.framework/Modules/FrameworkInModuleDir.swiftmodule/x86_64-apple-macos.swiftinterface |
| // RUN: touch %t/Modules/FrameworkInModuleDir.framework/Modules/FrameworkInModuleDir.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| |
| // Invalid - FrameworkName/SerializedName mismatch |
| // RUN: mkdir -p %t/Frameworks/NameMismatchFW.framework/Modules/MismatchNameFW.swiftmodule/ |
| // RUN: touch %t/Frameworks/NameMismatchFW.framework/Modules/MismatchNameFW.swiftmodule/x86_64-apple-macos.swiftinterface |
| // RUN: touch %t/Frameworks/NameMismatchFW.framework/Modules/MismatchNameFW.swiftmodule/x86_64-unknown-linux-gnu.swiftinterface |
| |
| // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=COMPLETE -F %t/Frameworks -sdk %t -I %t/Modules | %FileCheck %s |
| |
| // CHECK: Begin completion |
| // CHECK-NOT: IosInterfaceFW[#Module#] |
| // CHECK-NOT: NonTargetInterfaceFW[#Module#] |
| // CHECK-NOT: NonTargetSerializedFW[#Module#] |
| // CHECK-NOT: IosInterfaceMod[#Module#] |
| // CHECK-NOT: DirInterfaceMod[#Module#] |
| // CHECK-NOT: EmptyDirInterfaceMod[#Module#] |
| // CHECK-NOT: EmptyDirSerializedMod[#Module#] |
| // CHECK-NOT: UnrelatedFile[#Module#] |
| // CHECK-NOT: ModuleInFrameworkDir[#Module#] |
| // CHECK-NOT: FrameworkInModuleDir[#Module#] |
| // CHECK-NOT: NameMismatchFW[#Module#] |
| // CHECK-NOT: MismatchNameFW[#Module#] |
| // CHECK-NOT: SwiftOnoneSupport[#Module#] |
| // CHECK-NOT: Builtin[#Module#] |
| // CHECK-NOT: Module[_ |
| |
| // CHECK-DAG: MacAndLinuxInterfaceFW[#Module#] |
| // CHECK-DAG: MacAndLinuxSerializedFW[#Module#] |
| // CHECK-DAG: MacAndLinuxInterfaceMod[#Module#] |
| // CHECK-DAG: MacAndLinuxSerializedMod[#Module#] |
| // CHECK-DAG: NonTargetInterfaceMod[#Module#] |
| // CHECK-DAG: NonTargetSerializedMod[#Module#] |
| |
| // CHECK-DAG: Swift[#Module#] |
| // CHECK: End completion |
| |
| import #^COMPLETE^# |