mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 21:38:05 -05:00
* 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 b03d97a16e.
* 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
111 lines
3.5 KiB
Go
111 lines
3.5 KiB
Go
package helpers
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"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"
|
|
"github.com/prysmaticlabs/prysm/v3/encoding/bytesutil"
|
|
ethpb "github.com/prysmaticlabs/prysm/v3/proto/prysm/v1alpha1"
|
|
"github.com/prysmaticlabs/prysm/v3/testing/assert"
|
|
"github.com/prysmaticlabs/prysm/v3/testing/require"
|
|
)
|
|
|
|
func TestRandaoMix_OK(t *testing.T) {
|
|
randaoMixes := make([][]byte, params.BeaconConfig().EpochsPerHistoricalVector)
|
|
for i := 0; i < len(randaoMixes); i++ {
|
|
intInBytes := make([]byte, 32)
|
|
binary.LittleEndian.PutUint64(intInBytes, uint64(i))
|
|
randaoMixes[i] = intInBytes
|
|
}
|
|
state, err := state_native.InitializeFromProtoPhase0(ðpb.BeaconState{RandaoMixes: randaoMixes})
|
|
require.NoError(t, err)
|
|
tests := []struct {
|
|
epoch types.Epoch
|
|
randaoMix []byte
|
|
}{
|
|
{
|
|
epoch: 10,
|
|
randaoMix: randaoMixes[10],
|
|
},
|
|
{
|
|
epoch: 2344,
|
|
randaoMix: randaoMixes[2344],
|
|
},
|
|
{
|
|
epoch: 99999,
|
|
randaoMix: randaoMixes[99999%params.BeaconConfig().EpochsPerHistoricalVector],
|
|
},
|
|
}
|
|
for _, test := range tests {
|
|
require.NoError(t, state.SetSlot(params.BeaconConfig().SlotsPerEpoch.Mul(uint64(test.epoch+1))))
|
|
mix, err := RandaoMix(state, test.epoch)
|
|
require.NoError(t, err)
|
|
assert.DeepEqual(t, test.randaoMix, mix, "Incorrect randao mix")
|
|
}
|
|
}
|
|
|
|
func TestRandaoMix_CopyOK(t *testing.T) {
|
|
randaoMixes := make([][]byte, params.BeaconConfig().EpochsPerHistoricalVector)
|
|
for i := 0; i < len(randaoMixes); i++ {
|
|
intInBytes := make([]byte, 32)
|
|
binary.LittleEndian.PutUint64(intInBytes, uint64(i))
|
|
randaoMixes[i] = intInBytes
|
|
}
|
|
state, err := state_native.InitializeFromProtoPhase0(ðpb.BeaconState{RandaoMixes: randaoMixes})
|
|
require.NoError(t, err)
|
|
tests := []struct {
|
|
epoch types.Epoch
|
|
randaoMix []byte
|
|
}{
|
|
{
|
|
epoch: 10,
|
|
randaoMix: randaoMixes[10],
|
|
},
|
|
{
|
|
epoch: 2344,
|
|
randaoMix: randaoMixes[2344],
|
|
},
|
|
{
|
|
epoch: 99999,
|
|
randaoMix: randaoMixes[99999%params.BeaconConfig().EpochsPerHistoricalVector],
|
|
},
|
|
}
|
|
for _, test := range tests {
|
|
require.NoError(t, state.SetSlot(params.BeaconConfig().SlotsPerEpoch.Mul(uint64(test.epoch+1))))
|
|
mix, err := RandaoMix(state, test.epoch)
|
|
require.NoError(t, err)
|
|
uniqueNumber := uint64(params.BeaconConfig().EpochsPerHistoricalVector.Add(1000))
|
|
binary.LittleEndian.PutUint64(mix, uniqueNumber)
|
|
|
|
for _, mx := range randaoMixes {
|
|
mxNum := bytesutil.FromBytes8(mx)
|
|
assert.NotEqual(t, uniqueNumber, mxNum, "two distinct slices which have different representations in memory still contain the same value: %d", mxNum)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestGenerateSeed_OK(t *testing.T) {
|
|
randaoMixes := make([][]byte, params.BeaconConfig().EpochsPerHistoricalVector)
|
|
for i := 0; i < len(randaoMixes); i++ {
|
|
intInBytes := make([]byte, 32)
|
|
binary.LittleEndian.PutUint64(intInBytes, uint64(i))
|
|
randaoMixes[i] = intInBytes
|
|
}
|
|
slot := params.BeaconConfig().SlotsPerEpoch.Mul(uint64(params.BeaconConfig().MinSeedLookahead * 10))
|
|
state, err := state_native.InitializeFromProtoPhase0(ðpb.BeaconState{
|
|
RandaoMixes: randaoMixes,
|
|
Slot: slot,
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
got, err := Seed(state, 10, params.BeaconConfig().DomainBeaconAttester)
|
|
require.NoError(t, err)
|
|
|
|
wanted := [32]byte{102, 82, 23, 40, 226, 79, 171, 11, 203, 23, 175, 7, 88, 202, 80,
|
|
103, 68, 126, 195, 143, 190, 249, 210, 85, 138, 196, 158, 208, 11, 18, 136, 23}
|
|
assert.Equal(t, wanted, got, "Incorrect generated seeds")
|
|
}
|