Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit404616a

Browse files
committed
fix: Try to fix cli portforward test flakes
1 parentc8ed213 commit404616a

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

‎cli/portforward_test.go

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -141,13 +141,16 @@ func TestPortForward(t *testing.T) {
141141
},
142142
}
143143

144-
for_,c:=rangecases {//nolint:paralleltest // the `c := c` confuses the linter
144+
//nolint:paralleltest
145+
for_,c:=rangecases {
145146
c:=c
147+
// Avoid parallel test here because setupLocal reserves
148+
// a free open port which is not guaranteed to be free
149+
// after the listener closes.
150+
//nolint:paralleltest
146151
t.Run(c.name,func(t*testing.T) {
147-
t.Parallel()
148-
152+
//nolint:paralleltest
149153
t.Run("OnePort",func(t*testing.T) {
150-
t.Parallel()
151154
var (
152155
client=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerD:true})
153156
user=coderdtest.CreateFirstUser(t,client)
@@ -170,10 +173,9 @@ func TestPortForward(t *testing.T) {
170173
cmd.SetOut(io.MultiWriter(buf,os.Stderr))
171174
ctx,cancel:=context.WithCancel(context.Background())
172175
defercancel()
176+
errC:=make(chanerror)
173177
gofunc() {
174-
err:=cmd.ExecuteContext(ctx)
175-
require.Error(t,err)
176-
require.ErrorIs(t,err,context.Canceled)
178+
errC<-cmd.ExecuteContext(ctx)
177179
}()
178180
waitForPortForwardReady(t,buf)
179181

@@ -188,10 +190,13 @@ func TestPortForward(t *testing.T) {
188190
deferc2.Close()
189191
testDial(t,c2)
190192
testDial(t,c1)
193+
194+
err=<-errC
195+
require.ErrorIs(t,err,context.Canceled)
191196
})
192197

198+
//nolint:paralleltest
193199
t.Run("TwoPorts",func(t*testing.T) {
194-
t.Parallel()
195200
var (
196201
client=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerD:true})
197202
user=coderdtest.CreateFirstUser(t,client)
@@ -218,10 +223,9 @@ func TestPortForward(t *testing.T) {
218223
cmd.SetOut(io.MultiWriter(buf,os.Stderr))
219224
ctx,cancel:=context.WithCancel(context.Background())
220225
defercancel()
226+
errC:=make(chanerror)
221227
gofunc() {
222-
err:=cmd.ExecuteContext(ctx)
223-
require.Error(t,err)
224-
require.ErrorIs(t,err,context.Canceled)
228+
errC<-cmd.ExecuteContext(ctx)
225229
}()
226230
waitForPortForwardReady(t,buf)
227231

@@ -236,13 +240,16 @@ func TestPortForward(t *testing.T) {
236240
deferc2.Close()
237241
testDial(t,c2)
238242
testDial(t,c1)
243+
244+
err=<-errC
245+
require.ErrorIs(t,err,context.Canceled)
239246
})
240247
})
241248
}
242249

243250
// Test doing a TCP -> Unix forward.
251+
//nolint:paralleltest
244252
t.Run("TCP2Unix",func(t*testing.T) {
245-
t.Parallel()
246253
var (
247254
client=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerD:true})
248255
user=coderdtest.CreateFirstUser(t,client)
@@ -273,10 +280,9 @@ func TestPortForward(t *testing.T) {
273280
cmd.SetOut(io.MultiWriter(buf,os.Stderr))
274281
ctx,cancel:=context.WithCancel(context.Background())
275282
defercancel()
283+
errC:=make(chanerror)
276284
gofunc() {
277-
err:=cmd.ExecuteContext(ctx)
278-
require.Error(t,err)
279-
require.ErrorIs(t,err,context.Canceled)
285+
errC<-cmd.ExecuteContext(ctx)
280286
}()
281287
waitForPortForwardReady(t,buf)
282288

@@ -291,11 +297,14 @@ func TestPortForward(t *testing.T) {
291297
deferc2.Close()
292298
testDial(t,c2)
293299
testDial(t,c1)
300+
301+
err=<-errC
302+
require.ErrorIs(t,err,context.Canceled)
294303
})
295304

296305
// Test doing TCP, UDP and Unix at the same time.
306+
//nolint:paralleltest
297307
t.Run("All",func(t*testing.T) {
298-
t.Parallel()
299308
var (
300309
client=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerD:true})
301310
user=coderdtest.CreateFirstUser(t,client)
@@ -334,10 +343,9 @@ func TestPortForward(t *testing.T) {
334343
cmd.SetOut(io.MultiWriter(buf,os.Stderr))
335344
ctx,cancel:=context.WithCancel(context.Background())
336345
defercancel()
346+
errC:=make(chanerror)
337347
gofunc() {
338-
err:=cmd.ExecuteContext(ctx)
339-
require.Error(t,err)
340-
require.ErrorIs(t,err,context.Canceled)
348+
errC<-cmd.ExecuteContext(ctx)
341349
}()
342350
waitForPortForwardReady(t,buf)
343351

@@ -359,6 +367,9 @@ func TestPortForward(t *testing.T) {
359367
fori:=len(conns)-1;i>=0;i-- {
360368
testDial(t,conns[i])
361369
}
370+
371+
err:=<-errC
372+
require.ErrorIs(t,err,context.Canceled)
362373
})
363374
}
364375

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp