mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 21:07:18 +00:00
d17996f8b0
* Update V3 from V4 * Fix build v3 -> v4 * Update ssz * Update beacon_chain.pb.go * Fix formatter import * Update update-mockgen.sh comment to v4 * Fix conflicts. Pass build and tests * Fix test
73 lines
2.2 KiB
Go
73 lines
2.2 KiB
Go
package cache
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/prysmaticlabs/prysm/v4/consensus-types/primitives"
|
|
"github.com/prysmaticlabs/prysm/v4/testing/require"
|
|
)
|
|
|
|
func TestValidatorPayloadIDsCache_GetAndSaveValidatorPayloadIDs(t *testing.T) {
|
|
cache := NewProposerPayloadIDsCache()
|
|
var r [32]byte
|
|
i, p, ok := cache.GetProposerPayloadIDs(0, r)
|
|
require.Equal(t, false, ok)
|
|
require.Equal(t, primitives.ValidatorIndex(0), i)
|
|
require.Equal(t, [pIdLength]byte{}, p)
|
|
|
|
slot := primitives.Slot(1234)
|
|
vid := primitives.ValidatorIndex(34234324)
|
|
pid := [8]byte{1, 2, 3, 3, 7, 8, 7, 8}
|
|
r = [32]byte{1, 2, 3}
|
|
cache.SetProposerAndPayloadIDs(slot, vid, pid, r)
|
|
i, p, ok = cache.GetProposerPayloadIDs(slot, r)
|
|
require.Equal(t, true, ok)
|
|
require.Equal(t, vid, i)
|
|
require.Equal(t, pid, p)
|
|
|
|
slot = primitives.Slot(9456456)
|
|
vid = primitives.ValidatorIndex(6786745)
|
|
r = [32]byte{4, 5, 6}
|
|
cache.SetProposerAndPayloadIDs(slot, vid, [pIdLength]byte{}, r)
|
|
i, p, ok = cache.GetProposerPayloadIDs(slot, r)
|
|
require.Equal(t, true, ok)
|
|
require.Equal(t, vid, i)
|
|
require.Equal(t, [pIdLength]byte{}, p)
|
|
|
|
// reset cache without pid
|
|
slot = primitives.Slot(9456456)
|
|
vid = primitives.ValidatorIndex(11111)
|
|
r = [32]byte{7, 8, 9}
|
|
pid = [8]byte{3, 2, 3, 33, 72, 8, 7, 8}
|
|
cache.SetProposerAndPayloadIDs(slot, vid, pid, r)
|
|
i, p, ok = cache.GetProposerPayloadIDs(slot, r)
|
|
require.Equal(t, true, ok)
|
|
require.Equal(t, vid, i)
|
|
require.Equal(t, pid, p)
|
|
|
|
// Forked chain
|
|
r = [32]byte{1, 2, 3}
|
|
i, p, ok = cache.GetProposerPayloadIDs(slot, r)
|
|
require.Equal(t, false, ok)
|
|
require.Equal(t, primitives.ValidatorIndex(0), i)
|
|
require.Equal(t, [pIdLength]byte{}, p)
|
|
|
|
// existing pid - no change in cache
|
|
slot = primitives.Slot(9456456)
|
|
vid = primitives.ValidatorIndex(11111)
|
|
r = [32]byte{7, 8, 9}
|
|
newPid := [8]byte{1, 2, 3, 33, 72, 8, 7, 1}
|
|
cache.SetProposerAndPayloadIDs(slot, vid, newPid, r)
|
|
i, p, ok = cache.GetProposerPayloadIDs(slot, r)
|
|
require.Equal(t, true, ok)
|
|
require.Equal(t, vid, i)
|
|
require.Equal(t, pid, p)
|
|
|
|
// remove cache entry
|
|
cache.PrunePayloadIDs(slot + 1)
|
|
i, p, ok = cache.GetProposerPayloadIDs(slot, r)
|
|
require.Equal(t, false, ok)
|
|
require.Equal(t, primitives.ValidatorIndex(0), i)
|
|
require.Equal(t, [pIdLength]byte{}, p)
|
|
}
|