mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 12:57:18 +00:00
cebb62997d
* Add AFL third_party libraries * add beacon state fuzzing, add afl fuzz bundle * rm fuzzing engine * fix and lint * Check for array out of bounds when calculating proposer delta * failing test * fix * Checkpoint progress * Add requirement that inclusion distance is not zero, add regression test * No need for HTR since that is covered in process slots * Removing some fuzzit logic, old fuzz tests * Add ssz encoder test and fix * Fuzzing checkpoint, adding fuzzing to the p2p layer * ignore some libfuzzer files * Full testing of p2p processing of blocks, with some mocked stuff * use tmpdir and always process blocks * use checkptr * Update ethereumapis * go mod tidy * benchmarks for ferran's fast ssz hash tree root * Update fastssz * fmt * gaz * goimports * Fix * fix ethereumapis * fix again * kafka * fix gen file * fix compute signing root * gofmt * checkpoint progress * progress * checkpoint * updates * updates * merge fix * WIP * merge * fix build * fix merge related issues * cleanup * revert unrelated * lint * lint * lint * manual tags for fuzz * Commentary on upload script * some import fixes, but not all * fix //fuzz:fuzz_tests * rm unused test * update generated ssz * Set // +build libfuzzer * remove debug code * A bit of refactoring ot explain why there is a committee_disabled file Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
164 lines
3.8 KiB
Go
164 lines
3.8 KiB
Go
package testing
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/ethereum/go-ethereum/p2p/enr"
|
|
"github.com/gogo/protobuf/proto"
|
|
"github.com/libp2p/go-libp2p-core/control"
|
|
"github.com/libp2p/go-libp2p-core/host"
|
|
"github.com/libp2p/go-libp2p-core/network"
|
|
"github.com/libp2p/go-libp2p-core/peer"
|
|
pubsub "github.com/libp2p/go-libp2p-pubsub"
|
|
"github.com/multiformats/go-multiaddr"
|
|
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
|
|
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/p2p/encoder"
|
|
"github.com/prysmaticlabs/prysm/beacon-chain/p2p/peers"
|
|
pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
|
|
)
|
|
|
|
// FakeP2P stack
|
|
type FakeP2P struct {
|
|
}
|
|
|
|
// NewFuzzTestP2P - Create a new fake p2p stack.
|
|
func NewFuzzTestP2P() *FakeP2P {
|
|
return &FakeP2P{}
|
|
}
|
|
|
|
// Encoding -- fake.
|
|
func (p *FakeP2P) Encoding() encoder.NetworkEncoding {
|
|
return &encoder.SszNetworkEncoder{}
|
|
}
|
|
|
|
// AddConnectionHandler -- fake.
|
|
func (p *FakeP2P) AddConnectionHandler(f func(ctx context.Context, id peer.ID) error) {
|
|
|
|
}
|
|
|
|
// AddDisconnectionHandler -- fake.
|
|
func (p *FakeP2P) AddDisconnectionHandler(f func(ctx context.Context, id peer.ID) error) {
|
|
}
|
|
|
|
// AddPingMethod -- fake.
|
|
func (p *FakeP2P) AddPingMethod(reqFunc func(ctx context.Context, id peer.ID) error) {
|
|
|
|
}
|
|
|
|
// PeerID -- fake.
|
|
func (p *FakeP2P) PeerID() peer.ID {
|
|
return peer.ID("fake")
|
|
}
|
|
|
|
// ENR returns the enr of the local peer.
|
|
func (p *FakeP2P) ENR() *enr.Record {
|
|
return new(enr.Record)
|
|
}
|
|
|
|
// FindPeersWithSubnet mocks the p2p func.
|
|
func (p *FakeP2P) FindPeersWithSubnet(ctx context.Context, index uint64) (bool, error) {
|
|
return false, nil
|
|
}
|
|
|
|
// RefreshENR mocks the p2p func.
|
|
func (p *FakeP2P) RefreshENR() {
|
|
return
|
|
}
|
|
|
|
// LeaveTopic -- fake.
|
|
func (p *FakeP2P) LeaveTopic(topic string) error {
|
|
return nil
|
|
|
|
}
|
|
|
|
// Metadata -- fake.
|
|
func (p *FakeP2P) Metadata() *pb.MetaData {
|
|
return nil
|
|
}
|
|
|
|
// Peers -- fake.
|
|
func (p *FakeP2P) Peers() *peers.Status {
|
|
return nil
|
|
}
|
|
|
|
// PublishToTopic -- fake.
|
|
func (p *FakeP2P) PublishToTopic(ctx context.Context, topic string, data []byte, opts ...pubsub.PubOpt) error {
|
|
return nil
|
|
}
|
|
|
|
// Send -- fake.
|
|
func (p *FakeP2P) Send(ctx context.Context, msg interface{}, topic string, pid peer.ID) (network.Stream, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
// PubSub -- fake.
|
|
func (p *FakeP2P) PubSub() *pubsub.PubSub {
|
|
return nil
|
|
}
|
|
|
|
// MetadataSeq -- fake.
|
|
func (p *FakeP2P) MetadataSeq() uint64 {
|
|
return 0
|
|
}
|
|
|
|
// SetStreamHandler -- fake.
|
|
func (p *FakeP2P) SetStreamHandler(topic string, handler network.StreamHandler) {
|
|
|
|
}
|
|
|
|
// SubscribeToTopic -- fake.
|
|
func (p *FakeP2P) SubscribeToTopic(topic string, opts ...pubsub.SubOpt) (*pubsub.Subscription, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
// JoinTopic -- fake.
|
|
func (p *FakeP2P) JoinTopic(topic string, opts ...pubsub.TopicOpt) (*pubsub.Topic, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
// Host -- fake.
|
|
func (p *FakeP2P) Host() host.Host {
|
|
return nil
|
|
}
|
|
|
|
// Disconnect -- fake.
|
|
func (p *FakeP2P) Disconnect(pid peer.ID) error {
|
|
return nil
|
|
}
|
|
|
|
// Broadcast -- fake.
|
|
func (p *FakeP2P) Broadcast(ctx context.Context, msg proto.Message) error {
|
|
return nil
|
|
}
|
|
|
|
// BroadcastAttestation -- fake.
|
|
func (p *FakeP2P) BroadcastAttestation(ctx context.Context, subnet uint64, att *ethpb.Attestation) error {
|
|
return nil
|
|
}
|
|
|
|
// InterceptPeerDial -- fake.
|
|
func (p *FakeP2P) InterceptPeerDial(peer.ID) (allow bool) {
|
|
return true
|
|
}
|
|
|
|
// InterceptAddrDial -- fake.
|
|
func (p *FakeP2P) InterceptAddrDial(peer.ID, multiaddr.Multiaddr) (allow bool) {
|
|
return true
|
|
}
|
|
|
|
// InterceptAccept -- fake.
|
|
func (p *FakeP2P) InterceptAccept(n network.ConnMultiaddrs) (allow bool) {
|
|
return true
|
|
}
|
|
|
|
// InterceptSecured -- fake.
|
|
func (p *FakeP2P) InterceptSecured(network.Direction, peer.ID, network.ConnMultiaddrs) (allow bool) {
|
|
return true
|
|
}
|
|
|
|
// InterceptUpgraded -- fake.
|
|
func (p *FakeP2P) InterceptUpgraded(network.Conn) (allow bool, reason control.DisconnectReason) {
|
|
return true, 0
|
|
}
|