package registry import ( "testing" cerrdefs "github.com/containerd/errdefs" "gotest.tools/v3/assert" ) func TestLoadInsecureRegistries(t *testing.T) { testCases := []struct { registries []string index string err string }{ { registries: []string{"127.0.0.1"}, index: "127.0.0.1", }, { registries: []string{"127.0.0.1:8080"}, index: "127.0.0.1:8080", }, { registries: []string{"2001:db8::1"}, index: "2001:db8::1", }, { registries: []string{"[2001:db8::1]:80"}, index: "[2001:db8::1]:80", }, { registries: []string{"http://myregistry.example.com"}, index: "myregistry.example.com", }, { registries: []string{"https://myregistry.example.com"}, index: "myregistry.example.com", }, { registries: []string{"HTTP://myregistry.example.com"}, index: "myregistry.example.com", }, { registries: []string{"svn://myregistry.example.com"}, err: "insecure registry svn://myregistry.example.com should not contain '://'", }, { registries: []string{`mytest-.com`}, err: `insecure registry mytest-.com is not valid: invalid host "mytest-.com"`, }, { registries: []string{`1200:0000:AB00:1234:0000:2552:7777:1313:8080`}, err: `insecure registry 1200:0000:AB00:1234:0000:2552:7777:1313:8080 is not valid: invalid host "1200:0000:AB00:1234:0000:2552:7777:1313:8080"`, }, { registries: []string{`myregistry.example.com:500000`}, err: `insecure registry myregistry.example.com:500000 is not valid: invalid port "500000"`, }, { registries: []string{`"myregistry.example.com"`}, err: `insecure registry "myregistry.example.com" is not valid: invalid host "\"myregistry.example.com\""`, }, { registries: []string{`"myregistry.example.com:5000"`}, err: `insecure registry "myregistry.example.com:5000" is not valid: invalid host "\"myregistry.example.com"`, }, } for _, testCase := range testCases { config, err := newServiceConfig(testCase.registries) if testCase.err == "" { if err != nil { t.Fatalf("expect no error, got '%s'", err) } match := false for index := range config.indexConfigs { if index == testCase.index { match = true } } if !match { t.Fatalf("expect index configs to contain '%s', got %+v", testCase.index, config.indexConfigs) } } else { if err == nil { t.Fatalf("expect error '%s', got no error", testCase.err) } assert.ErrorContains(t, err, testCase.err) assert.Check(t, cerrdefs.IsInvalidArgument(err)) } } }