Skip to content

Commit

Permalink
Resolve Flakey P2P Tests (#5285)
Browse files Browse the repository at this point in the history
* double time for flakey test

* fix test flakeyness in p2p:

* flakey

* time tolerance

* greater tolerance
  • Loading branch information
rauljordan authored Apr 2, 2020
1 parent d15c12f commit 6e84806
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 18 deletions.
2 changes: 2 additions & 0 deletions beacon-chain/p2p/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ go_test(
"//beacon-chain/core/helpers:go_default_library",
"//beacon-chain/db/testing:go_default_library",
"//beacon-chain/p2p/testing:go_default_library",
"//proto/beacon/p2p/v1:go_default_library",
"//proto/testing:go_default_library",
"//shared/iputils:go_default_library",
"//shared/params:go_default_library",
Expand All @@ -125,6 +126,7 @@ go_test(
"@com_github_multiformats_go_multiaddr//:go_default_library",
"@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
"@com_github_prysmaticlabs_go_bitfield//:go_default_library",
"@com_github_prysmaticlabs_go_ssz//:go_default_library",
"@com_github_sirupsen_logrus//:go_default_library",
"@com_github_sirupsen_logrus//hooks/test:go_default_library",
],
Expand Down
2 changes: 1 addition & 1 deletion beacon-chain/p2p/discovery_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func TestStaticPeering_PeersAreAdded(t *testing.T) {
}
s.Start()

time.Sleep(2 * time.Second)
time.Sleep(10 * time.Second)
peers := s.host.Network().Peers()
if len(peers) != 5 {
t.Errorf("Not all peers added to peerstore, wanted %d but got %d", 5, len(peers))
Expand Down
40 changes: 23 additions & 17 deletions beacon-chain/p2p/fork_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@ import (

"github.com/ethereum/go-ethereum/p2p/discover"
"github.com/ethereum/go-ethereum/p2p/enode"
"github.com/ethereum/go-ethereum/p2p/enr"
"github.com/prysmaticlabs/go-ssz"
"github.com/prysmaticlabs/prysm/beacon-chain/core/helpers"
testDB "github.com/prysmaticlabs/prysm/beacon-chain/db/testing"
pb "github.com/prysmaticlabs/prysm/proto/beacon/p2p/v1"
"github.com/prysmaticlabs/prysm/shared/params"
"github.com/prysmaticlabs/prysm/shared/testutil"
"github.com/sirupsen/logrus"
Expand Down Expand Up @@ -193,22 +196,30 @@ func TestDiscv5_AddRetrieveForkEntryENR(t *testing.T) {
c.ForkVersionSchedule = map[uint64][]byte{
0: params.BeaconConfig().GenesisForkVersion,
1: {0, 0, 0, 1},
2: {0, 0, 0, 2},
3: {0, 0, 0, 3},
}
nextForkEpoch := uint64(2)
nextForkVersion := []byte{0, 0, 0, 2}
nextForkEpoch := uint64(1)
nextForkVersion := []byte{0, 0, 0, 1}
c.NextForkEpoch = nextForkEpoch
c.NextForkVersion = nextForkVersion
params.OverrideBeaconConfig(c)
defer params.OverrideBeaconConfig(originalConfig)

// We simulate being in epoch 1.
secondsPerEpoch := params.BeaconConfig().SlotsPerEpoch * params.BeaconConfig().SecondsPerSlot
additionalBuffer := 2 * time.Second
durationPerEpoch := (time.Duration(secondsPerEpoch) * time.Second) + additionalBuffer
genesisTime := time.Now().Add(-durationPerEpoch)

genesisTime := time.Now()
genesisValidatorsRoot := make([]byte, 32)
digest, err := createForkDigest(genesisTime, make([]byte, 32))
if err != nil {
t.Fatal(err)
}
enrForkID := &pb.ENRForkID{
CurrentForkDigest: digest[:],
NextForkVersion: nextForkVersion,
NextForkEpoch: nextForkEpoch,
}
enc, err := ssz.Marshal(enrForkID)
if err != nil {
t.Fatal(err)
}
forkEntry := enr.WithEntry(eth2ENRKey, enc)
// In epoch 1 of current time, the fork version should be
// {0, 0, 0, 1} according to the configuration override above.
temp := testutil.TempDir()
Expand All @@ -226,14 +237,9 @@ func TestDiscv5_AddRetrieveForkEntryENR(t *testing.T) {
t.Fatal(err)
}
localNode := enode.NewLocalNode(db, pkey)
localNode.Set(forkEntry)

genesisValidatorsRoot := make([]byte, 32)
localNode, err = addForkEntry(localNode, genesisTime, genesisValidatorsRoot)
if err != nil {
t.Fatal(err)
}

want, err := helpers.ComputeForkDigest([]byte{0, 0, 0, 1}, genesisValidatorsRoot)
want, err := helpers.ComputeForkDigest([]byte{0, 0, 0, 0}, genesisValidatorsRoot)
if err != nil {
t.Fatal(err)
}
Expand Down

0 comments on commit 6e84806

Please sign in to comment.