Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit eb2200c

Browse files
committed
Fix tests
1 parent 86e1c79 commit eb2200c

File tree

4 files changed

+115
-175
lines changed

4 files changed

+115
-175
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ require (
2323
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4
2424
github.com/rjeczalik/notify v0.9.2
2525
github.com/spf13/cobra v1.2.1
26+
github.com/stretchr/testify v1.7.0
2627
golang.org/x/net v0.0.0-20210614182718-04defd469f4e
2728
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
2829
golang.org/x/sys v0.0.0-20210514084401-e8d321eab015

wsnet/dial_test.go

Lines changed: 81 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package wsnet
22

33
import (
4-
"bytes"
54
"context"
65
"crypto/rand"
76
"errors"
@@ -15,6 +14,8 @@ import (
1514
"cdr.dev/slog/sloggers/slogtest"
1615
"github.com/pion/ice/v2"
1716
"github.com/pion/webrtc/v3"
17+
"github.com/stretchr/testify/assert"
18+
"github.com/stretchr/testify/require"
1819
)
1920

2021
func ExampleDial_basic() {
@@ -50,37 +51,30 @@ func ExampleDial_basic() {
5051
// You now have access to the proxied remote port in `conn`.
5152
}
5253

53-
// nolint:gocognit,gocyclo
5454
func TestDial(t *testing.T) {
5555
t.Run("Ping", func(t *testing.T) {
5656
t.Parallel()
5757

5858
connectAddr, listenAddr := createDumbBroker(t)
59-
_, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
60-
if err != nil {
61-
t.Error(err)
62-
return
63-
}
59+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
60+
require.NoError(t, err)
61+
defer l.Close()
62+
6463
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
65-
if err != nil {
66-
t.Error(err)
67-
return
68-
}
64+
require.NoError(t, err)
65+
6966
err = dialer.Ping(context.Background())
70-
if err != nil {
71-
t.Error(err)
72-
}
67+
require.NoError(t, err)
7368
})
7469

7570
t.Run("Ping Close", func(t *testing.T) {
7671
t.Parallel()
7772

7873
connectAddr, listenAddr := createDumbBroker(t)
79-
_, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
80-
if err != nil {
81-
t.Error(err)
82-
return
83-
}
74+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
75+
require.NoError(t, err)
76+
defer l.Close()
77+
8478
turnAddr, closeTurn := createTURNServer(t, ice.SchemeTypeTURN)
8579
dialer, err := DialWebsocket(context.Background(), connectAddr, &DialOptions{
8680
ICEServers: []webrtc.ICEServer{{
@@ -90,167 +84,124 @@ func TestDial(t *testing.T) {
9084
CredentialType: webrtc.ICECredentialTypePassword,
9185
}},
9286
})
93-
if err != nil {
94-
t.Error(err)
95-
return
96-
}
87+
require.NoError(t, err)
88+
9789
_ = dialer.Ping(context.Background())
9890
closeTurn()
9991
err = dialer.Ping(context.Background())
100-
if err != io.EOF {
101-
t.Error(err)
102-
return
103-
}
92+
assert.ErrorIs(t, err, io.EOF)
10493
})
10594

10695
t.Run("OPError", func(t *testing.T) {
10796
t.Parallel()
10897

10998
connectAddr, listenAddr := createDumbBroker(t)
110-
_, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
111-
if err != nil {
112-
t.Error(err)
113-
return
114-
}
99+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
100+
require.NoError(t, err)
101+
defer l.Close()
102+
115103
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
116-
if err != nil {
117-
t.Error(err)
118-
}
104+
require.NoError(t, err)
105+
119106
_, err = dialer.DialContext(context.Background(), "tcp", "localhost:100")
120-
if err == nil {
121-
t.Error("should have gotten err")
122-
return
123-
}
124-
_, ok := err.(*net.OpError)
125-
if !ok {
126-
t.Error("invalid error type returned")
127-
return
128-
}
107+
assert.Error(t, err)
108+
109+
// Double pointer intended.
110+
netErr := &net.OpError{}
111+
assert.ErrorAs(t, err, &netErr)
129112
})
130113

131114
t.Run("Proxy", func(t *testing.T) {
132115
t.Parallel()
133116

134117
listener, err := net.Listen("tcp", "0.0.0.0:0")
135-
if err != nil {
136-
t.Error(err)
137-
return
138-
}
118+
require.NoError(t, err)
119+
139120
msg := []byte("Hello!")
140121
go func() {
141122
conn, err := listener.Accept()
142-
if err != nil {
143-
t.Error(err)
144-
}
123+
require.NoError(t, err)
124+
145125
_, _ = conn.Write(msg)
146126
}()
147127

148128
connectAddr, listenAddr := createDumbBroker(t)
149-
_, err = Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
150-
if err != nil {
151-
t.Error(err)
152-
return
153-
}
129+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
130+
require.NoError(t, err)
131+
defer l.Close()
132+
154133
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
155-
if err != nil {
156-
t.Error(err)
157-
return
158-
}
134+
require.NoError(t, err)
135+
159136
conn, err := dialer.DialContext(context.Background(), listener.Addr().Network(), listener.Addr().String())
160-
if err != nil {
161-
t.Error(err)
162-
return
163-
}
137+
require.NoError(t, err)
138+
164139
rec := make([]byte, len(msg))
165140
_, err = conn.Read(rec)
166-
if err != nil {
167-
t.Error(err)
168-
return
169-
}
170-
if !bytes.Equal(msg, rec) {
171-
t.Error("bytes were different", string(msg), string(rec))
172-
}
141+
require.NoError(t, err)
142+
143+
assert.Equal(t, msg, rec)
173144
})
174145

175146
// Expect that we'd get an EOF on the server closing.
176147
t.Run("EOF on Close", func(t *testing.T) {
177148
t.Parallel()
178149

179150
listener, err := net.Listen("tcp", "0.0.0.0:0")
180-
if err != nil {
181-
t.Error(err)
182-
return
183-
}
151+
require.NoError(t, err)
184152
go func() {
185153
_, _ = listener.Accept()
186154
}()
155+
187156
connectAddr, listenAddr := createDumbBroker(t)
188-
srv, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
189-
if err != nil {
190-
t.Error(err)
191-
return
192-
}
157+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
158+
require.NoError(t, err)
159+
defer l.Close()
160+
193161
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
194-
if err != nil {
195-
t.Error(err)
196-
}
162+
require.NoError(t, err)
163+
197164
conn, err := dialer.DialContext(context.Background(), listener.Addr().Network(), listener.Addr().String())
198-
if err != nil {
199-
t.Error(err)
200-
return
201-
}
202-
go srv.Close()
165+
require.NoError(t, err)
166+
167+
go l.Close()
203168
rec := make([]byte, 16)
204169
_, err = conn.Read(rec)
205-
if !errors.Is(err, io.EOF) {
206-
t.Error(err)
207-
return
208-
}
170+
assert.ErrorIs(t, err, io.EOF)
209171
})
210172

211173
t.Run("Disconnect", func(t *testing.T) {
212174
t.Parallel()
213175

214176
connectAddr, listenAddr := createDumbBroker(t)
215-
_, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
216-
if err != nil {
217-
t.Error(err)
218-
return
219-
}
177+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
178+
require.NoError(t, err)
179+
defer l.Close()
180+
220181
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
221-
if err != nil {
222-
t.Error(err)
223-
return
224-
}
182+
require.NoError(t, err)
183+
225184
err = dialer.Close()
226-
if err != nil {
227-
t.Error(err)
228-
return
229-
}
185+
require.NoError(t, err)
186+
230187
err = dialer.Ping(context.Background())
231-
if err != webrtc.ErrConnectionClosed {
232-
t.Error(err)
233-
}
188+
assert.ErrorIs(t, err, webrtc.ErrConnectionClosed)
234189
})
235190

236191
t.Run("Disconnect DialContext", func(t *testing.T) {
237192
t.Parallel()
238193

239194
tcpListener, err := net.Listen("tcp", "0.0.0.0:0")
240-
if err != nil {
241-
t.Error(err)
242-
return
243-
}
195+
require.NoError(t, err)
244196
go func() {
245197
_, _ = tcpListener.Accept()
246198
}()
247199

248200
connectAddr, listenAddr := createDumbBroker(t)
249-
_, err = Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
250-
if err != nil {
251-
t.Error(err)
252-
return
253-
}
201+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
202+
require.NoError(t, err)
203+
defer l.Close()
204+
254205
turnAddr, closeTurn := createTURNServer(t, ice.SchemeTypeTURN)
255206
dialer, err := DialWebsocket(context.Background(), connectAddr, &DialOptions{
256207
ICEServers: []webrtc.ICEServer{{
@@ -260,42 +211,32 @@ func TestDial(t *testing.T) {
260211
CredentialType: webrtc.ICECredentialTypePassword,
261212
}},
262213
})
263-
if err != nil {
264-
t.Error(err)
265-
return
266-
}
214+
require.NoError(t, err)
215+
267216
conn, err := dialer.DialContext(context.Background(), "tcp", tcpListener.Addr().String())
268-
if err != nil {
269-
t.Error(err)
270-
return
271-
}
217+
require.NoError(t, err)
218+
272219
// Close the TURN server before reading...
273220
// WebRTC connections take a few seconds to timeout.
274221
closeTurn()
275222
_, err = conn.Read(make([]byte, 16))
276-
if err != io.EOF {
277-
t.Error(err)
278-
return
279-
}
223+
assert.ErrorIs(t, err, io.EOF)
280224
})
281225

282226
t.Run("Closed", func(t *testing.T) {
283227
t.Parallel()
284228

285229
connectAddr, listenAddr := createDumbBroker(t)
286-
_, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
287-
if err != nil {
288-
t.Error(err)
289-
return
290-
}
230+
l, err := Listen(context.Background(), slogtest.Make(t, nil), listenAddr, "")
231+
require.NoError(t, err)
232+
defer l.Close()
233+
291234
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
292-
if err != nil {
293-
t.Error(err)
294-
return
295-
}
235+
require.NoError(t, err)
296236
go func() {
297237
_ = dialer.Close()
298238
}()
239+
299240
select {
300241
case <-dialer.Closed():
301242
case <-time.NewTimer(time.Second).C:
@@ -334,11 +275,12 @@ func BenchmarkThroughput(b *testing.B) {
334275
}
335276
}()
336277
connectAddr, listenAddr := createDumbBroker(b)
337-
_, err = Listen(context.Background(), slogtest.Make(b, nil), listenAddr, "")
278+
l, err := Listen(context.Background(), slogtest.Make(b, nil), listenAddr, "")
338279
if err != nil {
339280
b.Error(err)
340281
return
341282
}
283+
defer l.Close()
342284

343285
dialer, err := DialWebsocket(context.Background(), connectAddr, nil)
344286
if err != nil {

0 commit comments

Comments
 (0)