Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(128)

Side by Side Diff: src/pkg/net/protoconn_test.go

Issue 6937059: code review 6937059: net: change ListenUnixgram signature to return UnixConn... (Closed)
Patch Set: diff -r 9e8d16052155 https://code.google.com/p/go Created 11 years, 3 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pkg/net/dial.go ('k') | src/pkg/net/unixsock_plan9.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_test 5 package net_test
6 6
7 import ( 7 import (
8 "bytes" 8 "bytes"
9 "net" 9 "net"
10 "os" 10 "os"
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 } 256 }
257 } 257 }
258 258
259 func TestUnixConnSpecificMethods(t *testing.T) { 259 func TestUnixConnSpecificMethods(t *testing.T) {
260 switch runtime.GOOS { 260 switch runtime.GOOS {
261 case "plan9", "windows": 261 case "plan9", "windows":
262 t.Logf("skipping test on %q", runtime.GOOS) 262 t.Logf("skipping test on %q", runtime.GOOS)
263 return 263 return
264 } 264 }
265 265
266 » p1, p2 := "/tmp/gotest.net1", "/tmp/gotest.net2" 266 » p1, p2, p3 := "/tmp/gotest.net1", "/tmp/gotest.net2", "/tmp/gotest.net3"
267 os.Remove(p1) 267 os.Remove(p1)
268 os.Remove(p2) 268 os.Remove(p2)
269 os.Remove(p3)
269 270
270 a1, err := net.ResolveUnixAddr("unixgram", p1) 271 a1, err := net.ResolveUnixAddr("unixgram", p1)
271 if err != nil { 272 if err != nil {
272 t.Fatalf("net.ResolveUnixAddr failed: %v", err) 273 t.Fatalf("net.ResolveUnixAddr failed: %v", err)
273 } 274 }
274 c1, err := net.DialUnix("unixgram", a1, nil) 275 c1, err := net.DialUnix("unixgram", a1, nil)
275 if err != nil { 276 if err != nil {
276 t.Fatalf("net.DialUnix failed: %v", err) 277 t.Fatalf("net.DialUnix failed: %v", err)
277 } 278 }
278 c1.LocalAddr() 279 c1.LocalAddr()
(...skipping 19 matching lines...) Expand all
298 c2.LocalAddr() 299 c2.LocalAddr()
299 c2.RemoteAddr() 300 c2.RemoteAddr()
300 c2.SetDeadline(time.Now().Add(100 * time.Millisecond)) 301 c2.SetDeadline(time.Now().Add(100 * time.Millisecond))
301 c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond)) 302 c2.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
302 c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond)) 303 c2.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
303 c2.SetReadBuffer(2048) 304 c2.SetReadBuffer(2048)
304 c2.SetWriteBuffer(2048) 305 c2.SetWriteBuffer(2048)
305 defer c2.Close() 306 defer c2.Close()
306 defer os.Remove(p2) 307 defer os.Remove(p2)
307 308
309 a3, err := net.ResolveUnixAddr("unixgram", p3)
310 if err != nil {
311 t.Errorf("net.ResolveUnixAddr failed: %v", err)
312 return
313 }
314 c3, err := net.ListenUnixgram("unixgram", a3)
315 if err != nil {
316 t.Errorf("net.ListenUnixgram failed: %v", err)
317 return
318 }
319 c3.LocalAddr()
320 c3.RemoteAddr()
321 c3.SetDeadline(time.Now().Add(100 * time.Millisecond))
322 c3.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
323 c3.SetWriteDeadline(time.Now().Add(100 * time.Millisecond))
324 c3.SetReadBuffer(2048)
325 c3.SetWriteBuffer(2048)
326 defer c3.Close()
327 defer os.Remove(p3)
328
308 wb := []byte("UNIXCONN TEST") 329 wb := []byte("UNIXCONN TEST")
309 rb1 := make([]byte, 128) 330 rb1 := make([]byte, 128)
310 rb2 := make([]byte, 128) 331 rb2 := make([]byte, 128)
332 rb3 := make([]byte, 128)
311 if _, _, err := c1.WriteMsgUnix(wb, nil, a2); err != nil { 333 if _, _, err := c1.WriteMsgUnix(wb, nil, a2); err != nil {
312 t.Errorf("net.UnixConn.WriteMsgUnix failed: %v", err) 334 t.Errorf("net.UnixConn.WriteMsgUnix failed: %v", err)
313 return 335 return
314 } 336 }
315 if _, _, _, _, err := c2.ReadMsgUnix(rb2, nil); err != nil { 337 if _, _, _, _, err := c2.ReadMsgUnix(rb2, nil); err != nil {
316 t.Errorf("net.UnixConn.ReadMsgUnix failed: %v", err) 338 t.Errorf("net.UnixConn.ReadMsgUnix failed: %v", err)
317 return 339 return
318 } 340 }
319 if _, err := c2.WriteToUnix(wb, a1); err != nil { 341 if _, err := c2.WriteToUnix(wb, a1); err != nil {
320 t.Errorf("net.UnixConn.WriteToUnix failed: %v", err) 342 t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
321 return 343 return
322 } 344 }
323 if _, _, err := c1.ReadFromUnix(rb1); err != nil { 345 if _, _, err := c1.ReadFromUnix(rb1); err != nil {
324 t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err) 346 t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
325 return 347 return
326 } 348 }
349 if _, err := c3.WriteToUnix(wb, a1); err != nil {
350 t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
351 return
352 }
353 if _, _, err := c1.ReadFromUnix(rb1); err != nil {
354 t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
355 return
356 }
357 if _, err := c2.WriteToUnix(wb, a3); err != nil {
358 t.Errorf("net.UnixConn.WriteToUnix failed: %v", err)
359 return
360 }
361 if _, _, err := c3.ReadFromUnix(rb3); err != nil {
362 t.Errorf("net.UnixConn.ReadFromUnix failed: %v", err)
363 return
364 }
327 365
328 // TODO: http://golang.org/issue/3875
329 net.ListenUnixgram("unixgram", nil)
330
331 if f, err := c1.File(); err != nil { 366 if f, err := c1.File(); err != nil {
332 t.Errorf("net.UnixConn.File failed: %v", err) 367 t.Errorf("net.UnixConn.File failed: %v", err)
333 return 368 return
334 } else { 369 } else {
335 f.Close() 370 f.Close()
336 } 371 }
337 } 372 }
338 373
339 func newICMPEchoRequest(id, seqnum, msglen int, filler []byte) []byte { 374 func newICMPEchoRequest(id, seqnum, msglen int, filler []byte) []byte {
340 b := newICMPInfoMessage(id, seqnum, msglen, filler) 375 b := newICMPInfoMessage(id, seqnum, msglen, filler)
(...skipping 22 matching lines...) Expand all
363 b[0] = 0 // type 398 b[0] = 0 // type
364 b[1] = 0 // code 399 b[1] = 0 // code
365 b[2] = 0 // checksum 400 b[2] = 0 // checksum
366 b[3] = 0 // checksum 401 b[3] = 0 // checksum
367 b[4] = byte(id >> 8) // identifier 402 b[4] = byte(id >> 8) // identifier
368 b[5] = byte(id & 0xff) // identifier 403 b[5] = byte(id & 0xff) // identifier
369 b[6] = byte(seqnum >> 8) // sequence number 404 b[6] = byte(seqnum >> 8) // sequence number
370 b[7] = byte(seqnum & 0xff) // sequence number 405 b[7] = byte(seqnum & 0xff) // sequence number
371 return b 406 return b
372 } 407 }
OLDNEW
« no previous file with comments | « src/pkg/net/dial.go ('k') | src/pkg/net/unixsock_plan9.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b