Skip to content

Commit 15f806c

Browse files
Tobias Kaupatjkralik
authored andcommitted
Remove go routine counting in test since it's not reliable
1 parent 443cbd0 commit 15f806c

File tree

1 file changed

+26
-48
lines changed

1 file changed

+26
-48
lines changed

udp/server_test.go

Lines changed: 26 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"context"
66
"net"
7-
"runtime"
87
"sync"
98
"testing"
109
"time"
@@ -141,52 +140,39 @@ func TestServer_Discover(t *testing.T) {
141140
}
142141

143142
func TestServer_CleanUpConns(t *testing.T) {
144-
runtime.GC()
145-
var initialGoCnt = runtime.NumGoroutine()
146-
147-
var wg sync.WaitGroup
148-
// Container func for defers
149-
func() {
150-
ld, err := coapNet.NewListenUDP("udp4", "")
151-
require.NoError(t, err)
152-
defer ld.Close()
153-
154-
var checkCloseWg sync.WaitGroup
155-
defer checkCloseWg.Wait()
156-
sd := udp.NewServer(udp.WithOnNewClientConn(func(cc *client.ClientConn) {
157-
checkCloseWg.Add(1)
158-
cc.AddOnClose(func() {
159-
checkCloseWg.Done()
160-
})
161-
}))
162-
defer sd.Stop()
163-
164-
wg.Add(1)
165-
go func() {
166-
defer wg.Done()
167-
err := sd.Serve(ld)
168-
require.NoError(t, err)
169-
}()
143+
ld, err := coapNet.NewListenUDP("udp4", "")
144+
require.NoError(t, err)
145+
defer ld.Close()
170146

171-
cc, err := udp.Dial(ld.LocalAddr().String())
172-
require.NoError(t, err)
147+
var checkCloseWg sync.WaitGroup
148+
defer checkCloseWg.Wait()
149+
sd := udp.NewServer(udp.WithOnNewClientConn(func(cc *client.ClientConn) {
173150
checkCloseWg.Add(1)
174151
cc.AddOnClose(func() {
175152
checkCloseWg.Done()
176153
})
177-
defer cc.Close()
178-
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
179-
defer cancel()
180-
err = cc.Ping(ctx)
181-
require.NoError(t, err)
154+
}))
155+
defer sd.Stop()
182156

157+
var wg sync.WaitGroup
158+
wg.Add(1)
159+
go func() {
160+
defer wg.Done()
161+
err := sd.Serve(ld)
162+
require.NoError(t, err)
183163
}()
184-
wg.Wait()
185-
runtime.GC()
186-
time.Sleep(10 * time.Millisecond)
187-
if !assert.Equal(t, initialGoCnt, runtime.NumGoroutine()) {
188-
printStacktrace(t)
189-
}
164+
165+
cc, err := udp.Dial(ld.LocalAddr().String())
166+
require.NoError(t, err)
167+
checkCloseWg.Add(1)
168+
cc.AddOnClose(func() {
169+
checkCloseWg.Done()
170+
})
171+
defer cc.Close()
172+
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
173+
defer cancel()
174+
err = cc.Ping(ctx)
175+
require.NoError(t, err)
190176
}
191177

192178
func TestServer_InactiveMonitor(t *testing.T) {
@@ -249,11 +235,3 @@ func TestServer_InactiveMonitor(t *testing.T) {
249235
checkCloseWg.Wait()
250236
require.True(t, inactivityDetected)
251237
}
252-
253-
func printStacktrace(t *testing.T) {
254-
buf := make([]byte, 1<<20)
255-
256-
stacklen := runtime.Stack(buf, true)
257-
t.Logf("Number goRoutines: %d\n", runtime.NumGoroutine())
258-
t.Logf("*** goroutine dump...\n%s\n*** end\n", buf[:stacklen])
259-
}

0 commit comments

Comments
 (0)