Skip to content

Commit e193798

Browse files
committed
[FAB-12180] use network.EventuallyTimeout
Addresses flake in CI related to process exit completion taking longer than 1 second. Applied the pattern via rewrite across all integration packages. Change-Id: Ia2b2ce0f97acad66ade61b71c836a3a3ad418ad7 Signed-off-by: Matthew Sykes <sykesmat@us.ibm.com>
1 parent 7f0ea80 commit e193798

File tree

7 files changed

+55
-60
lines changed

7 files changed

+55
-60
lines changed

integration/discovery/discovery_test.go

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"os"
1414
"path/filepath"
1515
"syscall"
16-
"time"
1716

1817
. "github.com/onsi/ginkgo"
1918
. "github.com/onsi/gomega"
@@ -74,7 +73,7 @@ var _ = Describe("DiscoveryService", func() {
7473
AfterEach(func() {
7574
if process != nil {
7675
process.Signal(syscall.SIGTERM)
77-
Eventually(process.Wait(), time.Minute).Should(Receive())
76+
Eventually(process.Wait(), network.EventuallyTimeout).Should(Receive())
7877
}
7978
if network != nil {
8079
network.Cleanup()
@@ -98,7 +97,7 @@ var _ = Describe("DiscoveryService", func() {
9897
}
9998
sess, err := network.Discover(endorsers)
10099
Expect(err).NotTo(HaveOccurred())
101-
Eventually(sess).Should(gexec.Exit(1))
100+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(1))
102101
Expect(sess.Err).To(gbytes.Say(`failed constructing descriptor for chaincodes:<name:"mycc"`))
103102

104103
By("installing and instantiating chaincode on org1.peer0")
@@ -114,15 +113,15 @@ var _ = Describe("DiscoveryService", func() {
114113
By("discovering endorsers for chaincode that has not been installed to enough orgs to satisy endorsement policy")
115114
sess, err = network.Discover(endorsers)
116115
Expect(err).NotTo(HaveOccurred())
117-
Eventually(sess).Should(gexec.Exit(1))
116+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(1))
118117
Expect(sess.Err).To(gbytes.Say(`failed constructing descriptor for chaincodes:<name:"mycc"`))
119118

120119
By("installing chaincode to enough organizations to satisfy the endorsement policy")
121120
nwo.InstallChaincode(network, chaincode, org2Peer0)
122121

123122
By("discovering endorsers for chaincode that has been installed to some orgs")
124123
de := discoverEndorsers(network, endorsers)
125-
Eventually(endorsersByGroups(de), time.Minute).Should(ConsistOf(
124+
Eventually(endorsersByGroups(de), network.EventuallyTimeout).Should(ConsistOf(
126125
[]DiscoveredPeer{toDiscoveredPeer(network, org1Peer0)},
127126
[]DiscoveredPeer{toDiscoveredPeer(network, org2Peer0)},
128127
))
@@ -135,7 +134,7 @@ var _ = Describe("DiscoveryService", func() {
135134
nwo.InstallChaincode(network, chaincode, org3Peer0)
136135

137136
By("discovering endorsers for chaincode that has been installed to all orgs")
138-
Eventually(endorsersByGroups(de), time.Minute).Should(ConsistOf(
137+
Eventually(endorsersByGroups(de), network.EventuallyTimeout).Should(ConsistOf(
139138
[]DiscoveredPeer{toDiscoveredPeer(network, org1Peer0)},
140139
[]DiscoveredPeer{toDiscoveredPeer(network, org2Peer0)},
141140
[]DiscoveredPeer{toDiscoveredPeer(network, org3Peer0)},
@@ -150,7 +149,7 @@ var _ = Describe("DiscoveryService", func() {
150149
By("discovering endorsers for chaincode with a private collection")
151150
endorsers.Collection = "mycc:collectionMarbles"
152151
de = discoverEndorsers(network, endorsers)
153-
Eventually(endorsersByGroups(de), time.Minute).Should(ConsistOf(
152+
Eventually(endorsersByGroups(de), network.EventuallyTimeout).Should(ConsistOf(
154153
[]DiscoveredPeer{toDiscoveredPeer(network, org1Peer0)},
155154
[]DiscoveredPeer{toDiscoveredPeer(network, org2Peer0)},
156155
))
@@ -169,7 +168,7 @@ var _ = Describe("DiscoveryService", func() {
169168
endorsers.Collection = ""
170169
endorsers.Chaincode = "mycc2"
171170
de = discoverEndorsers(network, endorsers)
172-
Eventually(endorsersByGroups(de), time.Minute).Should(ConsistOf(
171+
Eventually(endorsersByGroups(de), network.EventuallyTimeout).Should(ConsistOf(
173172
ConsistOf(toDiscoveredPeer(network, org1Peer0), toDiscoveredPeer(network, network.Peer("org1", "peer1"))),
174173
ConsistOf(toDiscoveredPeer(network, org2Peer0), toDiscoveredPeer(network, network.Peer("org2", "peer1"))),
175174
ConsistOf(toDiscoveredPeer(network, org3Peer0), toDiscoveredPeer(network, network.Peer("org3", "peer1"))),
@@ -196,15 +195,15 @@ var _ = Describe("DiscoveryService", func() {
196195
}
197196
sess, err = network.Discover(endorsers)
198197
Expect(err).NotTo(HaveOccurred())
199-
Eventually(sess).Should(gexec.Exit(1))
198+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(1))
200199
Expect(sess.Err).To(gbytes.Say(`access denied`))
201200
})
202201

203202
It("discovers peer membership", func() {
204203
org1Peer0 := network.Peer("org1", "peer0")
205204

206205
By("discovering peers")
207-
Eventually(discoverPeers(network, org1Peer0, "User1", "testchannel"), time.Minute).Should(ConsistOf(
206+
Eventually(discoverPeers(network, org1Peer0, "User1", "testchannel"), network.EventuallyTimeout).Should(ConsistOf(
208207
toDiscoveredPeer(network, network.Peer("org1", "peer0")),
209208
toDiscoveredPeer(network, network.Peer("org1", "peer1")),
210209
toDiscoveredPeer(network, network.Peer("org2", "peer0")),
@@ -225,7 +224,7 @@ var _ = Describe("DiscoveryService", func() {
225224

226225
By("discovering peers after installing and instantiating chaincode on a peer")
227226
dp := discoverPeers(network, org1Peer0, "User1", "testchannel")
228-
Eventually(peersWithChaincode(dp, "mycc"), time.Minute).Should(HaveLen(1))
227+
Eventually(peersWithChaincode(dp, "mycc"), network.EventuallyTimeout).Should(HaveLen(1))
229228
peersWithCC := peersWithChaincode(dp, "mycc")()
230229
Expect(peersWithCC).To(ConsistOf(toDiscoveredPeer(network, org1Peer0, "mycc")))
231230
})
@@ -243,7 +242,7 @@ var _ = Describe("DiscoveryService", func() {
243242
}
244243
sess, err := network.Discover(config)
245244
Expect(err).NotTo(HaveOccurred())
246-
Eventually(sess).Should(gexec.Exit(0))
245+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(0))
247246

248247
By("unmarshaling the response")
249248
discoveredConfig := &discovery.ConfigResult{}
@@ -294,7 +293,7 @@ func discoverPeers(n *nwo.Network, p *nwo.Peer, user, channelName string) func()
294293
}
295294
sess, err := n.Discover(peers)
296295
Expect(err).NotTo(HaveOccurred())
297-
Eventually(sess).Should(gexec.Exit(0))
296+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
298297

299298
discovered := []DiscoveredPeer{}
300299
err = json.Unmarshal(sess.Out.Contents(), &discovered)
@@ -313,7 +312,7 @@ func discoverEndorsers(n *nwo.Network, command commands.Endorsers) func() []Chai
313312
return func() []ChaincodeEndorsers {
314313
sess, err := n.Discover(command)
315314
Expect(err).NotTo(HaveOccurred())
316-
Eventually(sess).Should(gexec.Exit())
315+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit())
317316
if sess.ExitCode() != 0 {
318317
return nil
319318
}

integration/e2e/acl_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ var _ = Describe("EndToEndACL", func() {
115115
By("invoking chaincode as a permitted Org1 Admin identity")
116116
sess, err := network.PeerAdminSession(org1Peer0, invokeChaincode)
117117
Expect(err).NotTo(HaveOccurred())
118-
Eventually(sess.Err, time.Minute).Should(gbytes.Say("Chaincode invoke successful. result: status:200"))
118+
Eventually(sess.Err, network.EventuallyTimeout).Should(gbytes.Say("Chaincode invoke successful. result: status:200"))
119119

120120
//
121121
// when the ACL policy for DeliverFiltered is not satisifed
@@ -128,7 +128,7 @@ var _ = Describe("EndToEndACL", func() {
128128
By("invoking chaincode as a forbidden Org1 Admin identity")
129129
sess, err = network.PeerAdminSession(org1Peer0, invokeChaincode)
130130
Expect(err).NotTo(HaveOccurred())
131-
Eventually(sess.Err, time.Minute).Should(gbytes.Say(`\Qdeliver completed with status (FORBIDDEN)\E`))
131+
Eventually(sess.Err, network.EventuallyTimeout).Should(gbytes.Say(`\Qdeliver completed with status (FORBIDDEN)\E`))
132132

133133
//
134134
// when the ACL policy for Deliver is satisfied
@@ -141,7 +141,7 @@ var _ = Describe("EndToEndACL", func() {
141141
By("fetching the latest block from the peer as a permitted Org1 Admin identity")
142142
sess, err = network.PeerAdminSession(org1Peer0, fetchNewest)
143143
Expect(err).NotTo(HaveOccurred())
144-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
144+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(0))
145145
Expect(sess.Err).To(gbytes.Say("Received block: "))
146146

147147
//
@@ -150,7 +150,7 @@ var _ = Describe("EndToEndACL", func() {
150150
By("fetching the latest block from the peer as a forbidden org2 Admin identity")
151151
sess, err = network.PeerAdminSession(org2Peer0, fetchNewest)
152152
Expect(err).NotTo(HaveOccurred())
153-
Eventually(sess, time.Minute).Should(gexec.Exit())
153+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit())
154154
Expect(sess.Err).To(gbytes.Say("can't read the block: &{FORBIDDEN}"))
155155

156156
//
@@ -166,7 +166,7 @@ var _ = Describe("EndToEndACL", func() {
166166
ChannelID: "testchannel",
167167
})
168168
Expect(err).NotTo(HaveOccurred())
169-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
169+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(0))
170170
Expect(sess).To(gbytes.Say("Name: mycc, Version: 0.0, Path: .*, Escc: escc, Vscc: vscc"))
171171

172172
//
@@ -177,7 +177,7 @@ var _ = Describe("EndToEndACL", func() {
177177
ChannelID: "testchannel",
178178
})
179179
Expect(err).NotTo(HaveOccurred())
180-
Eventually(sess, time.Minute).Should(gexec.Exit())
180+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit())
181181
Expect(sess).NotTo(gbytes.Say("Name: mycc, Version: 0.0, Path: .*, Escc: escc, Vscc: vscc"))
182182
Expect(sess.Err).To(gbytes.Say(`access denied for \[getchaincodes\]\[testchannel\](.*)signature set did not satisfy policy`))
183183

@@ -188,7 +188,7 @@ var _ = Describe("EndToEndACL", func() {
188188
// getting a transaction id from a block in the ledger
189189
sess, err = network.PeerAdminSession(org1Peer0, fetchNewest)
190190
Expect(err).NotTo(HaveOccurred())
191-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
191+
Eventually(sess, network.EventuallyTimeout).Should(gexec.Exit(0))
192192
Expect(sess.Err).To(gbytes.Say("Received block: "))
193193
txID := GetTxIDFromBlockFile(outputBlock)
194194

integration/e2e/e2e_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"io/ioutil"
1111
"os"
1212
"syscall"
13-
"time"
1413

1514
docker "github.com/fsouza/go-dockerclient"
1615
. "github.com/onsi/ginkgo"
@@ -52,7 +51,7 @@ var _ = Describe("EndToEnd", func() {
5251
AfterEach(func() {
5352
if process != nil {
5453
process.Signal(syscall.SIGTERM)
55-
Eventually(process.Wait(), time.Minute).Should(Receive())
54+
Eventually(process.Wait(), network.EventuallyTimeout).Should(Receive())
5655
}
5756
if network != nil {
5857
network.Cleanup()
@@ -118,7 +117,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
118117
Ctor: `{"Args":["query","a"]}`,
119118
})
120119
Expect(err).NotTo(HaveOccurred())
121-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
120+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
122121
Expect(sess).To(gbytes.Say("100"))
123122

124123
sess, err = n.PeerUserSession(peer, "User1", commands.ChaincodeInvoke{
@@ -133,7 +132,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
133132
WaitForEvent: true,
134133
})
135134
Expect(err).NotTo(HaveOccurred())
136-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
135+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
137136
Expect(sess.Err).To(gbytes.Say("Chaincode invoke successful. result: status:200"))
138137

139138
sess, err = n.PeerUserSession(peer, "User1", commands.ChaincodeQuery{
@@ -142,6 +141,6 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
142141
Ctor: `{"Args":["query","a"]}`,
143142
})
144143
Expect(err).NotTo(HaveOccurred())
145-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
144+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
146145
Expect(sess).To(gbytes.Say("90"))
147146
}

integration/java_chaincode/javacc_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"io/ioutil"
1111
"os"
1212
"syscall"
13-
"time"
1413

1514
"github.com/fsouza/go-dockerclient"
1615
. "github.com/onsi/ginkgo"
@@ -52,7 +51,7 @@ var _ = Describe("Java Chaincode EndToEnd Suite", func() {
5251
AfterEach(func() {
5352
if process != nil {
5453
process.Signal(syscall.SIGKILL)
55-
Eventually(process.Wait(), time.Minute).Should(Receive())
54+
Eventually(process.Wait(), network.EventuallyTimeout).Should(Receive())
5655
}
5756
if network != nil {
5857
network.Cleanup()
@@ -125,7 +124,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
125124
WaitForEvent: true,
126125
})
127126
Expect(err).NotTo(HaveOccurred())
128-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
127+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
129128
Expect(sess.Err).To(gbytes.Say("Chaincode invoke successful. result: status:200"))
130129

131130
By("querying the chaincode - 1")
@@ -135,7 +134,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
135134
Ctor: `{"Args":["query","a"]}`,
136135
})
137136
Expect(err).NotTo(HaveOccurred())
138-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
137+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
139138
Expect(sess).To(gbytes.Say("90"))
140139

141140
By("invoking the chaincode - 2")
@@ -150,7 +149,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
150149
WaitForEvent: true,
151150
})
152151
Expect(err).NotTo(HaveOccurred())
153-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
152+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
154153
Expect(sess.Err).To(gbytes.Say("Chaincode invoke successful. result: status:200"))
155154

156155
By("querying the chaincode - 2")
@@ -160,6 +159,6 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
160159
Ctor: `{"Args":["query","b"]}`,
161160
})
162161
Expect(err).NotTo(HaveOccurred())
163-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
162+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
164163
Expect(sess).To(gbytes.Say("220"))
165164
}

integration/nwo/network_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"io/ioutil"
1212
"os"
1313
"syscall"
14-
"time"
1514

1615
. "github.com/onsi/ginkgo"
1716
. "github.com/onsi/gomega"
@@ -70,7 +69,7 @@ var _ = Describe("Network", func() {
7069
AfterEach(func() {
7170
// Shutodwn processes and cleanup
7271
process.Signal(syscall.SIGTERM)
73-
Eventually(process.Wait(), time.Minute).Should(Receive())
72+
Eventually(process.Wait(), network.EventuallyTimeout).Should(Receive())
7473
network.Cleanup()
7574
})
7675

@@ -120,7 +119,7 @@ var _ = Describe("Network", func() {
120119
AfterEach(func() {
121120
for _, p := range processes {
122121
p.Signal(syscall.SIGTERM)
123-
Eventually(p.Wait(), time.Minute).Should(Receive())
122+
Eventually(p.Wait(), network.EventuallyTimeout).Should(Receive())
124123
}
125124
network.Cleanup()
126125
})

integration/pluggable/pluggable_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
157157
Ctor: `{"Args":["query","a"]}`,
158158
})
159159
Expect(err).NotTo(HaveOccurred())
160-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
160+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
161161
Expect(sess).To(gbytes.Say("100"))
162162

163163
sess, err = n.PeerUserSession(peer, "User1", commands.ChaincodeInvoke{
@@ -172,7 +172,7 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
172172
WaitForEvent: true,
173173
})
174174
Expect(err).NotTo(HaveOccurred())
175-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
175+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
176176
Expect(sess.Err).To(gbytes.Say("Chaincode invoke successful. result: status:200"))
177177

178178
sess, err = n.PeerUserSession(peer, "User1", commands.ChaincodeQuery{
@@ -181,6 +181,6 @@ func RunQueryInvokeQuery(n *nwo.Network, orderer *nwo.Orderer, peer *nwo.Peer) {
181181
Ctor: `{"Args":["query","a"]}`,
182182
})
183183
Expect(err).NotTo(HaveOccurred())
184-
Eventually(sess, time.Minute).Should(gexec.Exit(0))
184+
Eventually(sess, n.EventuallyTimeout).Should(gexec.Exit(0))
185185
Expect(sess).To(gbytes.Say("90"))
186186
}

0 commit comments

Comments
 (0)