forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomplete_checkdeps_ownfile.swift
99 lines (80 loc) · 3.2 KB
/
complete_checkdeps_ownfile.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
// BEGIN State1.swift
import ClangFW
import SwiftFW
func foo(val: MyStruct) {
/*HERE*/
}
// BEGIN State2.swift
import ClangFW
import SwiftFW
func foo(val: MyStruct) {
val./*HERE*/
}
// BEGIN DUMMY.swift
// Checks that editing and saving the current file doesn't affect dependency checking.
// REQUIRES: shell
// RUN: %empty-directory(%t)
// RUN: %empty-directory(%t/Frameworks)
// RUN: %empty-directory(%t/MyProject)
// RUN: %{python} %utils/split_file.py -o %t %s
// RUN: COMPILER_ARGS=( \
// RUN: -target %target-triple \
// RUN: -module-name MyProject \
// RUN: -F %t/Frameworks \
// RUN: -I %t/MyProject \
// RUN: -import-objc-header %t/MyProject/Bridging.h \
// RUN: %t/MyProject/Library.swift \
// RUN: %t/test.swift \
// RUN: )
// RUN: INPUT_DIR=%S/Inputs/checkdeps
// RUN: cp -R $INPUT_DIR/MyProject %t/
// RUN: cp -R $INPUT_DIR/ClangFW.framework %t/Frameworks/
// RUN: %empty-directory(%t/Frameworks/SwiftFW.framework/Modules/SwiftFW.swiftmodule)
// RUN: %target-swift-frontend -emit-module -module-name SwiftFW -o %t/Frameworks/SwiftFW.framework/Modules/SwiftFW.swiftmodule/%target-swiftmodule-name $INPUT_DIR/SwiftFW_src/Funcs.swift
// RUN: cp %t/State1.swift %t/test.swift
// RUN: touch -t 202001010101 %t/test.swift
// RUN: %sourcekitd-test \
// RUN: -req=global-config -req-opts=completion_check_dependency_interval=0 == \
// RUN: -shell -- echo "### Initial" == \
// RUN: -req=complete -pos=5:4 %t/test.swift -- ${COMPILER_ARGS[@]} == \
// RUN: -shell -- echo "### Modify own file - 1" == \
// RUN: -shell -- cp %t/State2.swift %t/test.swift == \
// RUN: -shell -- touch -t 210001010101 %t/test.swift == \
// RUN: -req=complete -pos=5:9 %t/test.swift -- ${COMPILER_ARGS[@]} == \
// RUN: -shell -- echo "### Modify own file - 2" == \
// RUN: -shell -- cp %t/State1.swift %t/test.swift == \
// RUN: -shell -- touch -t 210001010102 %t/test.swift == \
// RUN: -req=complete -pos=5:4 %t/test.swift -- ${COMPILER_ARGS[@]} == \
// RUN: -shell -- echo "### Modify own file - 3" == \
// RUN: -shell -- cp %t/State2.swift %t/test.swift == \
// RUN: -shell -- touch -t 210001010103 %t/test.swift == \
// RUN: -req=complete -pos=5:9 %t/test.swift -- ${COMPILER_ARGS[@]} \
// RUN: | %FileCheck %s
// CHECK-LABEL: ### Initial
// CHECK: key.results: [
// CHECK-DAG: key.description: "clangFWFunc()"
// CHECK-DAG: key.description: "swiftFWFunc()"
// CHECK-DAG: key.description: "localClangFunc()"
// CHECK-DAG: key.description: "localSwiftFunc()"
// CHECK: ]
// CHECK-NOT: key.reusingastcontext: 1
// CHECK-LABEL: ### Modify own file - 1
// CHECK: key.results: [
// CHECK-DAG: key.description: "myStructMethod()"
// CHECK-DAG: key.description: "self"
// CHECK: ]
// CHECK: key.reusingastcontext: 1
// CHECK-LABEL: ### Modify own file - 2
// CHECK: key.results: [
// CHECK-DAG: key.description: "clangFWFunc()"
// CHECK-DAG: key.description: "swiftFWFunc()"
// CHECK-DAG: key.description: "localClangFunc()"
// CHECK-DAG: key.description: "localSwiftFunc()"
// CHECK: ]
// CHECK: key.reusingastcontext: 1
// CHECK-LABEL: ### Modify own file - 3
// CHECK: key.results: [
// CHECK-DAG: key.description: "myStructMethod()"
// CHECK-DAG: key.description: "self"
// CHECK: ]
// CHECK: key.reusingastcontext: 1