From 43014ea54b7a45a8173b93b08e8607f815de6486 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 21 Jun 2016 17:14:55 -0700 Subject: [PATCH] Fix opts tests after default port fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 (cherry picked from commit 0a4a0d9800aa62daf2b980b82c1840cd6f7d0e34) --- opts/hosts.go | 2 +- opts/hosts_test.go | 12 +++--------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/opts/hosts.go b/opts/hosts.go index 957b24ce7d203b7543567b33137b6666316f051e..266df1e5374e025efa16698efc9f9f627acf9fa3 100644 --- a/opts/hosts.go +++ b/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]} } diff --git a/opts/hosts_test.go b/opts/hosts_test.go index 57161eaf4614f3f166ca70245edac26d8535a5e5..a5bec30d4c4091f357c80dce9102c6f53c65e98c 100644 --- a/opts/hosts_test.go +++ b/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",