mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-08 23:18:15 -05:00
* Ran gopls modernize to fix everything go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./... * Override rules_go provided dependency for golang.org/x/tools to v0.38.0. To update this, checked out rules_go, then ran `bazel run //go/tools/releaser -- upgrade-dep -mirror=false org_golang_x_tools` and copied the patches. * Fix buildtag violations and ignore buildtag violations in external * Introduce modernize analyzer package. * Add modernize "any" analyzer. * Fix violations of any analyzer * Add modernize "appendclipped" analyzer. * Fix violations of appendclipped * Add modernize "bloop" analyzer. * Add modernize "fmtappendf" analyzer. * Add modernize "forvar" analyzer. * Add modernize "mapsloop" analyzer. * Add modernize "minmax" analyzer. * Fix violations of minmax analyzer * Add modernize "omitzero" analyzer. * Add modernize "rangeint" analyzer. * Fix violations of rangeint. * Add modernize "reflecttypefor" analyzer. * Fix violations of reflecttypefor analyzer. * Add modernize "slicescontains" analyzer. * Add modernize "slicessort" analyzer. * Add modernize "slicesdelete" analyzer. This is disabled by default for now. See https://go.dev/issue/73686. * Add modernize "stringscutprefix" analyzer. * Add modernize "stringsbuilder" analyzer. * Fix violations of stringsbuilder analyzer. * Add modernize "stringsseq" analyzer. * Add modernize "testingcontext" analyzer. * Add modernize "waitgroup" analyzer. * Changelog fragment * gofmt * gazelle * Add modernize "newexpr" analyzer. * Disable newexpr until go1.26 * Add more details in WORKSPACE on how to update the override * @nalepae feedback on min() * gofmt * Fix violations of forvar
79 lines
2.2 KiB
Go
79 lines
2.2 KiB
Go
//go:build !fuzz
|
|
|
|
package cache_test
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"math"
|
|
"testing"
|
|
|
|
"github.com/OffchainLabs/prysm/v7/beacon-chain/cache"
|
|
state_native "github.com/OffchainLabs/prysm/v7/beacon-chain/state/state-native"
|
|
"github.com/OffchainLabs/prysm/v7/config/params"
|
|
"github.com/OffchainLabs/prysm/v7/consensus-types/primitives"
|
|
ethpb "github.com/OffchainLabs/prysm/v7/proto/prysm/v1alpha1"
|
|
"github.com/OffchainLabs/prysm/v7/testing/require"
|
|
)
|
|
|
|
func TestBalanceCache_AddGetBalance(t *testing.T) {
|
|
blockRoots := make([][]byte, params.BeaconConfig().SlotsPerHistoricalRoot)
|
|
for i := range blockRoots {
|
|
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)
|
|
|
|
cc := cache.NewEffectiveBalanceCache()
|
|
_, err = cc.Get(st)
|
|
require.ErrorContains(t, cache.ErrNotFound.Error(), err)
|
|
|
|
b := uint64(100)
|
|
require.NoError(t, cc.AddTotalEffectiveBalance(st, b))
|
|
cachedB, err := cc.Get(st)
|
|
require.NoError(t, err)
|
|
require.Equal(t, b, cachedB)
|
|
|
|
require.NoError(t, st.SetSlot(1000))
|
|
_, err = cc.Get(st)
|
|
require.ErrorContains(t, cache.ErrNotFound.Error(), err)
|
|
|
|
b = uint64(200)
|
|
require.NoError(t, cc.AddTotalEffectiveBalance(st, b))
|
|
cachedB, err = cc.Get(st)
|
|
require.NoError(t, err)
|
|
require.Equal(t, b, cachedB)
|
|
|
|
require.NoError(t, st.SetSlot(1000+params.BeaconConfig().SlotsPerHistoricalRoot))
|
|
_, err = cc.Get(st)
|
|
require.ErrorContains(t, cache.ErrNotFound.Error(), err)
|
|
|
|
b = uint64(300)
|
|
require.NoError(t, cc.AddTotalEffectiveBalance(st, b))
|
|
cachedB, err = cc.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 := range blockRoots {
|
|
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(primitives.Slot(math.MaxUint64)))
|
|
|
|
_, err = cache.BalanceCacheKey(st)
|
|
require.NoError(t, err)
|
|
}
|