Skip to content

Commit baf3357

Browse files
committed
Add unit test for gas calculation
1 parent 78b5af2 commit baf3357

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

x/wasm/keeper/keeper_test.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2432,6 +2432,61 @@ func TestSetContractAdmin(t *testing.T) {
24322432
}
24332433
}
24342434

2435+
func TestGasConsumed(t *testing.T) {
2436+
specs := map[string]struct {
2437+
originalMeter stypes.GasMeter
2438+
gasRegister WasmGasRegister
2439+
consumeGas sdk.Gas
2440+
expPanic bool
2441+
expMultipliedGasConsumed uint64
2442+
}{
2443+
"all good": {
2444+
originalMeter: sdk.NewGasMeter(100),
2445+
gasRegister: NewWasmGasRegister(DefaultGasRegisterConfig()),
2446+
consumeGas: sdk.Gas(1),
2447+
expMultipliedGasConsumed: 140000000,
2448+
},
2449+
"consumeGas = limit": {
2450+
originalMeter: sdk.NewGasMeter(1),
2451+
gasRegister: NewWasmGasRegister(DefaultGasRegisterConfig()),
2452+
consumeGas: sdk.Gas(1),
2453+
expMultipliedGasConsumed: 140000000,
2454+
},
2455+
"consumeGas > limit": {
2456+
originalMeter: sdk.NewGasMeter(10),
2457+
gasRegister: NewWasmGasRegister(DefaultGasRegisterConfig()),
2458+
consumeGas: sdk.Gas(11),
2459+
expPanic: true,
2460+
},
2461+
"nil original meter": {
2462+
gasRegister: NewWasmGasRegister(DefaultGasRegisterConfig()),
2463+
consumeGas: sdk.Gas(1),
2464+
expPanic: true,
2465+
},
2466+
"nil gas register": {
2467+
originalMeter: sdk.NewGasMeter(100),
2468+
consumeGas: sdk.Gas(1),
2469+
expPanic: true,
2470+
},
2471+
}
2472+
2473+
for name, spec := range specs {
2474+
t.Run(name, func(t *testing.T) {
2475+
m := NewMultipliedGasMeter(spec.originalMeter, spec.gasRegister)
2476+
if spec.expPanic {
2477+
assert.Panics(t, func() {
2478+
m.originalMeter.ConsumeGas(spec.consumeGas, "test-panic")
2479+
_ = m.GasConsumed()
2480+
})
2481+
return
2482+
}
2483+
2484+
m.originalMeter.ConsumeGas(spec.consumeGas, "test")
2485+
assert.Equal(t, spec.expMultipliedGasConsumed, m.GasConsumed())
2486+
})
2487+
}
2488+
}
2489+
24352490
func attrsToStringMap(attrs []abci.EventAttribute) map[string]string {
24362491
r := make(map[string]string, len(attrs))
24372492
for _, v := range attrs {

0 commit comments

Comments
 (0)