mirror of https://github.com/certusone/wasmd.git
x/wasmd tests pass
This commit is contained in:
parent
c02f69de0d
commit
85d7677eaf
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue