From bf020ea103e9f360541690648f690aa3a5ba7571 Mon Sep 17 00:00:00 2001 From: Boris Nagaev Date: Wed, 26 Nov 2025 19:47:53 -0300 Subject: [PATCH] hashmail: isolate server per test Register the Aperture instance created in setupAperture with t.Cleanup so that every test stops its own server even if it fails. This keeps the global HashMail stream map clean and prevents TestHashMailServerLargeMessage from inheriting leftover streams from TestHashMailServerReturnStream. This prevents cascading test failures, when a failure in one test is replicated as many failures in many tests, complicating debugging from logs. --- hashmail_server_test.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hashmail_server_test.go b/hashmail_server_test.go index d4a4848..79909d4 100644 --- a/hashmail_server_test.go +++ b/hashmail_server_test.go @@ -188,6 +188,10 @@ func setupAperture(t *testing.T) { errChan := make(chan error) shutdown := make(chan struct{}) require.NoError(t, aperture.Start(errChan, shutdown)) + t.Cleanup(func() { + close(shutdown) + require.NoError(t, aperture.Stop()) + }) // Any error while starting? select {