mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 02:12:23 +00:00
whisper: keep nondeterministric server start in peer tests
This commit is contained in:
parent
0931bcf554
commit
67f343b95a
1 changed files with 31 additions and 7 deletions
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
mrand "math/rand"
|
mrand "math/rand"
|
||||||
"sync"
|
"sync"
|
||||||
|
"sync/atomic"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
|
@ -210,24 +211,34 @@ func initialize(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = node.server.Start()
|
go startServer(t, node.server)
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("failed to start server %d.", i)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
nodes[i] = &node
|
||||||
|
}
|
||||||
|
|
||||||
|
waitForServersToStart(t)
|
||||||
|
|
||||||
|
for i := 0; i < NumNodes; i++ {
|
||||||
for j := 0; j < i; j++ {
|
for j := 0; j < i; j++ {
|
||||||
peerNodeId := nodes[j].id
|
peerNodeId := nodes[j].id
|
||||||
address, _ := net.ResolveTCPAddr("tcp", nodes[j].server.ListenAddr)
|
address, _ := net.ResolveTCPAddr("tcp", nodes[j].server.ListenAddr)
|
||||||
peerPort := uint16(address.Port)
|
peerPort := uint16(address.Port)
|
||||||
peerNode := discover.PubkeyID(&peerNodeId.PublicKey)
|
peerNode := discover.PubkeyID(&peerNodeId.PublicKey)
|
||||||
peer := discover.NewNode(peerNode, address.IP, peerPort, peerPort)
|
peer := discover.NewNode(peerNode, address.IP, peerPort, peerPort)
|
||||||
node.server.AddPeer(peer)
|
nodes[i].server.AddPeer(peer)
|
||||||
}
|
}
|
||||||
|
|
||||||
nodes[i] = &node
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func startServer(t *testing.T, s *p2p.Server) {
|
||||||
|
err := s.Start()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to start the fisrt server.")
|
||||||
|
}
|
||||||
|
|
||||||
|
atomic.AddInt64(&result.started, 1)
|
||||||
|
}
|
||||||
|
|
||||||
func stopServers() {
|
func stopServers() {
|
||||||
for i := 0; i < NumNodes; i++ {
|
for i := 0; i < NumNodes; i++ {
|
||||||
n := nodes[i]
|
n := nodes[i]
|
||||||
|
|
@ -483,3 +494,16 @@ func checkBloomFilterExchange(t *testing.T) {
|
||||||
time.Sleep(50 * time.Millisecond)
|
time.Sleep(50 * time.Millisecond)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func waitForServersToStart(t *testing.T) {
|
||||||
|
const iterations = 200
|
||||||
|
var started int64
|
||||||
|
for j := 0; j < iterations; j++ {
|
||||||
|
time.Sleep(50 * time.Millisecond)
|
||||||
|
started = atomic.LoadInt64(&result.started)
|
||||||
|
if started == NumNodes {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
t.Fatalf("Failed to start all the servers, running: %d", started)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue