Skip to content

Commit 502f530

Browse files
committed
[test] Add test cases for Swift module completion after 'import'
1 parent 8773fe3 commit 502f530

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
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

Comments
 (0)