Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit f71ee06

Browse files
committed
[FAB-5193] Mock servers should accept port & cleanup
Change-Id: I67621307f78ca8007282c47ecd0f40d430c90630 Signed-off-by: Troy Ronda <troy@troyronda.com>
1 parent 358abfb commit f71ee06

File tree

4 files changed

+68
-56
lines changed

4 files changed

+68
-56
lines changed

pkg/fabric-client/channel/channel_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313
mocks "github.com/hyperledger/fabric-sdk-go/pkg/fabric-client/mocks"
1414
)
1515

16-
var testAddress = "0.0.0.0:5244"
16+
var testAddress = "0.0.0.0:0"
1717

1818
var validRootCA = `-----BEGIN CERTIFICATE-----
1919
MIICYjCCAgmgAwIBAgIUB3CTDOU47sUC5K4kn/Caqnh114YwCgYIKoZIzj0EAwIw

pkg/fabric-client/channel/txnproposer_test.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,13 @@ func TestCreateTransactionProposal(t *testing.T) {
4343

4444
func TestJoinChannel(t *testing.T) {
4545
var peers []fab.Peer
46-
endorserServer := startEndorserServer(t)
46+
47+
grpcServer := grpc.NewServer()
48+
defer grpcServer.Stop()
49+
50+
endorserServer, addr := startEndorserServer(t, grpcServer)
4751
channel, _ := setupTestChannel()
48-
peer, _ := peer.NewPeer(testAddress, mocks.NewMockConfig())
52+
peer, _ := peer.NewPeer(addr, mocks.NewMockConfig())
4953
peers = append(peers, peer)
5054
orderer := mocks.NewMockOrderer("", nil)
5155
orderer.(mocks.MockOrderer).EnqueueForSendDeliver(mocks.NewSimpleMockBlock())
@@ -244,16 +248,17 @@ func TestConcurrentPeers(t *testing.T) {
244248

245249
}
246250

247-
func startEndorserServer(t *testing.T) *mocks.MockEndorserServer {
248-
grpcServer := grpc.NewServer()
251+
func startEndorserServer(t *testing.T, grpcServer *grpc.Server) (*mocks.MockEndorserServer, string) {
249252
lis, err := net.Listen("tcp", testAddress)
253+
addr := lis.Addr().String()
254+
250255
endorserServer := &mocks.MockEndorserServer{}
251256
pb.RegisterEndorserServer(grpcServer, endorserServer)
252257
if err != nil {
253258
fmt.Printf("Error starting test server %s", err)
254259
t.FailNow()
255260
}
256-
fmt.Printf("Starting test server\n")
261+
fmt.Printf("Starting test server on %s\n", addr)
257262
go grpcServer.Serve(lis)
258-
return endorserServer
263+
return endorserServer, addr
259264
}

pkg/fabric-client/orderer/orderer_test.go

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,7 @@ import (
2323
"google.golang.org/grpc"
2424
)
2525

26-
var testOrdererURL = "0.0.0.0:4584"
27-
var testOrdererURL2 = "0.0.0.0:4585"
28-
var testOrdererURL3 = "0.0.0.0:4586"
29-
var testOrdererURL4 = "0.0.0.0:4587"
30-
var testOrdererURL5 = "0.0.0.0:4588"
31-
var testOrdererURL6 = "0.0.0.0:4590"
26+
var testOrdererURL = "0.0.0.0:0"
3227

3328
var validRootCA = `-----BEGIN CERTIFICATE-----
3429
MIICYjCCAgmgAwIBAgIUB3CTDOU47sUC5K4kn/Caqnh114YwCgYIKoZIzj0EAwIw
@@ -141,8 +136,11 @@ func TestOrdererViaChainNilData(t *testing.T) {
141136
}
142137

143138
func TestSendDeliver(t *testing.T) {
144-
mockServer := startMockServer(t)
145-
orderer, _ := NewOrderer(testOrdererURL, "", "", mocks.NewMockConfig())
139+
grpcServer := grpc.NewServer()
140+
defer grpcServer.Stop()
141+
mockServer, addr := startMockServer(t, grpcServer)
142+
143+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
146144
// Test deliver happy path
147145
blocks, errors := orderer.SendDeliver(&fab.SignedEnvelope{})
148146
select {
@@ -198,33 +196,35 @@ func TestSendDeliver(t *testing.T) {
198196

199197
}
200198

201-
func startMockServer(t *testing.T) *mocks.MockBroadcastServer {
202-
grpcServer := grpc.NewServer()
199+
func startMockServer(t *testing.T, grpcServer *grpc.Server) (*mocks.MockBroadcastServer, string) {
203200
lis, err := net.Listen("tcp", testOrdererURL)
201+
addr := lis.Addr().String()
202+
204203
broadcastServer := new(mocks.MockBroadcastServer)
205204
ab.RegisterAtomicBroadcastServer(grpcServer, broadcastServer)
206205
if err != nil {
207206
fmt.Printf("Error starting test server %s", err)
208207
t.FailNow()
209208
}
210-
fmt.Printf("Starting test server\n")
209+
fmt.Printf("Starting test server on %s\n", addr)
211210
go grpcServer.Serve(lis)
212211

213-
return broadcastServer
212+
return broadcastServer, addr
214213
}
215214

216-
func startCustomizedMockServer(t *testing.T, serverURL string, grpcServer *grpc.Server, broadcastServer *mocks.MockBroadcastServer) *mocks.MockBroadcastServer {
217-
215+
func startCustomizedMockServer(t *testing.T, serverURL string, grpcServer *grpc.Server, broadcastServer *mocks.MockBroadcastServer) string {
218216
lis, err := net.Listen("tcp", serverURL)
217+
addr := lis.Addr().String()
218+
219219
ab.RegisterAtomicBroadcastServer(grpcServer, broadcastServer)
220220
if err != nil {
221221
fmt.Printf("Error starting test server %s", err)
222222
t.FailNow()
223223
}
224-
fmt.Printf("Starting test customized server\n")
224+
fmt.Printf("Starting test customized server on %s\n", addr)
225225
go grpcServer.Serve(lis)
226226

227-
return broadcastServer
227+
return addr
228228
}
229229

230230
func TestCreateNewOrdererWithRootCAs(t *testing.T) {
@@ -269,10 +269,11 @@ func TestNewOrdererWithTLS(t *testing.T) {
269269
}
270270

271271
func TestSendBroadcast(t *testing.T) {
272+
grpcServer := grpc.NewServer()
273+
defer grpcServer.Stop()
274+
_, addr := startMockServer(t, grpcServer)
272275

273-
//startMockServer(t)
274-
275-
orderer, _ := NewOrderer(testOrdererURL, "", "", mocks.NewMockConfig())
276+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
276277
_, err := orderer.SendBroadcast(&fab.SignedEnvelope{})
277278

278279
if err != nil {
@@ -290,7 +291,6 @@ func TestSendBroadcast(t *testing.T) {
290291

291292
func TestSendDeliverServerBadResponse(t *testing.T) {
292293

293-
grpcServer := grpc.NewServer()
294294
broadcastServer := mocks.MockBroadcastServer{
295295
DeliverResponse: &ab.DeliverResponse{
296296
Type: &ab.DeliverResponse_Status{
@@ -299,8 +299,10 @@ func TestSendDeliverServerBadResponse(t *testing.T) {
299299
},
300300
}
301301

302-
startCustomizedMockServer(t, testOrdererURL2, grpcServer, &broadcastServer)
303-
orderer, _ := NewOrderer(testOrdererURL2, "", "", mocks.NewMockConfig())
302+
grpcServer := grpc.NewServer()
303+
defer grpcServer.Stop()
304+
addr := startCustomizedMockServer(t, testOrdererURL, grpcServer, &broadcastServer)
305+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
304306

305307
blocks, errors := orderer.SendDeliver(&fab.SignedEnvelope{})
306308

@@ -318,7 +320,6 @@ func TestSendDeliverServerBadResponse(t *testing.T) {
318320

319321
func TestSendDeliverServerSuccessResponse(t *testing.T) {
320322

321-
grpcServer := grpc.NewServer()
322323
broadcastServer := mocks.MockBroadcastServer{
323324
DeliverResponse: &ab.DeliverResponse{
324325
Type: &ab.DeliverResponse_Status{
@@ -327,8 +328,11 @@ func TestSendDeliverServerSuccessResponse(t *testing.T) {
327328
},
328329
}
329330

330-
startCustomizedMockServer(t, testOrdererURL3, grpcServer, &broadcastServer)
331-
orderer, _ := NewOrderer(testOrdererURL3, "", "", mocks.NewMockConfig())
331+
grpcServer := grpc.NewServer()
332+
defer grpcServer.Stop()
333+
addr := startCustomizedMockServer(t, testOrdererURL, grpcServer, &broadcastServer)
334+
335+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
332336

333337
blocks, errors := orderer.SendDeliver(&fab.SignedEnvelope{})
334338

@@ -346,13 +350,14 @@ func TestSendDeliverServerSuccessResponse(t *testing.T) {
346350

347351
func TestSendDeliverFailure(t *testing.T) {
348352

349-
grpcServer := grpc.NewServer()
350353
broadcastServer := mocks.MockBroadcastServer{
351354
DeliverResponse: &ab.DeliverResponse{},
352355
}
353356

354-
startCustomizedMockServer(t, testOrdererURL6, grpcServer, &broadcastServer)
355-
orderer, _ := NewOrderer(testOrdererURL6, "", "", mocks.NewMockConfig())
357+
grpcServer := grpc.NewServer()
358+
defer grpcServer.Stop()
359+
addr := startCustomizedMockServer(t, testOrdererURL, grpcServer, &broadcastServer)
360+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
356361

357362
blocks, errors := orderer.SendDeliver(&fab.SignedEnvelope{})
358363

@@ -370,34 +375,35 @@ func TestSendDeliverFailure(t *testing.T) {
370375

371376
func TestSendBroadcastServerBadResponse(t *testing.T) {
372377

373-
grpcServer := grpc.NewServer()
374378
broadcastServer := mocks.MockBroadcastServer{
375379
BroadcastInternalServerError: true,
376380
}
377381

378-
startCustomizedMockServer(t, testOrdererURL4, grpcServer, &broadcastServer)
379-
orderer, _ := NewOrderer(testOrdererURL4, "", "", mocks.NewMockConfig())
382+
grpcServer := grpc.NewServer()
383+
defer grpcServer.Stop()
384+
addr := startCustomizedMockServer(t, testOrdererURL, grpcServer, &broadcastServer)
385+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
380386

381387
status, err := orderer.SendBroadcast(&fab.SignedEnvelope{})
382388

383-
if status.String() != "INTERNAL_SERVER_ERROR" {
384-
t.Fatalf("Expected internal server error, but got %v", status)
385-
}
386389
if err == nil || err.Error() != "broadcast response is not success : INTERNAL_SERVER_ERROR" {
387390
t.Fatalf("Expected internal server error, but got %s", err)
388391
}
389-
392+
if status.String() != "INTERNAL_SERVER_ERROR" {
393+
t.Fatalf("Expected internal server error, but got %v", status)
394+
}
390395
}
391396

392397
func TestSendBroadcastError(t *testing.T) {
393398

394-
grpcServer := grpc.NewServer()
395399
broadcastServer := mocks.MockBroadcastServer{
396400
BroadcastError: fmt.Errorf("just to test error scenario"),
397401
}
398402

399-
startCustomizedMockServer(t, testOrdererURL5, grpcServer, &broadcastServer)
400-
orderer, _ := NewOrderer(testOrdererURL5, "", "", mocks.NewMockConfig())
403+
grpcServer := grpc.NewServer()
404+
defer grpcServer.Stop()
405+
addr := startCustomizedMockServer(t, testOrdererURL, grpcServer, &broadcastServer)
406+
orderer, _ := NewOrderer(addr, "", "", mocks.NewMockConfig())
401407

402408
status, err := orderer.SendBroadcast(&fab.SignedEnvelope{})
403409

pkg/fabric-client/peer/peerendorser_test.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const (
2828
peer1URL = "localhost:7050"
2929
peer2URL = "localhost:7054"
3030
peerURLBad = "localhost:9999"
31-
testAddress = "0.0.0.0:5244"
31+
testAddress = "0.0.0.0:0"
3232
)
3333

3434
// TestNewPeerEndorserTLS validates that a client configured with TLS
@@ -196,7 +196,7 @@ func TestNewPeerEndorserTLSBad(t *testing.T) {
196196
// TestProcessProposalBadDial validates that a down
197197
// endorser fails gracefully.
198198
func TestProcessProposalBadDial(t *testing.T) {
199-
_, err := testProcessProposal(t, time.Millisecond*10)
199+
_, err := testProcessProposal(t, testAddress, time.Millisecond*10)
200200
if err == nil {
201201
t.Fatalf("Process proposal should have failed")
202202
}
@@ -205,20 +205,21 @@ func TestProcessProposalBadDial(t *testing.T) {
205205
// TestProcessProposalGoodDial validates that an up
206206
// endorser connects.
207207
func TestProcessProposalGoodDial(t *testing.T) {
208-
startEndorserServer(t)
208+
grpcServer := grpc.NewServer()
209+
defer grpcServer.Stop()
210+
_, addr := startEndorserServer(t, grpcServer)
209211

210-
_, err := testProcessProposal(t, connTimeout)
212+
_, err := testProcessProposal(t, addr, connTimeout)
211213
if err != nil {
212214
t.Fatalf("Process proposal failed (%v)", err)
213215
}
214216
}
215217

216-
func testProcessProposal(t *testing.T, to time.Duration) (apitxn.TransactionProposalResult, error) {
218+
func testProcessProposal(t *testing.T, url string, to time.Duration) (apitxn.TransactionProposalResult, error) {
217219
mockCtrl := gomock.NewController(t)
218220
defer mockCtrl.Finish()
219221
config := mock_apiconfig.NewMockConfig(mockCtrl)
220222

221-
url := testAddress
222223
config.EXPECT().IsTLSEnabled().Return(false)
223224

224225
conn, err := newPeerEndorser(url, "", "", to, true, config)
@@ -235,19 +236,19 @@ func mockTransactionProposal() apitxn.TransactionProposal {
235236
}
236237
}
237238

238-
// TODO: this function is duplicated.
239-
func startEndorserServer(t *testing.T) *mocks.MockEndorserServer {
240-
grpcServer := grpc.NewServer()
239+
func startEndorserServer(t *testing.T, grpcServer *grpc.Server) (*mocks.MockEndorserServer, string) {
241240
lis, err := net.Listen("tcp", testAddress)
241+
addr := lis.Addr().String()
242+
242243
endorserServer := &mocks.MockEndorserServer{}
243244
pb.RegisterEndorserServer(grpcServer, endorserServer)
244245
if err != nil {
245246
fmt.Printf("Error starting test server %s", err)
246247
t.FailNow()
247248
}
248-
fmt.Printf("Starting test server\n")
249+
fmt.Printf("Starting test server on %s\n", addr)
249250
go grpcServer.Serve(lis)
250-
return endorserServer
251+
return endorserServer, addr
251252
}
252253

253254
func TestTransactionProposalError(t *testing.T) {

0 commit comments

Comments
 (0)