Skip to content

Commit ef0c501

Browse files
committed
Added test on repeated start stop of cluster instance
1 parent 7b3a3b8 commit ef0c501

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,48 @@ 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(1))
43+
.failureDetector(opts -> opts.pingInterval(1))
44+
.membership(opts -> opts.syncInterval(1))
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(1))
53+
.failureDetector(opts -> opts.pingInterval(1))
54+
.membership(opts -> opts.syncInterval(1))
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 < 15; i++) {
62+
seedNode.shutdown();
63+
seedNode.onShutdown().then(Mono.delay(Duration.ofMillis(100))).block();
64+
65+
seedNode =
66+
new ClusterImpl()
67+
.transport(opts -> opts.host(address.host()).port(address.port()))
68+
.startAwait();
69+
70+
TimeUnit.SECONDS.sleep(1);
71+
72+
assertEquals(2, seedNode.members().size());
73+
assertEquals(2, otherNode.members().size());
74+
}
75+
}
76+
3577
@Test
3678
public void testMembersAccessFromScheduler() {
3779
// Start seed node

0 commit comments

Comments
 (0)