From d74d0e4e8cd57d77de9590892ef89584765251c8 Mon Sep 17 00:00:00 2001 From: Facundo Medica <14063057+facundomedica@users.noreply.github.com> Date: Thu, 19 Jan 2023 20:06:01 -0300 Subject: [PATCH] test: fix more flaky tests (#14699) --- tests/e2e/auth/suite.go | 7 ++++--- tests/e2e/authz/tx.go | 10 ++++++++-- tests/e2e/gov/cli_test.go | 4 ++-- tests/e2e/gov/deposits.go | 29 +++++++++++++++++++++++++---- 4 files changed, 39 insertions(+), 11 deletions(-) diff --git a/tests/e2e/auth/suite.go b/tests/e2e/auth/suite.go index c3f926403c..3e912741ea 100644 --- a/tests/e2e/auth/suite.go +++ b/tests/e2e/auth/suite.go @@ -1164,11 +1164,12 @@ func (s *E2ETestSuite) TestCLIMultisign() { s.Require().NoError(err) s.Require().NoError(s.network.WaitForNextBlock()) - resp, err := clitestutil.QueryBalancesExec(val1.ClientCtx, addr) - s.Require().NoError(err) - var balRes banktypes.QueryAllBalancesResponse err = s.network.RetryForBlocks(func() error { + resp, err := clitestutil.QueryBalancesExec(val1.ClientCtx, addr) + if err != nil { + return err + } return val1.ClientCtx.Codec.UnmarshalJSON(resp.Bytes(), &balRes) }, 3) s.Require().NoError(err) diff --git a/tests/e2e/authz/tx.go b/tests/e2e/authz/tx.go index 03d39c7944..613b959b4c 100644 --- a/tests/e2e/authz/tx.go +++ b/tests/e2e/authz/tx.go @@ -1024,7 +1024,10 @@ func (s *E2ETestSuite) TestExecSendAuthzWithAllowList() { s.Require().NoError(s.network.WaitForNextBlock()) // query tx and check result - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + err = s.network.RetryForBlocks(func() error { + out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + return err + }, 3) s.Require().NoError(err) s.Contains(out.String(), fmt.Sprintf("cannot send to %s address", notAllowedAddr)) } @@ -1241,7 +1244,10 @@ func (s *E2ETestSuite) TestExecDelegateAuthorization() { s.Require().NoError(val.ClientCtx.Codec.UnmarshalJSON(out.Bytes(), &response), out.String()) // query tx and check result - out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + err = s.network.RetryForBlocks(func() error { + out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, authcli.QueryTxCmd(), []string{response.TxHash, fmt.Sprintf("--%s=json", flags.FlagOutput)}) + return err + }, 3) s.Require().NoError(err) s.Contains(out.String(), fmt.Sprintf("cannot delegate/undelegate to %s validator", val.ValAddress.String())) } diff --git a/tests/e2e/gov/cli_test.go b/tests/e2e/gov/cli_test.go index a3581c21b7..451f763512 100644 --- a/tests/e2e/gov/cli_test.go +++ b/tests/e2e/gov/cli_test.go @@ -26,8 +26,8 @@ func TestDepositTestSuite(t *testing.T) { cfg := network.DefaultConfig(simapp.NewTestNetworkFixture) cfg.NumValidators = 1 genesisState := v1.DefaultGenesisState() - maxDepPeriod := time.Duration(15) * time.Second - votingPeriod := time.Duration(5) * time.Second + maxDepPeriod := time.Duration(20) * time.Second + votingPeriod := time.Duration(8) * time.Second genesisState.Params.MaxDepositPeriod = &maxDepPeriod genesisState.Params.VotingPeriod = &votingPeriod bz, err := cfg.Codec.MarshalJSON(genesisState) diff --git a/tests/e2e/gov/deposits.go b/tests/e2e/gov/deposits.go index 0e8f5e6ed0..a00003af42 100644 --- a/tests/e2e/gov/deposits.go +++ b/tests/e2e/gov/deposits.go @@ -8,6 +8,7 @@ import ( "github.com/stretchr/testify/suite" "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/testutil" clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli" "github.com/cosmos/cosmos-sdk/testutil/network" sdk "github.com/cosmos/cosmos-sdk/types" @@ -111,7 +112,6 @@ func (s *DepositTestSuite) TestQueryDepositsWithInitialDeposit() { deposit := s.queryDeposit(val, proposalID, false, "") s.Require().NotNil(deposit) s.Require().Equal(sdk.Coins(deposit.Amount).String(), depositAmount.String()) - s.Require().NoError(s.network.WaitForNextBlock()) // query deposits deposits := s.queryDeposits(val, proposalID, false, "") @@ -157,7 +157,20 @@ func (s *DepositTestSuite) queryDeposits(val *network.Validator, proposalID stri args := []string{proposalID, fmt.Sprintf("--%s=json", flags.FlagOutput)} var depositsRes *v1.QueryDepositsResponse cmd := cli.GetCmdQueryDeposits() - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + + var ( + out testutil.BufferWriter + err error + ) + + err = s.network.RetryForBlocks(func() error { + out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + if err == nil { + err = val.ClientCtx.LegacyAmino.UnmarshalJSON(out.Bytes(), &depositsRes) + return err + } + return err + }, 3) if exceptErr { s.Require().Error(err) @@ -166,7 +179,6 @@ func (s *DepositTestSuite) queryDeposits(val *network.Validator, proposalID stri } s.Require().NoError(err) - s.Require().NoError(val.ClientCtx.LegacyAmino.UnmarshalJSON(out.Bytes(), &depositsRes)) return depositsRes } @@ -174,7 +186,16 @@ func (s *DepositTestSuite) queryDeposit(val *network.Validator, proposalID strin args := []string{proposalID, val.Address.String(), fmt.Sprintf("--%s=json", flags.FlagOutput)} var depositRes *v1.Deposit cmd := cli.GetCmdQueryDeposit() - out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + var ( + out testutil.BufferWriter + err error + ) + + err = s.network.RetryForBlocks(func() error { + out, err = clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, args) + return err + }, 3) + if exceptErr { s.Require().Error(err) s.Require().Contains(err.Error(), message)