Skip to content

Commit a703482

Browse files
committed
Fix coderd test leak
1 parent ab4dcb1 commit a703482

File tree

5 files changed

+29
-8
lines changed

5 files changed

+29
-8
lines changed

coderd/coderdtest/coderdtest.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package coderdtest
33
import (
44
"context"
55
"database/sql"
6-
"fmt"
76
"io"
87
"net/http/httptest"
98
"net/url"
@@ -154,7 +153,6 @@ func AwaitProjectVersionImported(t *testing.T, client *codersdk.Client, organiza
154153
var err error
155154
projectVersion, err = client.ProjectVersion(context.Background(), organization, project, version)
156155
require.NoError(t, err)
157-
fmt.Printf("GOT: %s\n", projectVersion.Import.Status)
158156
return projectVersion.Import.Status.Completed()
159157
}, 3*time.Second, 25*time.Millisecond)
160158
return projectVersion

coderd/coderdtest/coderdtest_test.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package coderdtest_test
22

33
import (
4+
"context"
45
"testing"
56

67
"go.uber.org/goleak"
78

9+
"github.com/coder/coder/coderd"
810
"github.com/coder/coder/coderd/coderdtest"
11+
"github.com/coder/coder/database"
12+
"github.com/stretchr/testify/require"
913
)
1014

1115
func TestMain(m *testing.M) {
@@ -15,6 +19,17 @@ func TestMain(m *testing.M) {
1519
func TestNew(t *testing.T) {
1620
t.Parallel()
1721
client := coderdtest.New(t)
18-
_ = coderdtest.CreateInitialUser(t, client)
19-
_ = coderdtest.NewProvisionerDaemon(t, client)
22+
user := coderdtest.CreateInitialUser(t, client)
23+
closer := coderdtest.NewProvisionerDaemon(t, client)
24+
project := coderdtest.CreateProject(t, client, user.Organization)
25+
version := coderdtest.CreateProjectVersion(t, client, user.Organization, project.Name, nil)
26+
coderdtest.AwaitProjectVersionImported(t, client, user.Organization, project.Name, version.Name)
27+
workspace := coderdtest.CreateWorkspace(t, client, "me", project.ID)
28+
history, err := client.CreateWorkspaceHistory(context.Background(), "me", workspace.Name, coderd.CreateWorkspaceHistoryRequest{
29+
ProjectVersionID: version.ID,
30+
Transition: database.WorkspaceTransitionCreate,
31+
})
32+
require.NoError(t, err)
33+
coderdtest.AwaitWorkspaceHistoryProvisioned(t, client, "me", workspace.Name, history.Name)
34+
closer.Close()
2035
}

coderd/provisionerdaemons.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"encoding/json"
77
"errors"
88
"fmt"
9+
"io"
910
"net/http"
1011
"reflect"
1112
"time"
@@ -75,7 +76,9 @@ func (api *api) provisionerDaemonsServe(rw http.ResponseWriter, r *http.Request)
7576
// Multiplexes the incoming connection using yamux.
7677
// This allows multiple function calls to occur over
7778
// the same connection.
78-
session, err := yamux.Server(websocket.NetConn(r.Context(), conn, websocket.MessageBinary), nil)
79+
config := yamux.DefaultConfig()
80+
config.LogOutput = io.Discard
81+
session, err := yamux.Server(websocket.NetConn(r.Context(), conn, websocket.MessageBinary), config)
7982
if err != nil {
8083
_ = conn.Close(websocket.StatusInternalError, fmt.Sprintf("multiplex server: %s", err))
8184
return

codersdk/provisioners.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package codersdk
33
import (
44
"context"
55
"encoding/json"
6+
"io"
67
"net/http"
78

89
"github.com/hashicorp/yamux"
@@ -42,7 +43,9 @@ func (c *Client) ProvisionerDaemonClient(ctx context.Context) (proto.DRPCProvisi
4243
}
4344
return nil, readBodyAsError(res)
4445
}
45-
session, err := yamux.Client(websocket.NetConn(context.Background(), conn, websocket.MessageBinary), nil)
46+
config := yamux.DefaultConfig()
47+
config.LogOutput = io.Discard
48+
session, err := yamux.Client(websocket.NetConn(ctx, conn, websocket.MessageBinary), config)
4649
if err != nil {
4750
return nil, xerrors.Errorf("multiplex client: %w", err)
4851
}

provisioner/echo/serve.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ func (*echo) Parse(request *proto.Parse_Request, stream proto.DRPCProvisioner_Pa
6868
return err
6969
}
7070
}
71-
return nil
71+
<-stream.Context().Done()
72+
return stream.Context().Err()
7273
}
7374

7475
// Provision reads requests from the provided directory to stream responses.
@@ -97,7 +98,8 @@ func (*echo) Provision(request *proto.Provision_Request, stream proto.DRPCProvis
9798
return err
9899
}
99100
}
100-
return nil
101+
<-stream.Context().Done()
102+
return stream.Context().Err()
101103
}
102104

103105
type Responses struct {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy