Skip to content

Commit 2c23474

Browse files
committed
https://github.com/apple/swift-distributed-actors/issues/463
1 parent a4db9b7 commit 2c23474

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

Tests/ActorSingletonPluginTests/ActorSingletonPluginClusteredTests.swift

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,24 @@ final class ActorSingletonPluginClusteredTests: ClusteredNodesTestBase {
4545
settings.serialization.registerCodable(for: GreeterSingleton.Message.self, underId: 10001)
4646
}
4747

48+
// Bring up `ActorSingletonProxy` before setting up cluster (https://github.com/apple/swift-distributed-actors/issues/463)
49+
let ref1 = try first.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-1")))
50+
let ref2 = try second.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-2")))
51+
let ref3 = try third.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-3")))
52+
4853
first.cluster.join(node: second.cluster.node.node)
4954
third.cluster.join(node: second.cluster.node.node)
5055

5156
// `first` will be the leader (lowest address) and runs the singleton
5257
try self.ensureNodes(.up, within: .seconds(10), nodes: first.cluster.node, second.cluster.node, third.cluster.node)
5358

5459
let replyProbe1 = self.testKit(first).spawnTestProbe(expecting: String.self)
55-
let ref1 = try first.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-1")))
5660
ref1.tell(.greet(name: "Charlie", _replyTo: replyProbe1.ref))
5761

5862
let replyProbe2 = self.testKit(second).spawnTestProbe(expecting: String.self)
59-
let ref2 = try second.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-2")))
6063
ref2.tell(.greet(name: "Charlie", _replyTo: replyProbe2.ref))
6164

6265
let replyProbe3 = self.testKit(third).spawnTestProbe(expecting: String.self)
63-
let ref3 = try third.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-3")))
6466
ref3.tell(.greet(name: "Charlie", _replyTo: replyProbe3.ref))
6567

6668
try replyProbe1.expectMessage("Hello-1 Charlie!")
@@ -159,26 +161,26 @@ final class ActorSingletonPluginClusteredTests: ClusteredNodesTestBase {
159161
settings.serialization.registerCodable(for: GreeterSingleton.Message.self, underId: 10001)
160162
}
161163

164+
// Bring up `ActorSingletonProxy` before setting up cluster (https://github.com/apple/swift-distributed-actors/issues/463)
165+
let ref1 = try first.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-1")))
166+
let ref2 = try second.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-2")))
167+
let ref3 = try third.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-3")))
168+
_ = try fourth.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-4")))
169+
162170
first.cluster.join(node: second.cluster.node.node)
163171
third.cluster.join(node: second.cluster.node.node)
164172

165173
try self.ensureNodes(.up, within: .seconds(10), nodes: first.cluster.node, second.cluster.node, third.cluster.node)
166174

167175
let replyProbe1 = self.testKit(first).spawnTestProbe(expecting: String.self)
168-
let ref1 = try first.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-1")))
169176
ref1.tell(.greet(name: "Charlie", _replyTo: replyProbe1.ref))
170177

171178
let replyProbe2 = self.testKit(second).spawnTestProbe(expecting: String.self)
172-
let ref2 = try second.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-2")))
173179
ref2.tell(.greet(name: "Charlie", _replyTo: replyProbe2.ref))
174180

175181
let replyProbe3 = self.testKit(third).spawnTestProbe(expecting: String.self)
176-
let ref3 = try third.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-3")))
177182
ref3.tell(.greet(name: "Charlie", _replyTo: replyProbe3.ref))
178183

179-
// Spawn the singleton on `fourth`
180-
_ = try fourth.singleton.host(GreeterSingleton.Message.self, settings: singletonSettings, GreeterSingleton.makeBehavior(instance: GreeterSingleton("Hello-4")))
181-
182184
// `first` has the lowest address so it should be the leader and singleton
183185
try replyProbe1.expectMessage("Hello-1 Charlie!")
184186
try replyProbe2.expectMessage("Hello-1 Charlie!")

0 commit comments

Comments
 (0)