fix: Improve closure of provisioner and agent tailnet dial (#6199)

This commit is contained in:
Mathias Fredriksson
2023-02-14 16:57:48 +02:00
committed by GitHub
parent 5df7872661
commit 41ae01d2e9
5 changed files with 17 additions and 3 deletions

View File

@ -396,13 +396,16 @@ func NewProvisionerDaemon(t *testing.T, coderAPI *coderd.API) io.Closer {
func NewExternalProvisionerDaemon(t *testing.T, client *codersdk.Client, org uuid.UUID, tags map[string]string) io.Closer {
echoClient, echoServer := provisionersdk.MemTransportPipe()
ctx, cancelFunc := context.WithCancel(context.Background())
serveDone := make(chan struct{})
t.Cleanup(func() {
_ = echoClient.Close()
_ = echoServer.Close()
cancelFunc()
<-serveDone
})
fs := afero.NewMemMapFs()
go func() {
defer close(serveDone)
err := echo.Serve(ctx, fs, &provisionersdk.ServeOptions{
Listener: echoServer,
})