forked from alpe/cosmos-tracing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
wasmvm_test.go
53 lines (48 loc) · 1.75 KB
/
wasmvm_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package tracing
import (
"testing"
"github.com/opentracing/opentracing-go/mocktracer"
wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper"
"github.com/CosmWasm/wasmd/x/wasm/keeper/wasmtesting"
cosmwasm "github.com/CosmWasm/wasmvm"
wasmvmtypes "github.com/CosmWasm/wasmvm/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/opentracing/opentracing-go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestIBCPacketAck(t *testing.T) {
specs := map[string]struct {
querier func(ctx sdk.Context) wasmvmtypes.Querier
expErr bool
}{
"vanilla querier": {
querier: func(ctx sdk.Context) wasmvmtypes.Querier {
return wasmkeeper.QueryHandler{Ctx: ctx}
},
},
}
for name, spec := range specs {
t.Run(name, func(t *testing.T) {
tracer := mocktracer.New()
opentracing.SetGlobalTracer(tracer)
ctx, _, _ := createMinTestInput(t)
myRsp := &wasmvmtypes.IBCBasicResponse{}
myGas := uint64(123)
mock := &wasmtesting.MockWasmEngine{IBCPacketAckFn: func(codeID cosmwasm.Checksum, env wasmvmtypes.Env, msg wasmvmtypes.IBCPacketAckMsg, store cosmwasm.KVStore, goapi cosmwasm.GoAPI, querier cosmwasm.Querier, gasMeter cosmwasm.GasMeter, gasLimit uint64, deserCost wasmvmtypes.UFraction) (*wasmvmtypes.IBCBasicResponse, uint64, error) {
return myRsp, myGas, nil
}}
en := NewTraceWasmVm(mock)
msg := wasmvmtypes.IBCPacketAckMsg{}
querier := spec.querier(ctx)
gotRsp, gotGas, gotErr := en.IBCPacketAck([]byte{}, wasmvmtypes.Env{}, msg, nil, cosmwasm.GoAPI{}, querier, nil, 1, wasmvmtypes.UFraction{Numerator: 1, Denominator: 1})
if spec.expErr {
require.Error(t, gotErr)
return
}
require.NoError(t, gotErr)
assert.Equal(t, myRsp, gotRsp)
assert.Equal(t, myGas, gotGas)
})
}
}