Skip to content

Commit 6e426cf

Browse files
authored
fix: Fix goleak in cli TestSSH/ForwardAgent test (#3369)
1 parent 9a023dd commit 6e426cf

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

cli/ssh_test.go

+11-14
Original file line numberDiff line numberDiff line change
@@ -171,17 +171,13 @@ func TestSSH(t *testing.T) {
171171
t.Parallel()
172172

173173
client, workspace, agentToken := setupWorkspaceForSSH(t)
174-
_, _ = tGoContext(t, func(ctx context.Context) {
175-
// Run this async so the SSH command has to wait for
176-
// the build and agent to connect!
177-
agentClient := codersdk.New(client.URL)
178-
agentClient.SessionToken = agentToken
179-
agentCloser := agent.New(agentClient.ListenWorkspaceAgent, &agent.Options{
180-
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
181-
})
182-
<-ctx.Done()
183-
_ = agentCloser.Close()
174+
175+
agentClient := codersdk.New(client.URL)
176+
agentClient.SessionToken = agentToken
177+
agentCloser := agent.New(agentClient.ListenWorkspaceAgent, &agent.Options{
178+
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
184179
})
180+
defer agentCloser.Close()
185181

186182
// Generate private key.
187183
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
@@ -202,15 +198,16 @@ func TestSSH(t *testing.T) {
202198
fd, err := l.Accept()
203199
if err != nil {
204200
if !errors.Is(err, net.ErrClosed) {
205-
t.Logf("accept error: %v", err)
201+
assert.NoError(t, err, "listener accept failed")
206202
}
207203
return
208204
}
209205

210206
err = gosshagent.ServeAgent(kr, fd)
211207
if !errors.Is(err, io.EOF) {
212-
assert.NoError(t, err)
208+
assert.NoError(t, err, "serve agent failed")
213209
}
210+
_ = fd.Close()
214211
}
215212
})
216213

@@ -230,7 +227,7 @@ func TestSSH(t *testing.T) {
230227
cmd.SetErr(pty.Output())
231228
cmdDone := tGo(t, func() {
232229
err := cmd.ExecuteContext(ctx)
233-
assert.NoError(t, err)
230+
assert.NoError(t, err, "ssh command failed")
234231
})
235232

236233
// Ensure that SSH_AUTH_SOCK is set.
@@ -241,7 +238,7 @@ func TestSSH(t *testing.T) {
241238
// Ensure that ssh-add lists our key.
242239
pty.WriteLine("ssh-add -L")
243240
keys, err := kr.List()
244-
require.NoError(t, err)
241+
require.NoError(t, err, "list keys failed")
245242
pty.ExpectMatch(keys[0].String())
246243

247244
// And we're done.

0 commit comments

Comments
 (0)