Merge PR #6258: Fix test breakage and run proto-gen

This commit is contained in:
Aaron Craelius 2020-05-20 13:23:38 -04:00 committed by GitHub
parent 98280712ce
commit 9a38883e9c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 130 additions and 3285 deletions

View File

@ -1,106 +1,108 @@
package tx_test
import (
"errors"
"testing"
// TODO: re-enable this test code in #5989 when there are proper implementations again
"github.com/stretchr/testify/require"
"github.com/cosmos/cosmos-sdk/client/tx"
"github.com/cosmos/cosmos-sdk/codec"
"github.com/cosmos/cosmos-sdk/std"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/x/bank"
)
func TestCalculateGas(t *testing.T) {
makeQueryFunc := func(gasUsed uint64, wantErr bool) func(string, []byte) ([]byte, int64, error) {
return func(string, []byte) ([]byte, int64, error) {
if wantErr {
return nil, 0, errors.New("query failed")
}
simRes := &sdk.SimulationResponse{
GasInfo: sdk.GasInfo{GasUsed: gasUsed, GasWanted: gasUsed},
Result: &sdk.Result{Data: []byte("tx data"), Log: "log"},
}
bz, err := codec.ProtoMarshalJSON(simRes)
if err != nil {
return nil, 0, err
}
return bz, 0, nil
}
}
type args struct {
queryFuncGasUsed uint64
queryFuncWantErr bool
adjustment float64
}
testCases := []struct {
name string
args args
wantEstimate uint64
wantAdjusted uint64
expPass bool
}{
{"error", args{0, true, 1.2}, 0, 0, false},
{"adjusted gas", args{10, false, 1.2}, 10, 12, true},
}
for _, tc := range testCases {
stc := tc
txf := tx.Factory{}.WithChainID("test-chain").WithTxGenerator(std.TxGenerator{})
t.Run(stc.name, func(t *testing.T) {
queryFunc := makeQueryFunc(stc.args.queryFuncGasUsed, stc.args.queryFuncWantErr)
simRes, gotAdjusted, err := tx.CalculateGas(queryFunc, txf.WithGasAdjustment(stc.args.adjustment))
if stc.expPass {
require.NoError(t, err)
require.Equal(t, simRes.GasInfo.GasUsed, stc.wantEstimate)
require.Equal(t, gotAdjusted, stc.wantAdjusted)
require.NotNil(t, simRes.Result)
} else {
require.Error(t, err)
require.Nil(t, simRes.Result)
}
})
}
}
func TestBuildSimTx(t *testing.T) {
txf := tx.Factory{}.
WithTxGenerator(std.TxGenerator{}).
WithAccountNumber(50).
WithSequence(23).
WithFees("50stake").
WithMemo("memo").
WithChainID("test-chain")
msg := bank.NewMsgSend(sdk.AccAddress("from"), sdk.AccAddress("to"), nil)
bz, err := tx.BuildSimTx(txf, msg)
require.NoError(t, err)
require.NotNil(t, bz)
tx := &std.Transaction{}
require.NoError(t, tx.Unmarshal(bz))
require.Equal(t, []sdk.Signature{sdk.Signature(std.StdSignature{})}, tx.GetSignatures())
}
func TestBuildUnsignedTx(t *testing.T) {
txf := tx.Factory{}.
WithTxGenerator(std.TxGenerator{}).
WithAccountNumber(50).
WithSequence(23).
WithFees("50stake").
WithMemo("memo").
WithChainID("test-chain")
msg := bank.NewMsgSend(sdk.AccAddress("from"), sdk.AccAddress("to"), nil)
tx, err := tx.BuildUnsignedTx(txf, msg)
require.NoError(t, err)
require.NotNil(t, tx)
require.Equal(t, []sdk.Signature{}, tx.GetSignatures())
}
//import (
// "errors"
// "testing"
//
// "github.com/stretchr/testify/require"
//
// "github.com/cosmos/cosmos-sdk/client/tx"
// "github.com/cosmos/cosmos-sdk/codec"
// "github.com/cosmos/cosmos-sdk/std"
// sdk "github.com/cosmos/cosmos-sdk/types"
// "github.com/cosmos/cosmos-sdk/x/bank"
//)
//
//func TestCalculateGas(t *testing.T) {
// makeQueryFunc := func(gasUsed uint64, wantErr bool) func(string, []byte) ([]byte, int64, error) {
// return func(string, []byte) ([]byte, int64, error) {
// if wantErr {
// return nil, 0, errors.New("query failed")
// }
// simRes := &sdk.SimulationResponse{
// GasInfo: sdk.GasInfo{GasUsed: gasUsed, GasWanted: gasUsed},
// Result: &sdk.Result{Data: []byte("tx data"), Log: "log"},
// }
//
// bz, err := codec.ProtoMarshalJSON(simRes)
// if err != nil {
// return nil, 0, err
// }
//
// return bz, 0, nil
// }
// }
//
// type args struct {
// queryFuncGasUsed uint64
// queryFuncWantErr bool
// adjustment float64
// }
//
// testCases := []struct {
// name string
// args args
// wantEstimate uint64
// wantAdjusted uint64
// expPass bool
// }{
// {"error", args{0, true, 1.2}, 0, 0, false},
// {"adjusted gas", args{10, false, 1.2}, 10, 12, true},
// }
//
// for _, tc := range testCases {
// stc := tc
// txf := tx.Factory{}.WithChainID("test-chain").WithTxGenerator(std.TxGenerator{})
//
// t.Run(stc.name, func(t *testing.T) {
// queryFunc := makeQueryFunc(stc.args.queryFuncGasUsed, stc.args.queryFuncWantErr)
// simRes, gotAdjusted, err := tx.CalculateGas(queryFunc, txf.WithGasAdjustment(stc.args.adjustment))
// if stc.expPass {
// require.NoError(t, err)
// require.Equal(t, simRes.GasInfo.GasUsed, stc.wantEstimate)
// require.Equal(t, gotAdjusted, stc.wantAdjusted)
// require.NotNil(t, simRes.Result)
// } else {
// require.Error(t, err)
// require.Nil(t, simRes.Result)
// }
// })
// }
//}
//
//func TestBuildSimTx(t *testing.T) {
// txf := tx.Factory{}.
// WithTxGenerator(std.TxGenerator{}).
// WithAccountNumber(50).
// WithSequence(23).
// WithFees("50stake").
// WithMemo("memo").
// WithChainID("test-chain")
//
// msg := bank.NewMsgSend(sdk.AccAddress("from"), sdk.AccAddress("to"), nil)
// bz, err := tx.BuildSimTx(txf, msg)
// require.NoError(t, err)
// require.NotNil(t, bz)
//
// tx := &std.Transaction{}
// require.NoError(t, tx.Unmarshal(bz))
// require.Equal(t, []sdk.Signature{sdk.Signature(std.StdSignature{})}, tx.GetSignatures())
//}
//
//func TestBuildUnsignedTx(t *testing.T) {
// txf := tx.Factory{}.
// WithTxGenerator(std.TxGenerator{}).
// WithAccountNumber(50).
// WithSequence(23).
// WithFees("50stake").
// WithMemo("memo").
// WithChainID("test-chain")
//
// msg := bank.NewMsgSend(sdk.AccAddress("from"), sdk.AccAddress("to"), nil)
// tx, err := tx.BuildUnsignedTx(txf, msg)
// require.NoError(t, err)
// require.NotNil(t, tx)
// require.Equal(t, []sdk.Signature{}, tx.GetSignatures())
//}

File diff suppressed because it is too large Load Diff

View File

@ -2,16 +2,8 @@ syntax = "proto3";
package cosmos_sdk.std.v1;
import "third_party/proto/cosmos-proto/cosmos.proto";
import "third_party/proto/gogoproto/gogo.proto";
import "types/types.proto";
import "x/auth/types/types.proto";
import "x/auth/vesting/types/types.proto";
import "x/bank/types/types.proto";
import "x/crisis/types/types.proto";
import "x/distribution/types/types.proto";
import "x/gov/types/types.proto";
import "x/slashing/types/types.proto";
import "x/staking/types/types.proto";
option go_package = "github.com/cosmos/cosmos-sdk/std";