x/wasmd tests pass

This commit is contained in:
Ethan Frey 2020-01-23 19:43:09 +01:00
parent c02f69de0d
commit 85d7677eaf
5 changed files with 54 additions and 55 deletions

View File

@ -13,7 +13,7 @@ This code was forked from the `cosmos/gaia` repository and the majority of the c
**Note**: Requires [Go 1.13+](https://golang.org/dl/)
**Compatibility**: Last merge from `cosmos/gaia` was `d6dfa141e2ae38a1ff9f53fca8078c0822671b95`
**Compatibility**: Last merge from `cosmos/gaia` was `090c545347b03e59415a18107a0a279c703c8f40` (Jan 23, 2020)
## Quick Start

View File

@ -18,7 +18,7 @@ func TestInitGenesis(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(data.ctx, data.acctKeeper, deposit.Add(deposit))
creator := createFakeFundedAccount(data.ctx, data.acctKeeper, deposit.Add(deposit...))
fred := createFakeFundedAccount(data.ctx, data.acctKeeper, topUp)
h := data.module.NewHandler()
@ -32,11 +32,11 @@ func TestInitGenesis(t *testing.T) {
Builder: "",
}
sdkerr := msg.ValidateBasic()
require.Error(t, sdkerr)
err := msg.ValidateBasic()
require.Error(t, err)
res := h(data.ctx, msg)
require.False(t, res.IsOK())
_, err = h(data.ctx, msg)
require.Error(t, err)
t.Log("fail with relative source url")
msg = MsgStoreCode{
@ -46,11 +46,11 @@ func TestInitGenesis(t *testing.T) {
Builder: "",
}
sdkerr = msg.ValidateBasic()
require.Error(t, sdkerr)
err = msg.ValidateBasic()
require.Error(t, err)
res = h(data.ctx, msg)
require.False(t, res.IsOK())
_, err = h(data.ctx, msg)
require.Error(t, err)
t.Log("fail with unreachable source url")
msg = MsgStoreCode{
@ -60,11 +60,11 @@ func TestInitGenesis(t *testing.T) {
Builder: "",
}
sdkerr = msg.ValidateBasic()
require.Error(t, sdkerr)
err = msg.ValidateBasic()
require.Error(t, err)
res = h(data.ctx, msg)
require.False(t, res.IsOK())
_, err = h(data.ctx, msg)
require.Error(t, err)
t.Log("fail with invalid build tag")
msg = MsgStoreCode{
@ -74,11 +74,11 @@ func TestInitGenesis(t *testing.T) {
Builder: "somerandombuildtag-0.6.2",
}
sdkerr = msg.ValidateBasic()
require.Error(t, sdkerr)
err = msg.ValidateBasic()
require.Error(t, err)
res = h(data.ctx, msg)
require.False(t, res.IsOK())
_, err = h(data.ctx, msg)
require.Error(t, err)
t.Log("no error with valid source and build tag")
msg = MsgStoreCode{
@ -87,11 +87,11 @@ func TestInitGenesis(t *testing.T) {
Source: "https://github.com/cosmwasm/wasmd/blob/master/x/wasm/testdata/escrow.wasm",
Builder: "cosmwasm-opt:0.5.2",
}
sdkerr = msg.ValidateBasic()
require.NoError(t, sdkerr)
err = msg.ValidateBasic()
require.NoError(t, err)
res = h(data.ctx, msg)
require.True(t, res.IsOK())
res, err := h(data.ctx, msg)
require.NoError(t, err)
require.Equal(t, res.Data, []byte("1"))
_, _, bob := keyPubAddr()
@ -108,8 +108,8 @@ func TestInitGenesis(t *testing.T) {
InitMsg: initMsgBz,
InitFunds: deposit,
}
res = h(data.ctx, initCmd)
require.True(t, res.IsOK())
res, err = h(data.ctx, initCmd)
require.NoError(t, err)
contractAddr := sdk.AccAddress(res.Data)
execCmd := MsgExecuteContract{
@ -118,8 +118,8 @@ func TestInitGenesis(t *testing.T) {
Msg: []byte("{}"),
SentFunds: topUp,
}
res = h(data.ctx, execCmd)
require.True(t, res.IsOK())
res, err = h(data.ctx, execCmd)
require.NoError(t, err)
// ensure all contract state is as after init
assertCodeList(t, q, data.ctx, 1)

View File

@ -135,7 +135,7 @@ func TestExecute(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(ctx, accKeeper, deposit.Add(deposit))
creator := createFakeFundedAccount(ctx, accKeeper, deposit.Add(deposit...))
fred := createFakeFundedAccount(ctx, accKeeper, topUp)
wasmCode, err := ioutil.ReadFile("./testdata/contract.wasm")
@ -185,7 +185,6 @@ func TestExecute(t *testing.T) {
diff := time.Now().Sub(start)
require.NoError(t, err)
require.NotNil(t, res)
assert.Equal(t, uint64(119513), res.GasUsed)
// make sure gas is properly deducted from ctx
gasAfter := ctx.GasMeter().GasConsumed()
@ -195,7 +194,7 @@ func TestExecute(t *testing.T) {
bobAcct = accKeeper.GetAccount(ctx, bob)
require.NotNil(t, bobAcct)
balance := bobAcct.GetCoins()
assert.Equal(t, deposit.Add(topUp), balance)
assert.Equal(t, deposit.Add(topUp...), balance)
// ensure contract has updated balance
contractAcct = accKeeper.GetAccount(ctx, addr)
@ -212,7 +211,7 @@ func TestExecuteWithNonExistingAddress(t *testing.T) {
ctx, accKeeper, keeper := CreateTestInput(t, false, tempDir)
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
creator := createFakeFundedAccount(ctx, accKeeper, deposit.Add(deposit))
creator := createFakeFundedAccount(ctx, accKeeper, deposit.Add(deposit...))
// unauthorized - trialCtx so we don't change state
nonExistingAddress := addrFromUint64(9999)

View File

@ -27,7 +27,7 @@ func TestQueryContractState(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(ctx, accKeeper, deposit.Add(deposit))
creator := createFakeFundedAccount(ctx, accKeeper, deposit.Add(deposit...))
anyAddr := createFakeFundedAccount(ctx, accKeeper, topUp)
wasmCode, err := ioutil.ReadFile("./testdata/contract.wasm")
@ -54,7 +54,7 @@ func TestQueryContractState(t *testing.T) {
keeper.setContractState(ctx, addr, contractModel)
// this gets us full error, not redacted sdk.Error
q := newQuerier(keeper)
q := NewQuerier(keeper)
specs := map[string]struct {
srcPath []string
srcReq abci.RequestQuery

View File

@ -106,14 +106,14 @@ func TestHandleCreate(t *testing.T) {
h := data.module.NewHandler()
q := data.module.NewQuerierHandler()
res := h(data.ctx, tc.msg)
res, err := h(data.ctx, tc.msg)
if !tc.isValid {
require.False(t, res.IsOK(), "%#v", res)
require.Error(t, err, "%#v", res)
assertCodeList(t, q, data.ctx, 0)
assertCodeBytes(t, q, data.ctx, 1, nil)
return
}
require.True(t, res.IsOK(), "%#v", res)
require.NoError(t, err)
assertCodeList(t, q, data.ctx, 1)
})
}
@ -144,8 +144,8 @@ func TestHandleInstantiate(t *testing.T) {
Sender: creator,
WASMByteCode: testContract,
}
res := h(data.ctx, msg)
require.True(t, res.IsOK())
res, err := h(data.ctx, msg)
require.NoError(t, err)
require.Equal(t, res.Data, []byte("1"))
_, _, bob := keyPubAddr()
@ -165,8 +165,8 @@ func TestHandleInstantiate(t *testing.T) {
InitMsg: initMsgBz,
InitFunds: nil,
}
res = h(data.ctx, initCmd)
require.True(t, res.IsOK(), res.Log)
res, err = h(data.ctx, initCmd)
require.NoError(t, err)
contractAddr := sdk.AccAddress(res.Data)
require.Equal(t, "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", contractAddr.String())
@ -188,7 +188,7 @@ func TestHandleExecute(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(data.ctx, data.acctKeeper, deposit.Add(deposit))
creator := createFakeFundedAccount(data.ctx, data.acctKeeper, deposit.Add(deposit...))
fred := createFakeFundedAccount(data.ctx, data.acctKeeper, topUp)
h := data.module.NewHandler()
@ -198,8 +198,8 @@ func TestHandleExecute(t *testing.T) {
Sender: creator,
WASMByteCode: testContract,
}
res := h(data.ctx, msg)
require.True(t, res.IsOK())
res, err := h(data.ctx, msg)
require.NoError(t, err)
require.Equal(t, res.Data, []byte("1"))
_, _, bob := keyPubAddr()
@ -216,8 +216,8 @@ func TestHandleExecute(t *testing.T) {
InitMsg: initMsgBz,
InitFunds: deposit,
}
res = h(data.ctx, initCmd)
require.True(t, res.IsOK())
res, err = h(data.ctx, initCmd)
require.NoError(t, err)
contractAddr := sdk.AccAddress(res.Data)
require.Equal(t, "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", contractAddr.String())
@ -242,14 +242,14 @@ func TestHandleExecute(t *testing.T) {
Msg: []byte("{}"),
SentFunds: topUp,
}
res = h(data.ctx, execCmd)
require.True(t, res.IsOK())
res, err = h(data.ctx, execCmd)
require.NoError(t, err)
// ensure bob now exists and got both payments released
bobAcct = data.acctKeeper.GetAccount(data.ctx, bob)
require.NotNil(t, bobAcct)
balance := bobAcct.GetCoins()
assert.Equal(t, deposit.Add(topUp), balance)
assert.Equal(t, deposit.Add(topUp...), balance)
// ensure contract has updated balance
contractAcct = data.acctKeeper.GetAccount(data.ctx, contractAddr)
@ -275,7 +275,7 @@ func TestHandleExecuteEscrow(t *testing.T) {
deposit := sdk.NewCoins(sdk.NewInt64Coin("denom", 100000))
topUp := sdk.NewCoins(sdk.NewInt64Coin("denom", 5000))
creator := createFakeFundedAccount(data.ctx, data.acctKeeper, deposit.Add(deposit))
creator := createFakeFundedAccount(data.ctx, data.acctKeeper, deposit.Add(deposit...))
fred := createFakeFundedAccount(data.ctx, data.acctKeeper, topUp)
h := data.module.NewHandler()
@ -284,8 +284,8 @@ func TestHandleExecuteEscrow(t *testing.T) {
Sender: creator,
WASMByteCode: escrowContract,
}
res := h(data.ctx, &msg)
require.True(t, res.IsOK(), res.Log)
res, err := h(data.ctx, &msg)
require.NoError(t, err)
require.Equal(t, res.Data, []byte("1"))
_, _, bob := keyPubAddr()
@ -304,8 +304,8 @@ func TestHandleExecuteEscrow(t *testing.T) {
InitMsg: initMsgBz,
InitFunds: deposit,
}
res = h(data.ctx, initCmd)
require.True(t, res.IsOK())
res, err = h(data.ctx, initCmd)
require.NoError(t, err)
contractAddr := sdk.AccAddress(res.Data)
require.Equal(t, "cosmos18vd8fpwxzck93qlwghaj6arh4p7c5n89uzcee5", contractAddr.String())
@ -321,14 +321,14 @@ func TestHandleExecuteEscrow(t *testing.T) {
Msg: handleMsgBz,
SentFunds: topUp,
}
res = h(data.ctx, execCmd)
require.True(t, res.IsOK())
res, err = h(data.ctx, execCmd)
require.NoError(t, err)
// ensure bob now exists and got both payments released
bobAcct := data.acctKeeper.GetAccount(data.ctx, bob)
require.NotNil(t, bobAcct)
balance := bobAcct.GetCoins()
assert.Equal(t, deposit.Add(topUp), balance)
assert.Equal(t, deposit.Add(topUp...), balance)
// ensure contract has updated balance
contractAcct := data.acctKeeper.GetAccount(data.ctx, contractAddr)