You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While using real gossip as communication middleware for leader election
it become impossible to point to what peer will become leader after previous
leader shutdown. So test was changed to check only amount of leaders, but not
what peer is a leader.
Change-Id: Iac745a3e6a7e3ba66702dc4a73ca82e074d64dd0
Signed-off-by: Gennady Laventman <[email protected]>
assert.True(t, exist, "Leader election service should be created for peer %d and channel %s", i, channelName)
124
126
services[i] =&electionService{nil, false, 0}
125
127
services[i].LeaderElectionService=service
126
128
}
127
129
128
-
assert.True(t, waitForLeaderElection(t, services, 0, time.Second*30, time.Second*2), "One leader (peer 0) should be selected")
129
-
130
-
assert.True(t, gossips[0].(*gossipServiceImpl).deliveryService.(*mockDeliverService).running[channelName], "Delivery service should be started in peer %d", 0)
130
+
// Is single leader was elected.
131
+
assert.True(t, waitForLeaderElection(t, services, time.Second*30, time.Second*2), "One leader should be selected")
131
132
132
-
fori:=1; i<n; i++ {
133
-
assert.False(t, gossips[i].(*gossipServiceImpl).deliveryService.(*mockDeliverService).running[channelName], "Delivery service should not be started in peer %d", i)
133
+
startsNum:=0
134
+
fori:=0; i<n; i++ {
135
+
// Is mockDeliverService.StartDeliverForChannel in current peer for the specific channel was invoked
assert.True(t, waitForLeaderElection(t, services[2:], time.Second*30, time.Second*2), "One leader should be selected after re-election - chanA")
412
+
assert.True(t, waitForLeaderElection(t, secondChannelServices[1:], time.Second*30, time.Second*2), "One leader should be selected after re-election - chanB")
389
413
390
-
assert.True(t, services[2].callbackInvokeRes, "Callback func for peer 2 should be called (chanA)")
391
-
fori:=3; i<n; i++ {
392
-
assert.False(t, services[i].callbackInvokeRes, "Callback func for peer %d should not be called (chanA)", i)
393
-
assert.False(t, services[i].IsLeader(), "Peer %d should not be leader in chanA", i)
414
+
startsNum=0
415
+
fori:=2; i<n; i++ {
416
+
ifservices[i].callbackInvokeRes {
417
+
startsNum++
418
+
}
394
419
}
420
+
assert.Equal(t, 1, startsNum, "Only for one peer callback function should be called after re-election - chanA")
395
421
396
-
assert.True(t, secondChannelServices[1].callbackInvokeRes, "Callback func for peer 3 should be called (chanB)")
397
-
fori:=2; i<len(secondChannelServices); i++ {
398
-
assert.False(t, secondChannelServices[i].callbackInvokeRes, "Callback func for peer %d should not be called (chanB)", secondChannelPeerIndexes[i])
399
-
assert.False(t, secondChannelServices[i].IsLeader(), "Peer %d should not be leader in chanB", i)
422
+
startsNum=0
423
+
fori:=1; i<len(secondChannelServices); i++ {
424
+
ifsecondChannelServices[i].callbackInvokeRes {
425
+
startsNum++
426
+
}
400
427
}
428
+
assert.Equal(t, 1, startsNum, "Only for one peer callback function should be called after re-election - chanB")
0 commit comments