mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
swarm/network/stream: terminate disconnect goruotines in tests
This commit is contained in:
parent
080f4c26e0
commit
b151dc25a6
5 changed files with 67 additions and 21 deletions
|
|
@ -485,7 +485,8 @@ func testDeliveryFromNodes(t *testing.T, nodes, chunkCount int, skipCheck bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info("Starting simulation")
|
log.Info("Starting simulation")
|
||||||
ctx := context.Background()
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
result := sim.Run(ctx, func(ctx context.Context, sim *simulation.Simulation) (err error) {
|
result := sim.Run(ctx, func(ctx context.Context, sim *simulation.Simulation) (err error) {
|
||||||
nodeIDs := sim.UpNodeIDs()
|
nodeIDs := sim.UpNodeIDs()
|
||||||
//determine the pivot node to be the first node of the simulation
|
//determine the pivot node to be the first node of the simulation
|
||||||
|
|
@ -557,9 +558,16 @@ func testDeliveryFromNodes(t *testing.T, nodes, chunkCount int, skipCheck bool)
|
||||||
|
|
||||||
var disconnected atomic.Value
|
var disconnected atomic.Value
|
||||||
go func() {
|
go func() {
|
||||||
for d := range disconnections {
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
case d := <-disconnections:
|
||||||
if d.Error != nil {
|
if d.Error != nil {
|
||||||
|
log.Error("peer drop event error", "node", d.NodeID, "peer", d.PeerID, "err", err)
|
||||||
|
} else {
|
||||||
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
||||||
|
}
|
||||||
disconnected.Store(true)
|
disconnected.Store(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -657,7 +665,8 @@ func benchmarkDeliveryFromNodes(b *testing.B, nodes, chunkCount int, skipCheck b
|
||||||
b.Fatal(err)
|
b.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx := context.Background()
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
defer cancel()
|
||||||
result := sim.Run(ctx, func(ctx context.Context, sim *simulation.Simulation) (err error) {
|
result := sim.Run(ctx, func(ctx context.Context, sim *simulation.Simulation) (err error) {
|
||||||
nodeIDs := sim.UpNodeIDs()
|
nodeIDs := sim.UpNodeIDs()
|
||||||
node := nodeIDs[len(nodeIDs)-1]
|
node := nodeIDs[len(nodeIDs)-1]
|
||||||
|
|
@ -687,9 +696,16 @@ func benchmarkDeliveryFromNodes(b *testing.B, nodes, chunkCount int, skipCheck b
|
||||||
|
|
||||||
var disconnected atomic.Value
|
var disconnected atomic.Value
|
||||||
go func() {
|
go func() {
|
||||||
for d := range disconnections {
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
case d := <-disconnections:
|
||||||
if d.Error != nil {
|
if d.Error != nil {
|
||||||
|
log.Error("peer drop event error", "node", d.NodeID, "peer", d.PeerID, "err", err)
|
||||||
|
} else {
|
||||||
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
||||||
|
}
|
||||||
disconnected.Store(true)
|
disconnected.Store(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -148,9 +148,16 @@ func testIntervals(t *testing.T, live bool, history *Range, skipCheck bool) {
|
||||||
|
|
||||||
var disconnected atomic.Value
|
var disconnected atomic.Value
|
||||||
go func() {
|
go func() {
|
||||||
for d := range disconnections {
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
case d := <-disconnections:
|
||||||
if d.Error != nil {
|
if d.Error != nil {
|
||||||
|
log.Error("peer drop event error", "node", d.NodeID, "peer", d.PeerID, "err", err)
|
||||||
|
} else {
|
||||||
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
||||||
|
}
|
||||||
disconnected.Store(true)
|
disconnected.Store(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -164,9 +164,16 @@ func testSyncingViaGlobalSync(t *testing.T, chunkCount int, nodeCount int) {
|
||||||
|
|
||||||
var disconnected atomic.Value
|
var disconnected atomic.Value
|
||||||
go func() {
|
go func() {
|
||||||
for d := range disconnections {
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
case d := <-disconnections:
|
||||||
if d.Error != nil {
|
if d.Error != nil {
|
||||||
|
log.Error("peer drop event error", "node", d.NodeID, "peer", d.PeerID, "err", err)
|
||||||
|
} else {
|
||||||
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
||||||
|
}
|
||||||
disconnected.Store(true)
|
disconnected.Store(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,9 +122,16 @@ func testSyncBetweenNodes(t *testing.T, nodes, chunkCount int, skipCheck bool, p
|
||||||
|
|
||||||
var disconnected atomic.Value
|
var disconnected atomic.Value
|
||||||
go func() {
|
go func() {
|
||||||
for d := range disconnections {
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
case d := <-disconnections:
|
||||||
if d.Error != nil {
|
if d.Error != nil {
|
||||||
|
log.Error("peer drop event error", "node", d.NodeID, "peer", d.PeerID, "err", err)
|
||||||
|
} else {
|
||||||
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
||||||
|
}
|
||||||
disconnected.Store(true)
|
disconnected.Store(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,11 +81,20 @@ func watchSim(sim *simulation.Simulation) (context.Context, context.CancelFunc)
|
||||||
)
|
)
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for d := range disconnections {
|
for {
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return
|
||||||
|
case d := <-disconnections:
|
||||||
|
if d.Error != nil {
|
||||||
|
log.Error("peer drop event error", "node", d.NodeID, "peer", d.PeerID, "err", err)
|
||||||
|
} else {
|
||||||
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
log.Error("peer drop", "node", d.NodeID, "peer", d.PeerID)
|
||||||
|
}
|
||||||
panic("unexpected disconnect")
|
panic("unexpected disconnect")
|
||||||
cancelSimRun()
|
cancelSimRun()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
return ctx, cancelSimRun
|
return ctx, cancelSimRun
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue