Skip to content

Commit d0a2797

Browse files
authored
Merge pull request #281 from scalecube/issue/280/FixOperatorCalledDefaultOnErrorDropped
Added test on repeated start stop of cluster instance
2 parents 7b3a3b8 + f38f458 commit d0a2797

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

cluster/src/test/java/io/scalecube/cluster/ClusterTest.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,52 @@ public class ClusterTest extends BaseTest {
3232
public static final Duration TIMEOUT = Duration.ofSeconds(30);
3333
public static final int CONNECT_TIMEOUT = 3000;
3434

35+
@Test
36+
public void testStartStopRepeatedly() throws Exception {
37+
Address address = Address.from("localhost:4848");
38+
39+
// Start seed node
40+
Cluster seedNode =
41+
new ClusterImpl()
42+
.gossip(opts -> opts.gossipInterval(100))
43+
.failureDetector(opts -> opts.pingInterval(100))
44+
.membership(opts -> opts.syncInterval(100))
45+
.transport(opts -> opts.host(address.host()).port(address.port()))
46+
.transport(opts -> opts.connectTimeout(CONNECT_TIMEOUT))
47+
.startAwait();
48+
49+
Cluster otherNode =
50+
new ClusterImpl()
51+
.membership(opts -> opts.seedMembers(address))
52+
.gossip(opts -> opts.gossipInterval(100))
53+
.failureDetector(opts -> opts.pingInterval(100))
54+
.membership(opts -> opts.syncInterval(100))
55+
.transport(opts -> opts.connectTimeout(CONNECT_TIMEOUT))
56+
.startAwait();
57+
58+
assertEquals(2, seedNode.members().size());
59+
assertEquals(2, otherNode.members().size());
60+
61+
for (int i = 0; i < 10; i++) {
62+
seedNode.shutdown();
63+
seedNode.onShutdown().then(Mono.delay(Duration.ofMillis(100))).block();
64+
65+
seedNode =
66+
new ClusterImpl()
67+
.gossip(opts -> opts.gossipInterval(100))
68+
.failureDetector(opts -> opts.pingInterval(100))
69+
.membership(opts -> opts.syncInterval(100))
70+
.transport(opts -> opts.host(address.host()).port(address.port()))
71+
.transport(opts -> opts.connectTimeout(CONNECT_TIMEOUT))
72+
.startAwait();
73+
74+
TimeUnit.SECONDS.sleep(1);
75+
76+
assertEquals(2, seedNode.members().size());
77+
assertEquals(2, otherNode.members().size());
78+
}
79+
}
80+
3581
@Test
3682
public void testMembersAccessFromScheduler() {
3783
// Start seed node

0 commit comments

Comments
 (0)