浏览代码

Fix opts tests after default port fix

The code for default port was already there but
it didn’t work because split function errored out
before. This should be the desired behavior that
matches daemon listen address with swarm listen
address.

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
Tonis Tiigi 9 年之前
父节点
当前提交
0a4a0d9800
共有 2 个文件被更改,包括 4 次插入10 次删除
  1. 1 1
      opts/hosts.go
  2. 3 9
      opts/hosts_test.go

+ 1 - 1
opts/hosts.go

@@ -63,7 +63,7 @@ func ParseHost(defaultToTLS bool, val string) (string, error) {
 // parseDockerDaemonHost parses the specified address and returns an address that will be used as the host.
 // Depending of the address specified, this may return one of the global Default* strings defined in hosts.go.
 func parseDockerDaemonHost(addr string) (string, error) {
-	addrParts := strings.Split(addr, "://")
+	addrParts := strings.SplitN(addr, "://", 2)
 	if len(addrParts) == 1 && addrParts[0] != "" {
 		addrParts = []string{"tcp", addrParts[0]}
 	}

+ 3 - 9
opts/hosts_test.go

@@ -7,12 +7,10 @@ import (
 
 func TestParseHost(t *testing.T) {
 	invalid := []string{
-		"anything",
 		"something with spaces",
 		"://",
 		"unknown://",
 		"tcp://:port",
-		"tcp://invalid",
 		"tcp://invalid:port",
 	}
 
@@ -53,16 +51,13 @@ func TestParseHost(t *testing.T) {
 
 func TestParseDockerDaemonHost(t *testing.T) {
 	invalids := map[string]string{
-		"0.0.0.0":                       "Invalid bind address format: 0.0.0.0",
+
 		"tcp:a.b.c.d":                   "Invalid bind address format: tcp:a.b.c.d",
 		"tcp:a.b.c.d/path":              "Invalid bind address format: tcp:a.b.c.d/path",
 		"udp://127.0.0.1":               "Invalid bind address format: udp://127.0.0.1",
 		"udp://127.0.0.1:2375":          "Invalid bind address format: udp://127.0.0.1:2375",
-		"tcp://unix:///run/docker.sock": "Invalid bind address format: unix",
+		"tcp://unix:///run/docker.sock": "Invalid proto, expected tcp: unix:///run/docker.sock",
 		" tcp://:7777/path ":            "Invalid bind address format:  tcp://:7777/path ",
-		"tcp":                           "Invalid bind address format: tcp",
-		"unix":                          "Invalid bind address format: unix",
-		"fd":                            "Invalid bind address format: fd",
 		"":                              "Invalid bind address format: ",
 	}
 	valids := map[string]string{
@@ -88,7 +83,7 @@ func TestParseDockerDaemonHost(t *testing.T) {
 	}
 	for invalidAddr, expectedError := range invalids {
 		if addr, err := parseDockerDaemonHost(invalidAddr); err == nil || err.Error() != expectedError {
-			t.Errorf("tcp %v address expected error %v return, got %s and addr %v", invalidAddr, expectedError, err, addr)
+			t.Errorf("tcp %v address expected error %q return, got %q and addr %v", invalidAddr, expectedError, err, addr)
 		}
 	}
 	for validAddr, expectedAddr := range valids {
@@ -103,7 +98,6 @@ func TestParseTCP(t *testing.T) {
 		defaultHTTPHost = "tcp://127.0.0.1:2376"
 	)
 	invalids := map[string]string{
-		"0.0.0.0":              "Invalid bind address format: 0.0.0.0",
 		"tcp:a.b.c.d":          "Invalid bind address format: tcp:a.b.c.d",
 		"tcp:a.b.c.d/path":     "Invalid bind address format: tcp:a.b.c.d/path",
 		"udp://127.0.0.1":      "Invalid proto, expected tcp: udp://127.0.0.1",