fix: Fix goleak in cli TestSSH/ForwardAgent test (#3369)

This commit is contained in:
Mathias Fredriksson
2022-08-03 16:06:40 +03:00
committed by GitHub
parent 9a023dd63b
commit 6e426cf47d

View File

@ -171,17 +171,13 @@ func TestSSH(t *testing.T) {
t.Parallel()
client, workspace, agentToken := setupWorkspaceForSSH(t)
_, _ = tGoContext(t, func(ctx context.Context) {
// Run this async so the SSH command has to wait for
// the build and agent to connect!
agentClient := codersdk.New(client.URL)
agentClient.SessionToken = agentToken
agentCloser := agent.New(agentClient.ListenWorkspaceAgent, &agent.Options{
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
})
<-ctx.Done()
_ = agentCloser.Close()
agentClient := codersdk.New(client.URL)
agentClient.SessionToken = agentToken
agentCloser := agent.New(agentClient.ListenWorkspaceAgent, &agent.Options{
Logger: slogtest.Make(t, nil).Leveled(slog.LevelDebug),
})
defer agentCloser.Close()
// Generate private key.
privateKey, err := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
@ -202,15 +198,16 @@ func TestSSH(t *testing.T) {
fd, err := l.Accept()
if err != nil {
if !errors.Is(err, net.ErrClosed) {
t.Logf("accept error: %v", err)
assert.NoError(t, err, "listener accept failed")
}
return
}
err = gosshagent.ServeAgent(kr, fd)
if !errors.Is(err, io.EOF) {
assert.NoError(t, err)
assert.NoError(t, err, "serve agent failed")
}
_ = fd.Close()
}
})
@ -230,7 +227,7 @@ func TestSSH(t *testing.T) {
cmd.SetErr(pty.Output())
cmdDone := tGo(t, func() {
err := cmd.ExecuteContext(ctx)
assert.NoError(t, err)
assert.NoError(t, err, "ssh command failed")
})
// Ensure that SSH_AUTH_SOCK is set.
@ -241,7 +238,7 @@ func TestSSH(t *testing.T) {
// Ensure that ssh-add lists our key.
pty.WriteLine("ssh-add -L")
keys, err := kr.List()
require.NoError(t, err)
require.NoError(t, err, "list keys failed")
pty.ExpectMatch(keys[0].String())
// And we're done.