diff --git a/pkg/registry/client_http_test.go b/pkg/registry/client_http_test.go index 043fd4205..e0cd548c3 100644 --- a/pkg/registry/client_http_test.go +++ b/pkg/registry/client_http_test.go @@ -28,6 +28,7 @@ import ( type HTTPRegistryClientTestSuite struct { TestSuite + protocol string } func (suite *HTTPRegistryClientTestSuite) SetupSuite() { @@ -56,14 +57,23 @@ func (suite *HTTPRegistryClientTestSuite) Test_0_Login() { } func (suite *HTTPRegistryClientTestSuite) Test_1_Push() { + if suite.protocol != "" || suite.Repo != "" { + suite.T().Skip("Skipping we don't strip protocol or repo prior to execution") + } testPush(&suite.TestSuite) } func (suite *HTTPRegistryClientTestSuite) Test_2_Pull() { + if suite.protocol != "" || suite.Repo != "" { + suite.T().Skip("Skipping we don't strip protocol or repo prior to execution") + } testPull(&suite.TestSuite) } func (suite *HTTPRegistryClientTestSuite) Test_3_Tags() { + if suite.protocol != "" || suite.Repo != "" { + suite.T().Skip("Skipping we don't strip protocol or repo prior to execution") + } testTags(&suite.TestSuite) } @@ -78,4 +88,14 @@ func (suite *HTTPRegistryClientTestSuite) Test_4_ManInTheMiddle() { func TestHTTPRegistryClientTestSuite(t *testing.T) { suite.Run(t, new(HTTPRegistryClientTestSuite)) + var suiteWithRepo = new(HTTPRegistryClientTestSuite) + suiteWithRepo.Repo = "/testrepo/" + suite.Run(t, suiteWithRepo) + for _, protocol := range []string{"oci://", "http://", "https://"} { + var protocolSpecificTestSuite = new(HTTPRegistryClientTestSuite) + protocolSpecificTestSuite.protocol = protocol + protocolSpecificTestSuite.DockerRegistryHost = protocol + "helm-test-registry" + suite.Run(t, protocolSpecificTestSuite) + } + } diff --git a/pkg/registry/utils_test.go b/pkg/registry/utils_test.go index bce286303..c47c8587d 100644 --- a/pkg/registry/utils_test.go +++ b/pkg/registry/utils_test.go @@ -65,6 +65,7 @@ type TestSuite struct { CompromisedRegistryHost string WorkspaceDir string RegistryClient *Client + Repo string // A mock DNS server needed for TLS connection testing. srv *mockdns.Server @@ -127,7 +128,12 @@ func setup(suite *TestSuite, tlsEnabled, insecure bool) *registry.Registry { // Change the registry host to another host which is not localhost. // This is required because Docker enforces HTTP if the registry // host is localhost/127.0.0.1. - suite.DockerRegistryHost = fmt.Sprintf("helm-test-registry:%d", port) + if suite.DockerRegistryHost == "" { + suite.DockerRegistryHost = fmt.Sprintf("helm-test-registry:%d%s", port, suite.Repo) + } else { + // may programmatically set this for custom protocol handling + suite.DockerRegistryHost = fmt.Sprintf("%s:%d%s", suite.DockerRegistryHost, port, suite.Repo) + } suite.srv, err = mockdns.NewServer(map[string]mockdns.Zone{ "helm-test-registry.": { A: []string{"127.0.0.1"},