Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d1cba32

Browse files
committed
Add tests for leak in cli
1 parent d085a1e commit d1cba32

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

cli/start.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import (
2323
"google.golang.org/api/idtoken"
2424
"google.golang.org/api/option"
2525

26+
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
27+
2628
"cdr.dev/slog"
2729
"cdr.dev/slog/sloggers/sloghuman"
2830
"github.com/coder/coder/cli/cliui"
@@ -36,7 +38,6 @@ import (
3638
"github.com/coder/coder/provisionerd"
3739
"github.com/coder/coder/provisionersdk"
3840
"github.com/coder/coder/provisionersdk/proto"
39-
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
4041
)
4142

4243
func start() *cobra.Command {

cli/start_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919
"time"
2020

2121
"github.com/stretchr/testify/require"
22+
"go.uber.org/goleak"
2223

2324
"github.com/coder/coder/cli/clitest"
2425
"github.com/coder/coder/coderd/coderdtest"
@@ -198,6 +199,25 @@ func TestStart(t *testing.T) {
198199
require.NoError(t, err)
199200
<-done
200201
})
202+
t.Run("DatadogTracerNoLeak", func(t *testing.T) {
203+
t.Parallel()
204+
ctx, cancelFunc := context.WithCancel(context.Background())
205+
defer cancelFunc()
206+
os.Setenv("CODER_TRACE_DATADOG", "true")
207+
defer func() {
208+
os.Unsetenv("CODER_TRACE_DATADOG")
209+
}()
210+
root, _ := clitest.New(t, "start", "--dev", "--tunnel=false", "--address", ":0")
211+
done := make(chan struct{})
212+
go func() {
213+
defer close(done)
214+
err := root.ExecuteContext(ctx)
215+
require.ErrorIs(t, err, context.Canceled)
216+
}()
217+
cancelFunc()
218+
<-done
219+
require.Error(t, goleak.Find())
220+
})
201221
}
202222

203223
func generateTLSCertificate(t testing.TB) (certPath, keyPath string) {

0 commit comments

Comments
 (0)