OLD | NEW |
1 // Copyright 2012 The Go Authors. All rights reserved. | 1 // Copyright 2012 The Go Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style | 2 // Use of this source code is governed by a BSD-style |
3 // license that can be found in the LICENSE file. | 3 // license that can be found in the LICENSE file. |
4 | 4 |
5 package net | 5 package net |
6 | 6 |
7 import ( | 7 import ( |
8 "fmt" | 8 "fmt" |
9 "reflect" | 9 "reflect" |
10 "runtime" | 10 "runtime" |
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 {"tcp6", "[fe80::1]:3", &TCPAddr{IP: ParseIP("fe80::1"), Port: 3, Zone:
"name"}, nil}, | 164 {"tcp6", "[fe80::1]:3", &TCPAddr{IP: ParseIP("fe80::1"), Port: 3, Zone:
"name"}, nil}, |
165 {"tcp6", "[fe80::1]:4", &TCPAddr{IP: ParseIP("fe80::1"), Port: 4, Zone:
"index"}, nil}, | 165 {"tcp6", "[fe80::1]:4", &TCPAddr{IP: ParseIP("fe80::1"), Port: 4, Zone:
"index"}, nil}, |
166 | 166 |
167 {"", "127.0.0.1:0", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil}, //
Go 1.0 behavior | 167 {"", "127.0.0.1:0", &TCPAddr{IP: IPv4(127, 0, 0, 1), Port: 0}, nil}, //
Go 1.0 behavior |
168 {"", "[::1]:0", &TCPAddr{IP: ParseIP("::1"), Port: 0}, nil}, //
Go 1.0 behavior | 168 {"", "[::1]:0", &TCPAddr{IP: ParseIP("::1"), Port: 0}, nil}, //
Go 1.0 behavior |
169 | 169 |
170 {"http", "127.0.0.1:0", nil, UnknownNetworkError("http")}, | 170 {"http", "127.0.0.1:0", nil, UnknownNetworkError("http")}, |
171 } | 171 } |
172 | 172 |
173 func TestResolveTCPAddr(t *testing.T) { | 173 func TestResolveTCPAddr(t *testing.T) { |
174 » for _, tt := range resolveTCPAddrTests { | 174 » for i, tt := range resolveTCPAddrTests { |
175 if tt.addr != nil && (tt.addr.Zone == "name" || tt.addr.Zone ==
"index") { | 175 if tt.addr != nil && (tt.addr.Zone == "name" || tt.addr.Zone ==
"index") { |
176 ifi := loopbackInterface() | 176 ifi := loopbackInterface() |
177 if ifi == nil { | 177 if ifi == nil { |
178 continue | 178 continue |
179 } | 179 } |
180 » » » i := last(tt.litAddr, ']') | 180 » » » j := last(tt.litAddr, ']') |
181 » » » if i > 0 { | 181 » » » if j > 0 { |
182 switch tt.addr.Zone { | 182 switch tt.addr.Zone { |
183 case "name": | 183 case "name": |
184 » » » » » tt.litAddr = tt.litAddr[:i] + "%" + ifi.
Name + tt.litAddr[i:] | 184 » » » » » resolveTCPAddrTests[i].litAddr = tt.litA
ddr[:j] + "%" + ifi.Name + tt.litAddr[j:] |
185 » » » » » tt.addr.Zone = zoneToString(ifi.Index) | 185 » » » » » resolveTCPAddrTests[i].addr.Zone = zoneT
oString(ifi.Index) |
186 case "index": | 186 case "index": |
187 index := fmt.Sprintf("%v", ifi.Index) | 187 index := fmt.Sprintf("%v", ifi.Index) |
188 » » » » » tt.litAddr = tt.litAddr[:i] + "%" + inde
x + tt.litAddr[i:] | 188 » » » » » resolveTCPAddrTests[i].litAddr = tt.litA
ddr[:j] + "%" + index + tt.litAddr[j:] |
189 » » » » » tt.addr.Zone = index | 189 » » » » » resolveTCPAddrTests[i].addr.Zone = index |
190 } | 190 } |
191 } | 191 } |
192 } | 192 } |
193 » » addr, err := ResolveTCPAddr(tt.net, tt.litAddr) | 193 » » addr, err := ResolveTCPAddr(tt.net, resolveTCPAddrTests[i].litAd
dr) |
194 if err != tt.err { | 194 if err != tt.err { |
195 » » » t.Fatalf("ResolveTCPAddr(%v, %v) failed: %v", tt.net, tt
.litAddr, err) | 195 » » » t.Fatalf("ResolveTCPAddr(%v, %v) failed: %v", tt.net, re
solveTCPAddrTests[i].litAddr, err) |
196 } | 196 } |
197 » » if !reflect.DeepEqual(addr, tt.addr) { | 197 » » if !reflect.DeepEqual(addr, resolveTCPAddrTests[i].addr) { |
198 » » » t.Fatalf("got %#v; expected %#v", addr, tt.addr) | 198 » » » t.Fatalf("got %#v; expected %#v", addr, resolveTCPAddrTe
sts[i].addr) |
199 } | 199 } |
200 } | 200 } |
201 } | 201 } |
202 | 202 |
203 var tcpListenerNameTests = []struct { | 203 var tcpListenerNameTests = []struct { |
204 net string | 204 net string |
205 laddr *TCPAddr | 205 laddr *TCPAddr |
206 }{ | 206 }{ |
207 {"tcp4", &TCPAddr{IP: IPv4(127, 0, 0, 1)}}, | 207 {"tcp4", &TCPAddr{IP: IPv4(127, 0, 0, 1)}}, |
208 {"tcp4", &TCPAddr{}}, | 208 {"tcp4", &TCPAddr{}}, |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 t.Fatalf("Conn.Write failed: %v", err) | 295 t.Fatalf("Conn.Write failed: %v", err) |
296 } | 296 } |
297 b := make([]byte, 32) | 297 b := make([]byte, 32) |
298 if _, err := c.Read(b); err != nil { | 298 if _, err := c.Read(b); err != nil { |
299 t.Fatalf("Conn.Read failed: %v", err) | 299 t.Fatalf("Conn.Read failed: %v", err) |
300 } | 300 } |
301 | 301 |
302 <-done | 302 <-done |
303 } | 303 } |
304 } | 304 } |
OLD | NEW |