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  }