@@ -17,6 +17,7 @@ package main
1717import (
1818 "bytes"
1919 "io/ioutil"
20+ "net"
2021 "net/http"
2122 "testing"
2223)
@@ -99,54 +100,64 @@ func TestParseInstanceConfig(t *testing.T) {
99100 // inputs
100101 dir , instance string
101102
102- wantCfg instanceConfig
103- wantErr bool
103+ wantCfg instanceConfig
104+ wantErr , wantLoopback bool
104105 }{
105106 {
106107 "/x" , "domain.com:my-proj:my-reg:my-instance" ,
107108 instanceConfig {"domain.com:my-proj:my-reg:my-instance" , "unix" , "/x/domain.com:my-proj:my-reg:my-instance" },
108- false ,
109+ false , false ,
109110 }, {
110111 "/x" , "my-proj:my-reg:my-instance" ,
111112 instanceConfig {"my-proj:my-reg:my-instance" , "unix" , "/x/my-proj:my-reg:my-instance" },
112- false ,
113+ false , false ,
113114 }, {
114115 "/x" , "my-proj:my-reg:my-instance=tcp:1234" ,
115- instanceConfig {"my-proj:my-reg:my-instance" , "tcp" , "127.0.0.1 :1234" },
116- false ,
116+ instanceConfig {"my-proj:my-reg:my-instance" , "tcp" , "[::1] :1234" },
117+ false , true ,
117118 }, {
118119 "/x" , "my-proj:my-reg:my-instance=tcp:my-host:1111" ,
119120 instanceConfig {"my-proj:my-reg:my-instance" , "tcp" , "my-host:1111" },
120- false ,
121+ false , false ,
121122 }, {
122123 "/x" , "my-proj:my-reg:my-instance=" ,
123124 instanceConfig {},
124- true ,
125+ true , false ,
125126 }, {
126127 "/x" , "my-proj:my-reg:my-instance=cool network" ,
127128 instanceConfig {},
128- true ,
129+ true , false ,
129130 }, {
130131 "/x" , "my-proj:my-reg:my-instance=cool network:1234" ,
131132 instanceConfig {},
132- true ,
133+ true , false ,
133134 }, {
134135 "/x" , "my-proj:my-reg:my-instance=oh:so:many:colons" ,
135136 instanceConfig {},
136- true ,
137+ true , false ,
137138 },
138139 } {
139140 got , err := parseInstanceConfig (v .dir , v .instance , mockClient )
140141 if v .wantErr {
141142 if err == nil {
142- t .Errorf ("parseInstanceConfig(%s, %s) = %+v, wanted error" , got )
143+ t .Errorf ("parseInstanceConfig(%s, %s) = %+v, wanted error" , v . dir , v . instance , got )
143144 }
144145 continue
145146 } else if err != nil {
146147 t .Errorf ("parseInstanceConfig(%s, %s) had unexpected error: %v" , v .dir , v .instance , err )
147148 continue
148149 }
149150 if got != v .wantCfg {
151+ if v .wantLoopback {
152+ host , _ , err := net .SplitHostPort (got .Address )
153+ if err != nil {
154+ t .Errorf ("parseInstanceConfig(%s, %s) = %+v, want %+v" , v .dir , v .instance , got , v .wantCfg )
155+ }
156+ ip := net .ParseIP (host )
157+ if ip .IsLoopback () {
158+ continue
159+ }
160+ }
150161 t .Errorf ("parseInstanceConfig(%s, %s) = %+v, want %+v" , v .dir , v .instance , got , v .wantCfg )
151162 }
152163 }
0 commit comments