From 1dcd2338395be04795ca9edf5b6145c3056f288d Mon Sep 17 00:00:00 2001 From: Baha Shaaban Date: Mon, 19 Nov 2018 11:06:29 -0500 Subject: [PATCH] [FAB-12464] add explicit retry for CC2CC test Change-Id: Ic19fe1fbf58e922f22266702dc4eba4575bf6417 Signed-off-by: Baha Shaaban --- .../pkg/client/channel/channel_client_test.go | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/test/integration/pkg/client/channel/channel_client_test.go b/test/integration/pkg/client/channel/channel_client_test.go index e750f5e532..87fca6fe15 100644 --- a/test/integration/pkg/client/channel/channel_client_test.go +++ b/test/integration/pkg/client/channel/channel_client_test.go @@ -7,6 +7,7 @@ SPDX-License-Identifier: Apache-2.0 package channel import ( + "fmt" "strings" "sync" "testing" @@ -267,14 +268,22 @@ func TestCCToCC(t *testing.T) { ), ), ) - _, err = chClient.InvokeHandler( - handler, - channel.Request{ - ChaincodeID: cc1ID, - Fcn: "invokecc", - Args: [][]byte{[]byte(cc2ID), []byte(`{"Args":["invoke","set","x1","y1"]}`)}, + _, err = retry.NewInvoker(retry.New(retry.TestRetryOpts)).Invoke( + func() (interface{}, error) { + b, e := chClient.InvokeHandler( + handler, + channel.Request{ + ChaincodeID: cc1ID, + Fcn: "invokecc", + Args: [][]byte{[]byte(cc2ID), []byte(`{"Args":["invoke","set","x1","y1"]}`)}, + }, + channel.WithRetry(retry.DefaultChannelOpts), + ) + if e != nil && strings.Contains(e.Error(), "500") { + return nil, status.New(status.TestStatus, status.GenericTransient.ToInt32(), fmt.Sprintf("invokecc with policy returned unexpected error: %v", e), nil) + } + return b, e }, - channel.WithRetry(retry.DefaultChannelOpts), ) require.Errorf(t, err, "expecting transaction to fail due to endorsement policy not being satisfied") stat, ok := status.FromError(err)