From 5179e5259abdc147ea39a7d22226de5d289c8169 Mon Sep 17 00:00:00 2001 From: Mostyn Bramley-Moore Date: Mon, 2 Mar 2026 01:05:28 +0100 Subject: [PATCH] Use go.uber.org/goleak to test for zstd goroutine leaks --- go.mod | 1 + go.sum | 2 ++ internal/zstd/zstd_test.go | 8 ++++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 61adb2e..a22de95 100644 --- a/go.mod +++ b/go.mod @@ -15,6 +15,7 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/kr/pretty v0.3.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + go.uber.org/goleak v1.3.0 // indirect golang.org/x/net v0.51.0 // indirect golang.org/x/sys v0.41.0 // indirect golang.org/x/text v0.34.0 // indirect diff --git a/go.sum b/go.sum index ebdaadb..6b1a423 100644 --- a/go.sum +++ b/go.sum @@ -44,6 +44,8 @@ go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2W go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= diff --git a/internal/zstd/zstd_test.go b/internal/zstd/zstd_test.go index 8f26de5..b7eb17d 100644 --- a/internal/zstd/zstd_test.go +++ b/internal/zstd/zstd_test.go @@ -34,6 +34,8 @@ import ( "google.golang.org/grpc/encoding" "google.golang.org/grpc/test/bufconn" + "go.uber.org/goleak" + "github.com/mostynb/go-grpc-compression/internal/testserver" ) @@ -43,6 +45,7 @@ const ( ) func TestRegisteredCompression(t *testing.T) { + defer goleak.VerifyNone(t) clobbering := true PretendInit(clobbering) @@ -71,6 +74,7 @@ func TestRegisteredCompression(t *testing.T) { } func TestRoundTrip(t *testing.T) { + defer goleak.VerifyNone(t) clobbering := true PretendInit(clobbering) @@ -101,9 +105,9 @@ func TestRoundTrip(t *testing.T) { grpc.WithDefaultCallOptions(grpc.UseCompressor(Name)), grpc.WithTransportCredentials(insecure.NewCredentials())) require.NoError(t, err) - t.Cleanup(func() { + defer func() { assert.NoError(t, conn.Close()) - }) + }() client := testserver.NewTestServerClient(conn) resp, err := client.SendMessage(context.Background(), &testserver.MessageRequest{Request: message})