Skip to content

Commit

Permalink
[FAB-4080] TestMultipleOrgEndpointLeakage fix
Browse files Browse the repository at this point in the history
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 <gennady@il.ibm.com>
  • Loading branch information
gennadylaventman committed Jun 12, 2017
1 parent 307c903 commit 4339bb8
Showing 1 changed file with 31 additions and 18 deletions.
49 changes: 31 additions & 18 deletions gossip/gossip/orgs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -218,29 +218,42 @@ func TestMultipleOrgEndpointLeakage(t *testing.T) {
}
}

time.Sleep(time.Second * 10)

for _, peers := range orgs2Peers {
for _, p := range peers {
peerNetMember := p.(*gossipServiceImpl).selfNetworkMember()
pkiID := peerNetMember.PKIid
peersKnown := p.Peers()
assert.Equal(t, amountOfPeersShouldKnow(pkiID), len(peersKnown), "peer %v doesn't know the needed amount of peers", peerNetMember.Endpoint)
for _, knownPeer := range peersKnown {
assert.True(t, shouldAKnowB(pkiID, knownPeer.PKIid))
if shouldKnowInternalEndpoint(pkiID, knownPeer.PKIid) {
errMsg := fmt.Sprintf("peer: %v doesn't know internal endpoint of %v",
peerNetMember.InternalEndpoint, string(knownPeer.PKIid))
assert.NotZero(t, knownPeer.InternalEndpoint, errMsg)
} else {
errMsg := fmt.Sprintf("peer: %v knows internal endpoint of %v",
peerNetMember.InternalEndpoint, string(knownPeer.PKIid))
assert.Zero(t, knownPeer.InternalEndpoint, errMsg)
membershipCheck := func() bool {
for _, peers := range orgs2Peers {
for _, p := range peers {
peerNetMember := p.(*gossipServiceImpl).selfNetworkMember()
pkiID := peerNetMember.PKIid
peersKnown := p.Peers()
peersToKnow := amountOfPeersShouldKnow(pkiID)
if peersToKnow != len(peersKnown) {
t.Logf("peer %#v doesn't know the needed amount of peers, extected %#v, actual %#v", peerNetMember.Endpoint, peersToKnow, len(peersKnown))
return false
}
for _, knownPeer := range peersKnown {
if !shouldAKnowB(pkiID, knownPeer.PKIid) {
assert.Fail(t, fmt.Sprintf("peer %#v doesn't know %#v", peerNetMember.Endpoint, knownPeer.Endpoint))
return false
}
internalEndpointLen := len(knownPeer.InternalEndpoint)
if shouldKnowInternalEndpoint(pkiID, knownPeer.PKIid) {
if internalEndpointLen == 0 {
t.Logf("peer: %v doesn't know internal endpoint of %v", peerNetMember.InternalEndpoint, string(knownPeer.PKIid))
return false
}
} else {
if internalEndpointLen != 0 {
assert.Fail(t, fmt.Sprintf("peer: %v knows internal endpoint of %v (%#v)", peerNetMember.InternalEndpoint, string(knownPeer.PKIid), knownPeer.InternalEndpoint))
return false
}
}
}
}
}
return true
}

waitUntilOrFail(t, membershipCheck)

for _, peers := range orgs2Peers {
for _, p := range peers {
p.Stop()
Expand Down

0 comments on commit 4339bb8

Please sign in to comment.