github.com/cosmos/cosmos-sdk@v0.50.10/baseapp/oe/optimistic_execution_test.go (about) 1 package oe 2 3 import ( 4 "context" 5 "errors" 6 "testing" 7 8 abci "github.com/cometbft/cometbft/abci/types" 9 "github.com/stretchr/testify/assert" 10 11 "cosmossdk.io/log" 12 ) 13 14 func testFinalizeBlock(_ context.Context, _ *abci.RequestFinalizeBlock) (*abci.ResponseFinalizeBlock, error) { 15 return nil, errors.New("test error") 16 } 17 18 func TestOptimisticExecution(t *testing.T) { 19 oe := NewOptimisticExecution(log.NewNopLogger(), testFinalizeBlock) 20 assert.True(t, oe.Enabled()) 21 oe.Execute(&abci.RequestProcessProposal{ 22 Hash: []byte("test"), 23 }) 24 assert.True(t, oe.Initialized()) 25 26 resp, err := oe.WaitResult() 27 assert.Nil(t, resp) 28 assert.EqualError(t, err, "test error") 29 30 assert.False(t, oe.AbortIfNeeded([]byte("test"))) 31 assert.True(t, oe.AbortIfNeeded([]byte("wrong_hash"))) 32 33 oe.Reset() 34 }