Skip to content

Commit

Permalink
Enable consolidation_request spectests
Browse files Browse the repository at this point in the history
  • Loading branch information
prestonvanloon committed Jul 1, 2024
1 parent 0ec068d commit 0e7772a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,5 @@ import (
)

func TestMainnet_Electra_Operations_Consolidation(t *testing.T) {
t.Skip("These tests were temporarily deleted in v1.5.0-alpha.2. See https://github.com/ethereum/consensus-specs/pull/3736")
operations.RunConsolidationTest(t, "mainnet")
}
25 changes: 21 additions & 4 deletions testing/spectest/shared/electra/operations/consolidations.go
Original file line number Diff line number Diff line change
@@ -1,32 +1,49 @@
package operations

import (
"context"
"path"
"testing"

"github.com/golang/snappy"
"github.com/prysmaticlabs/prysm/v5/beacon-chain/core/electra"
"github.com/prysmaticlabs/prysm/v5/beacon-chain/state"
"github.com/prysmaticlabs/prysm/v5/consensus-types/interfaces"
enginev1 "github.com/prysmaticlabs/prysm/v5/proto/engine/v1"
eth "github.com/prysmaticlabs/prysm/v5/proto/prysm/v1alpha1"
"github.com/prysmaticlabs/prysm/v5/testing/require"
"github.com/prysmaticlabs/prysm/v5/testing/spectest/utils"
"github.com/prysmaticlabs/prysm/v5/testing/util"
)

func RunConsolidationTest(t *testing.T, config string) {
t.Skip("Failing until spectests are updated to v1.5.0-alpha.3")
require.NoError(t, utils.SetConfig(t, config))
testFolders, testsFolderPath := utils.TestFolders(t, config, "electra", "operations/consolidation/pyspec_tests")
testFolders, testsFolderPath := utils.TestFolders(t, config, "electra", "operations/consolidation_request/pyspec_tests")
require.NotEqual(t, 0, len(testFolders), "missing tests for consolidation operation in folder")
for _, folder := range testFolders {
t.Run(folder.Name(), func(t *testing.T) {
folderPath := path.Join(testsFolderPath, folder.Name())
consolidationFile, err := util.BazelFileBytes(folderPath, "consolidation.ssz_snappy")
consolidationFile, err := util.BazelFileBytes(folderPath, "consolidation_request.ssz_snappy")
require.NoError(t, err)
consolidationSSZ, err := snappy.Decode(nil /* dst */, consolidationFile)
require.NoError(t, err, "Failed to decompress")
consolidation := &enginev1.ConsolidationRequest{}
require.NoError(t, consolidation.UnmarshalSSZ(consolidationSSZ), "Failed to unmarshal")

t.Fatal("Implement me")
body := &eth.BeaconBlockBodyElectra{ExecutionPayload: &enginev1.ExecutionPayloadElectra{
ConsolidationRequests: []*enginev1.ConsolidationRequest{consolidation},
}}
RunBlockOperationTest(t, folderPath, body, func(ctx context.Context, s state.BeaconState, b interfaces.ReadOnlySignedBeaconBlock) (state.BeaconState, error) {
ed, err := b.Block().Body().Execution()
if err != nil {
return nil, err
}
eed, ok := ed.(interfaces.ExecutionDataElectra)
if !ok {
t.Fatal("block does not have execution data for electra")
}
return s, electra.ProcessConsolidationRequests(ctx, s, eed.ConsolidationRequests())
})
})
}
}

0 comments on commit 0e7772a

Please sign in to comment.