Skip to content

Commit 0767e20

Browse files
committed
[Distributed] NFC: Update _remoteCall test-case to check multiple different result types
1 parent 770fd7a commit 0767e20

File tree

1 file changed

+70
-4
lines changed

1 file changed

+70
-4
lines changed

test/Distributed/Runtime/distributed_actor_remoteCall.swift

Lines changed: 70 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,37 @@
1818
import _Distributed
1919

2020
final class Obj: @unchecked Sendable, Codable {}
21+
2122
struct LargeStruct: Sendable, Codable {
23+
var q: String
24+
var a: Int
25+
var b: Int64
26+
var c: Double
27+
var d: String
28+
}
29+
30+
enum E : Sendable, Codable {
31+
case foo, bar
2232
}
2333

2434
distributed actor Greeter {
25-
distributed func hello() {
26-
print("EXECUTING HELLO")
35+
distributed func empty() {
36+
}
37+
38+
distributed func hello() -> String {
39+
return "Hello, World!"
40+
}
41+
42+
distributed func answer() -> Int {
43+
return 42
44+
}
45+
46+
distributed func largeResult() -> LargeStruct {
47+
.init(q: "question", a: 42, b: 1, c: 2.0, d: "Lorum ipsum")
48+
}
49+
50+
distributed func enumResult() -> E {
51+
.bar
2752
}
2853
}
2954

@@ -102,7 +127,11 @@ struct FakeResultHandler: DistributedTargetInvocationResultHandler {
102127
typealias DefaultDistributedActorSystem = FakeActorSystem
103128

104129
// actual mangled name:
105-
let helloName = "$s4main7GreeterC5helloyyFTE"
130+
let emptyName = "$s4main7GreeterC5emptyyyFTE"
131+
let helloName = "$s4main7GreeterC5helloSSyFTE"
132+
let answerName = "$s4main7GreeterC6answerSiyFTE"
133+
let largeResultName = "$s4main7GreeterC11largeResultAA11LargeStructVyFTE"
134+
let enumResult = "$s4main7GreeterC10enumResultAA1EOyFTE"
106135

107136
func test() async throws {
108137
let system = FakeActorSystem()
@@ -112,14 +141,51 @@ func test() async throws {
112141
// act as if we decoded an Invocation:
113142
let invocation = FakeInvocation()
114143

144+
try await system.executeDistributedTarget(
145+
on: local,
146+
mangledTargetName: emptyName,
147+
invocation: invocation,
148+
handler: FakeResultHandler()
149+
)
150+
151+
// CHECK: RETURN: ()
152+
115153
try await system.executeDistributedTarget(
116154
on: local,
117155
mangledTargetName: helloName,
118156
invocation: invocation,
119157
handler: FakeResultHandler()
120158
)
121159

122-
// CHECK: done
160+
// CHECK: RETURN: Hello, World!
161+
162+
try await system.executeDistributedTarget(
163+
on: local,
164+
mangledTargetName: answerName,
165+
invocation: invocation,
166+
handler: FakeResultHandler()
167+
)
168+
169+
// CHECK: RETURN: 42
170+
171+
try await system.executeDistributedTarget(
172+
on: local,
173+
mangledTargetName: largeResultName,
174+
invocation: invocation,
175+
handler: FakeResultHandler()
176+
)
177+
178+
// CHECK: RETURN: LargeStruct(q: "question", a: 42, b: 1, c: 2.0, d: "Lorum ipsum")
179+
180+
try await system.executeDistributedTarget(
181+
on: local,
182+
mangledTargetName: enumResult,
183+
invocation: invocation,
184+
handler: FakeResultHandler()
185+
)
186+
// CHECK: RETURN: bar
187+
188+
// CHECK-NEXT: done
123189
print("done")
124190
}
125191

0 commit comments

Comments
 (0)