Skip to content

Commit c75fde0

Browse files
authored
Merge pull request #2162 from CortexFoundation/dev
fix flaky tests writing to test.log after completion
2 parents c7e91c6 + 14161ed commit c75fde0

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

p2p/discover/v4_lookup_test.go

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"fmt"
2222
"net/netip"
2323
"slices"
24+
"sync"
2425
"testing"
2526

2627
"github.com/CortexFoundation/CortexTheseus/crypto"
@@ -67,15 +68,23 @@ func TestUDPv4_Lookup(t *testing.T) {
6768
func TestUDPv4_LookupIterator(t *testing.T) {
6869
t.Parallel()
6970
test := newUDPTest(t)
70-
defer test.close()
71+
var wg sync.WaitGroup
72+
defer func() {
73+
test.close()
74+
wg.Wait()
75+
}()
7176

7277
// Seed table with initial nodes.
7378
bootnodes := make([]*enode.Node, len(lookupTestnet.dists[256]))
7479
for i := range lookupTestnet.dists[256] {
7580
bootnodes[i] = lookupTestnet.node(256, i)
7681
}
7782
fillTable(test.table, bootnodes, true)
78-
go serveTestnet(test, lookupTestnet)
83+
wg.Add(1)
84+
go func() {
85+
serveTestnet(test, lookupTestnet)
86+
wg.Done()
87+
}()
7988

8089
// Create the iterator and collect the nodes it yields.
8190
iter := test.udp.RandomNodes()
@@ -102,15 +111,24 @@ func TestUDPv4_LookupIterator(t *testing.T) {
102111
func TestUDPv4_LookupIteratorClose(t *testing.T) {
103112
t.Parallel()
104113
test := newUDPTest(t)
105-
defer test.close()
114+
var wg sync.WaitGroup
115+
defer func() {
116+
test.close()
117+
wg.Wait()
118+
}()
106119

107120
// Seed table with initial nodes.
108121
bootnodes := make([]*enode.Node, len(lookupTestnet.dists[256]))
109122
for i := range lookupTestnet.dists[256] {
110123
bootnodes[i] = lookupTestnet.node(256, i)
111124
}
112125
fillTable(test.table, bootnodes, true)
113-
go serveTestnet(test, lookupTestnet)
126+
127+
wg.Add(1)
128+
go func() {
129+
serveTestnet(test, lookupTestnet)
130+
wg.Done()
131+
}()
114132

115133
it := test.udp.RandomNodes()
116134
if ok := it.Next(); !ok || it.Node() == nil {

p2p/enode/nodedb.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,10 @@ func nextNode(it iterator.Iterator) *Node {
496496

497497
// Close flushes and closes the database files.
498498
func (db *DB) Close() {
499-
close(db.quit)
499+
select {
500+
case <-db.quit: // already closed
501+
default:
502+
close(db.quit)
503+
}
500504
db.lvl.Close()
501505
}

0 commit comments

Comments
 (0)