Skip to content

Commit c7d66d3

Browse files
committed
test: fix cleanup order on provisioner daemon work dir
1 parent 4ebf490 commit c7d66d3

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

coderd/coderdtest/coderdtest.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -459,15 +459,20 @@ func NewWithAPI(t testing.TB, options *Options) (*codersdk.Client, io.Closer, *c
459459
func NewProvisionerDaemon(t testing.TB, coderAPI *coderd.API) io.Closer {
460460
t.Helper()
461461

462+
// t.Cleanup runs in last added, first called order. t.TempDir() will delete
463+
// the directory on cleanup, so we want to make sure the echoServer is closed
464+
// before we go ahead an attempt to delete it's work directory.
465+
// seems t.TempDir() is not safe to call from a different goroutine
466+
workDir := t.TempDir()
467+
462468
echoClient, echoServer := provisionersdk.MemTransportPipe()
463469
ctx, cancelFunc := context.WithCancel(context.Background())
464470
t.Cleanup(func() {
465471
_ = echoClient.Close()
466472
_ = echoServer.Close()
467473
cancelFunc()
468474
})
469-
// seems t.TempDir() is not safe to call from a different goroutine
470-
workDir := t.TempDir()
475+
471476
go func() {
472477
err := echo.Serve(ctx, &provisionersdk.ServeOptions{
473478
Listener: echoServer,

0 commit comments

Comments
 (0)