mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-24 20:37:17 +00:00
73443208a1
* Remove native state flag and use native state in spectests * remove feature from tests * use e2e config in slasher simulator * use params.BeaconConfig in testutil * use correct function * use minimal config in go_test * fix TestListValidators * parameterize sync committee bits and aggregation bits * Fix TestServer_ListIndexedAttestations_GenesisEpoch (cherry picked from commit 254ab623dde08ae8886b152facdbbd8889ed79db) * fix more tests * fix even more * moreeee * aaaand more * one more fix * one more * simplify TestGetAltairDuties_UnknownPubkey * comment out problematic test * one more fix * one more * aaaand one more * another * use fieldparams in HydrateBlindedBeaconBlockBodyBellatrix * create new package for mainnet tests * TestServer_GetBellatrixBeaconBlock * change slashed validator index * clear cache in reward_test.go * deprecate flag * create bazel mainnet target * move attester mainnet test to mainnet target * "fix" proposer tests * use minimal config in TestServer_circuitBreakBuilder * fix TestProposer_ProposeBlock_OK * more fixes in validator package * more fixes * more fixes * test code * move TestProposer_GetBeaconBlock_BellatrixEpoch to minimal * finally * remove proposer_bellatrix_mainnet_test.go * fix TestServer_GetBellatrixBeaconBlock_HappyCase * fix TestServer_GetBellatrixBeaconBlock_BuilderCase * Preston needs to fix this! * Revert "Preston needs to fix this!" This reverts commit b03d97a16e3080e254c7b19d7f193d3c600ca869. * remove proto state tests * fix migration tests * static analysis fix * review * remove proto state * swap state in tests * fix BUILD file in /proto/testing * remove metrics test with nil state
78 lines
2.1 KiB
Go
78 lines
2.1 KiB
Go
//go:build !fuzz
|
|
|
|
package cache
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"math"
|
|
"testing"
|
|
|
|
state_native "github.com/prysmaticlabs/prysm/v3/beacon-chain/state/state-native"
|
|
"github.com/prysmaticlabs/prysm/v3/config/params"
|
|
types "github.com/prysmaticlabs/prysm/v3/consensus-types/primitives"
|
|
ethpb "github.com/prysmaticlabs/prysm/v3/proto/prysm/v1alpha1"
|
|
"github.com/prysmaticlabs/prysm/v3/testing/require"
|
|
)
|
|
|
|
func TestBalanceCache_AddGetBalance(t *testing.T) {
|
|
blockRoots := make([][]byte, params.BeaconConfig().SlotsPerHistoricalRoot)
|
|
for i := 0; i < len(blockRoots); i++ {
|
|
b := make([]byte, 8)
|
|
binary.LittleEndian.PutUint64(b, uint64(i))
|
|
blockRoots[i] = b
|
|
}
|
|
raw := ðpb.BeaconState{
|
|
BlockRoots: blockRoots,
|
|
}
|
|
st, err := state_native.InitializeFromProtoPhase0(raw)
|
|
require.NoError(t, err)
|
|
|
|
cache := NewEffectiveBalanceCache()
|
|
_, err = cache.Get(st)
|
|
require.ErrorContains(t, ErrNotFound.Error(), err)
|
|
|
|
b := uint64(100)
|
|
require.NoError(t, cache.AddTotalEffectiveBalance(st, b))
|
|
cachedB, err := cache.Get(st)
|
|
require.NoError(t, err)
|
|
require.Equal(t, b, cachedB)
|
|
|
|
require.NoError(t, st.SetSlot(1000))
|
|
_, err = cache.Get(st)
|
|
require.ErrorContains(t, ErrNotFound.Error(), err)
|
|
|
|
b = uint64(200)
|
|
require.NoError(t, cache.AddTotalEffectiveBalance(st, b))
|
|
cachedB, err = cache.Get(st)
|
|
require.NoError(t, err)
|
|
require.Equal(t, b, cachedB)
|
|
|
|
require.NoError(t, st.SetSlot(1000+params.BeaconConfig().SlotsPerHistoricalRoot))
|
|
_, err = cache.Get(st)
|
|
require.ErrorContains(t, ErrNotFound.Error(), err)
|
|
|
|
b = uint64(300)
|
|
require.NoError(t, cache.AddTotalEffectiveBalance(st, b))
|
|
cachedB, err = cache.Get(st)
|
|
require.NoError(t, err)
|
|
require.Equal(t, b, cachedB)
|
|
}
|
|
|
|
func TestBalanceCache_BalanceKey(t *testing.T) {
|
|
blockRoots := make([][]byte, params.BeaconConfig().SlotsPerHistoricalRoot)
|
|
for i := 0; i < len(blockRoots); i++ {
|
|
b := make([]byte, 8)
|
|
binary.LittleEndian.PutUint64(b, uint64(i))
|
|
blockRoots[i] = b
|
|
}
|
|
raw := ðpb.BeaconState{
|
|
BlockRoots: blockRoots,
|
|
}
|
|
st, err := state_native.InitializeFromProtoPhase0(raw)
|
|
require.NoError(t, err)
|
|
require.NoError(t, st.SetSlot(types.Slot(math.MaxUint64)))
|
|
|
|
_, err = balanceCacheKey(st)
|
|
require.NoError(t, err)
|
|
}
|