Skip to content

Commit 4339bb8

Browse files
[FAB-4080] TestMultipleOrgEndpointLeakage fix
Changed sleep and check membership to periodical check with timeout Test was failing because shot sleep period before checking membership, etc. Now test changed to use periodical check of membership with global timeout, so it able to wait more time, but in case membership established sooner, it will finish faster that original test... Change-Id: I8257e3705ea82ab935b179d9a635a8bee165ad49 Signed-off-by: Gennady Laventman <[email protected]>
1 parent 307c903 commit 4339bb8

File tree

1 file changed

+31
-18
lines changed

1 file changed

+31
-18
lines changed

gossip/gossip/orgs_test.go

+31-18
Original file line numberDiff line numberDiff line change
@@ -218,29 +218,42 @@ func TestMultipleOrgEndpointLeakage(t *testing.T) {
218218
}
219219
}
220220

221-
time.Sleep(time.Second * 10)
222-
223-
for _, peers := range orgs2Peers {
224-
for _, p := range peers {
225-
peerNetMember := p.(*gossipServiceImpl).selfNetworkMember()
226-
pkiID := peerNetMember.PKIid
227-
peersKnown := p.Peers()
228-
assert.Equal(t, amountOfPeersShouldKnow(pkiID), len(peersKnown), "peer %v doesn't know the needed amount of peers", peerNetMember.Endpoint)
229-
for _, knownPeer := range peersKnown {
230-
assert.True(t, shouldAKnowB(pkiID, knownPeer.PKIid))
231-
if shouldKnowInternalEndpoint(pkiID, knownPeer.PKIid) {
232-
errMsg := fmt.Sprintf("peer: %v doesn't know internal endpoint of %v",
233-
peerNetMember.InternalEndpoint, string(knownPeer.PKIid))
234-
assert.NotZero(t, knownPeer.InternalEndpoint, errMsg)
235-
} else {
236-
errMsg := fmt.Sprintf("peer: %v knows internal endpoint of %v",
237-
peerNetMember.InternalEndpoint, string(knownPeer.PKIid))
238-
assert.Zero(t, knownPeer.InternalEndpoint, errMsg)
221+
membershipCheck := func() bool {
222+
for _, peers := range orgs2Peers {
223+
for _, p := range peers {
224+
peerNetMember := p.(*gossipServiceImpl).selfNetworkMember()
225+
pkiID := peerNetMember.PKIid
226+
peersKnown := p.Peers()
227+
peersToKnow := amountOfPeersShouldKnow(pkiID)
228+
if peersToKnow != len(peersKnown) {
229+
t.Logf("peer %#v doesn't know the needed amount of peers, extected %#v, actual %#v", peerNetMember.Endpoint, peersToKnow, len(peersKnown))
230+
return false
231+
}
232+
for _, knownPeer := range peersKnown {
233+
if !shouldAKnowB(pkiID, knownPeer.PKIid) {
234+
assert.Fail(t, fmt.Sprintf("peer %#v doesn't know %#v", peerNetMember.Endpoint, knownPeer.Endpoint))
235+
return false
236+
}
237+
internalEndpointLen := len(knownPeer.InternalEndpoint)
238+
if shouldKnowInternalEndpoint(pkiID, knownPeer.PKIid) {
239+
if internalEndpointLen == 0 {
240+
t.Logf("peer: %v doesn't know internal endpoint of %v", peerNetMember.InternalEndpoint, string(knownPeer.PKIid))
241+
return false
242+
}
243+
} else {
244+
if internalEndpointLen != 0 {
245+
assert.Fail(t, fmt.Sprintf("peer: %v knows internal endpoint of %v (%#v)", peerNetMember.InternalEndpoint, string(knownPeer.PKIid), knownPeer.InternalEndpoint))
246+
return false
247+
}
248+
}
239249
}
240250
}
241251
}
252+
return true
242253
}
243254

255+
waitUntilOrFail(t, membershipCheck)
256+
244257
for _, peers := range orgs2Peers {
245258
for _, p := range peers {
246259
p.Stop()

0 commit comments

Comments
 (0)