diff --git a/go.mod b/go.mod index 3335ba41..08ea4743 100644 --- a/go.mod +++ b/go.mod @@ -235,6 +235,7 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.39.0 // indirect go.opentelemetry.io/otel/trace v1.39.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect + go.uber.org/goleak v1.3.0 // indirect go.uber.org/mock v0.6.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v2 v2.4.2 // indirect diff --git a/internal/daemon/controller/main_test.go b/internal/daemon/controller/main_test.go new file mode 100644 index 00000000..70e130cf --- /dev/null +++ b/internal/daemon/controller/main_test.go @@ -0,0 +1,11 @@ +package controller + +import ( + "testing" + + "go.uber.org/goleak" +) + +func TestMain(m *testing.M) { + goleak.VerifyTestMain(m, goleak.IgnoreCurrent()) +} diff --git a/internal/daemon/runtime/main_test.go b/internal/daemon/runtime/main_test.go new file mode 100644 index 00000000..efb0c1cf --- /dev/null +++ b/internal/daemon/runtime/main_test.go @@ -0,0 +1,11 @@ +package runtime + +import ( + "testing" + + "go.uber.org/goleak" +) + +func TestMain(m *testing.M) { + goleak.VerifyTestMain(m, goleak.IgnoreCurrent()) +} diff --git a/internal/daemon/runtime/service_launchd_test.go b/internal/daemon/runtime/service_launchd_test.go index d6eb15d4..0cfde63e 100644 --- a/internal/daemon/runtime/service_launchd_test.go +++ b/internal/daemon/runtime/service_launchd_test.go @@ -17,8 +17,8 @@ func TestRenderPlist(t *testing.T) { Command: []string{"/usr/bin/stabled", "start", "--home", "/data/node0"}, WorkingDirectory: "/data/node0", Environment: map[string]string{ - "HOME": "/data/node0", - "MYVAR": "myval", + "HOME": "/data/node0", + "MYVAR": "myval", }, StdoutPath: "/var/log/testnode.log", StderrPath: "/var/log/testnode.err", diff --git a/internal/daemon/server/main_test.go b/internal/daemon/server/main_test.go new file mode 100644 index 00000000..e664cab4 --- /dev/null +++ b/internal/daemon/server/main_test.go @@ -0,0 +1,17 @@ +package server + +import ( + "testing" + + "go.uber.org/goleak" +) + +func TestMain(m *testing.M) { + goleak.VerifyTestMain( + m, + goleak.IgnoreCurrent(), + // StreamProvisionLogs can outlive test cancellation when channel-close + // paths are exercised in isolated goroutines. + goleak.IgnoreTopFunction("github.com/altuslabsxyz/devnet-builder/internal/daemon/server.(*DevnetService).StreamProvisionLogs"), + ) +}