From ce97a2449e24bc7985e1ad614b0a8b1713d10894 Mon Sep 17 00:00:00 2001 From: Terry Howe Date: Wed, 27 Aug 2025 10:41:46 -0600 Subject: [PATCH] fix: move mockdns to packge level Signed-off-by: Terry Howe --- pkg/registry/main_test.go | 51 ++++++++++++++++++++++++++++++++++++++ pkg/registry/utils_test.go | 13 ---------- 2 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 pkg/registry/main_test.go diff --git a/pkg/registry/main_test.go b/pkg/registry/main_test.go new file mode 100644 index 000000000..4f6e11e4f --- /dev/null +++ b/pkg/registry/main_test.go @@ -0,0 +1,51 @@ +/* +Copyright The Helm Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package registry + +import ( + "net" + "os" + "testing" + + "github.com/foxcpp/go-mockdns" +) + +func TestMain(m *testing.M) { + // A mock DNS server needed for TLS connection testing. + var srv *mockdns.Server + var err error + + srv, err = mockdns.NewServer(map[string]mockdns.Zone{ + "helm-test-registry.": { + A: []string{"127.0.0.1"}, + }, + }, false) + if err != nil { + panic(err) + } + + saveDialFunction := net.DefaultResolver.Dial + srv.PatchNet(net.DefaultResolver) + + // Run all tests in the package + code := m.Run() + + net.DefaultResolver.Dial = saveDialFunction + _ = srv.Close() + + os.Exit(code) +} diff --git a/pkg/registry/utils_test.go b/pkg/registry/utils_test.go index 781f3dd75..1da90566f 100644 --- a/pkg/registry/utils_test.go +++ b/pkg/registry/utils_test.go @@ -35,7 +35,6 @@ import ( "github.com/distribution/distribution/v3/registry" _ "github.com/distribution/distribution/v3/registry/auth/htpasswd" _ "github.com/distribution/distribution/v3/registry/storage/driver/inmemory" - "github.com/foxcpp/go-mockdns" "github.com/stretchr/testify/suite" "golang.org/x/crypto/bcrypt" @@ -65,9 +64,6 @@ type TestSuite struct { WorkspaceDir string RegistryClient *Client dockerRegistry *registry.Registry - - // A mock DNS server needed for TLS connection testing. - srv *mockdns.Server } func setup(suite *TestSuite, tlsEnabled, insecure bool) { @@ -135,13 +131,6 @@ func setup(suite *TestSuite, tlsEnabled, insecure bool) { // host is localhost/127.0.0.1. port := ln.Addr().(*net.TCPAddr).Port suite.DockerRegistryHost = fmt.Sprintf("helm-test-registry:%d", port) - suite.srv, err = mockdns.NewServer(map[string]mockdns.Zone{ - "helm-test-registry.": { - A: []string{"127.0.0.1"}, - }, - }, false) - suite.Nil(err, "no error creating mock DNS server") - suite.srv.PatchNet(net.DefaultResolver) config.HTTP.Addr = ln.Addr().String() config.HTTP.DrainTimeout = time.Duration(10) * time.Second @@ -172,8 +161,6 @@ func setup(suite *TestSuite, tlsEnabled, insecure bool) { suite.CompromisedRegistryHost = initCompromisedRegistryTestServer() go func() { _ = suite.dockerRegistry.ListenAndServe() - _ = suite.srv.Close() - mockdns.UnpatchNet(net.DefaultResolver) }() }