github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/cache/skip_slot_cache_test.go (about)

     1  package cache_test
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/prysmaticlabs/prysm/beacon-chain/cache"
     8  	iface "github.com/prysmaticlabs/prysm/beacon-chain/state/interface"
     9  	"github.com/prysmaticlabs/prysm/beacon-chain/state/v1"
    10  	pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
    11  	"github.com/prysmaticlabs/prysm/shared/testutil/assert"
    12  	"github.com/prysmaticlabs/prysm/shared/testutil/require"
    13  )
    14  
    15  func TestSkipSlotCache_RoundTrip(t *testing.T) {
    16  	ctx := context.Background()
    17  	c := cache.NewSkipSlotCache()
    18  
    19  	r := [32]byte{'a'}
    20  	state, err := c.Get(ctx, r)
    21  	require.NoError(t, err)
    22  	assert.Equal(t, iface.BeaconState(nil), state, "Empty cache returned an object")
    23  
    24  	require.NoError(t, c.MarkInProgress(r))
    25  
    26  	state, err = v1.InitializeFromProto(&pb.BeaconState{
    27  		Slot: 10,
    28  	})
    29  	require.NoError(t, err)
    30  
    31  	require.NoError(t, c.Put(ctx, r, state))
    32  	require.NoError(t, c.MarkNotInProgress(r))
    33  
    34  	res, err := c.Get(ctx, r)
    35  	require.NoError(t, err)
    36  	assert.DeepEqual(t, res.CloneInnerState(), state.CloneInnerState(), "Expected equal protos to return from cache")
    37  }