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

Delta Between Two Patch Sets: ipv4/multicastsockopt_test.go

Issue 6482044: code review 6482044: go.net/ipv4: new package (Closed)
Left Patch Set: diff -r 2513e9008213 https://code.google.com/p/go.net Created 11 years, 6 months ago
Right Patch Set: diff -r 2513e9008213 https://code.google.com/p/go.net Created 11 years, 6 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:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « ipv4/multicastlistener_test.go ('k') | ipv4/packet.go » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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 // +build darwin freebsd linux openbsd 5 // +build darwin freebsd linux netbsd openbsd windows
6 6
7 package ipv4_test 7 package ipv4_test
8 8
9 import ( 9 import (
10 "code.google.com/p/go.net/ipv4" 10 "code.google.com/p/go.net/ipv4"
11 "net" 11 "net"
12 "os" 12 "os"
13 "runtime"
13 "testing" 14 "testing"
14 ) 15 )
15 16
16 type testMulticastConn interface { 17 type testMulticastConn interface {
17 testUnicastConn 18 testUnicastConn
18 MulticastTTL() (int, error) 19 MulticastTTL() (int, error)
19 SetMulticastTTL(ttl int) error 20 SetMulticastTTL(ttl int) error
20 MulticastLoopback() (bool, error) 21 MulticastLoopback() (bool, error)
21 SetMulticastLoopback(bool) error 22 SetMulticastLoopback(bool) error
22 JoinGroup(*net.Interface, net.Addr) error 23 JoinGroup(*net.Interface, net.Addr) error
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 t.Fatalf("net.ListenPacket failed: %v", err) 71 t.Fatalf("net.ListenPacket failed: %v", err)
71 } 72 }
72 defer c.Close() 73 defer c.Close()
73 74
74 r, _ := ipv4.NewRawConn(c) 75 r, _ := ipv4.NewRawConn(c)
75 testMulticastSockopt(t, tt, r, &net.IPAddr{IP: tt.gaddr}) 76 testMulticastSockopt(t, tt, r, &net.IPAddr{IP: tt.gaddr})
76 } 77 }
77 } 78 }
78 79
79 func testMulticastSockopt(t *testing.T, tt multicastSockoptTest, c testMulticast Conn, gaddr net.Addr) { 80 func testMulticastSockopt(t *testing.T, tt multicastSockoptTest, c testMulticast Conn, gaddr net.Addr) {
80 » if err := c.SetTOS(tt.tos); err != nil { 81 » switch runtime.GOOS {
81 » » t.Fatalf("ipv4.PacketConn.SetTOS failed: %v", err) 82 » case "windows":
83 » » // IP_TOS option is supported on Windows 8 and beyond.
84 » » t.Logf("skipping IP_TOS test on %q", runtime.GOOS)
85 » default:
86 » » if err := c.SetTOS(tt.tos); err != nil {
87 » » » t.Fatalf("ipv4.PacketConn.SetTOS failed: %v", err)
88 » » }
89 » » if v, err := c.TOS(); err != nil {
90 » » » t.Fatalf("ipv4.PacketConn.TOS failed: %v", err)
91 » » } else if v != tt.tos {
92 » » » t.Fatalf("Got unexpected TOS value %v; expected %v", v, tt.tos)
93 » » }
82 } 94 }
95
83 if err := c.SetTTL(tt.ttl); err != nil { 96 if err := c.SetTTL(tt.ttl); err != nil {
84 t.Fatalf("ipv4.PacketConn.SetTTL failed: %v", err) 97 t.Fatalf("ipv4.PacketConn.SetTTL failed: %v", err)
85 }
86 if err := c.SetMulticastTTL(tt.mcttl); err != nil {
87 t.Fatalf("ipv4.PacketConn.SetMulticastTTL failed: %v", err)
88 }
89 if err := c.SetMulticastLoopback(tt.mcloop); err != nil {
90 t.Fatalf("ipv4.PacketConn.SetMulticastLoopback failed: %v", err)
91 }
92 if v, err := c.TOS(); err != nil {
93 t.Fatalf("ipv4.PacketConn.TOS failed: %v", err)
94 } else if v != tt.tos {
95 t.Fatalf("Got unexpected TOS value %v; expected %v", v, tt.tos)
96 } 98 }
97 if v, err := c.TTL(); err != nil { 99 if v, err := c.TTL(); err != nil {
98 t.Fatalf("ipv4.PacketConn.TTL failed: %v", err) 100 t.Fatalf("ipv4.PacketConn.TTL failed: %v", err)
99 } else if v != tt.ttl { 101 } else if v != tt.ttl {
100 t.Fatalf("Got unexpected TTL value %v; expected %v", v, tt.ttl) 102 t.Fatalf("Got unexpected TTL value %v; expected %v", v, tt.ttl)
101 } 103 }
104
105 if err := c.SetMulticastTTL(tt.mcttl); err != nil {
106 t.Fatalf("ipv4.PacketConn.SetMulticastTTL failed: %v", err)
107 }
102 if v, err := c.MulticastTTL(); err != nil { 108 if v, err := c.MulticastTTL(); err != nil {
103 t.Fatalf("ipv4.PacketConn.MulticastTTL failed: %v", err) 109 t.Fatalf("ipv4.PacketConn.MulticastTTL failed: %v", err)
104 } else if v != tt.mcttl { 110 } else if v != tt.mcttl {
105 t.Fatalf("Got unexpected MulticastTTL value %v; expected %v", v, tt.mcttl) 111 t.Fatalf("Got unexpected MulticastTTL value %v; expected %v", v, tt.mcttl)
112 }
113
114 if err := c.SetMulticastLoopback(tt.mcloop); err != nil {
115 t.Fatalf("ipv4.PacketConn.SetMulticastLoopback failed: %v", err)
106 } 116 }
107 if v, err := c.MulticastLoopback(); err != nil { 117 if v, err := c.MulticastLoopback(); err != nil {
108 t.Fatalf("ipv4.PacketConn.MulticastLoopback failed: %v", err) 118 t.Fatalf("ipv4.PacketConn.MulticastLoopback failed: %v", err)
109 } else if v != tt.mcloop { 119 } else if v != tt.mcloop {
110 t.Fatalf("Got unexpected MulticastLoopback value %v; expected %v ", v, tt.mcloop) 120 t.Fatalf("Got unexpected MulticastLoopback value %v; expected %v ", v, tt.mcloop)
111 } 121 }
122
112 if err := c.JoinGroup(nil, gaddr); err != nil { 123 if err := c.JoinGroup(nil, gaddr); err != nil {
113 t.Fatalf("ipv4.PacketConn.JoinGroup(%v) failed: %v", gaddr, err) 124 t.Fatalf("ipv4.PacketConn.JoinGroup(%v) failed: %v", gaddr, err)
114 } 125 }
115 if err := c.LeaveGroup(nil, gaddr); err != nil { 126 if err := c.LeaveGroup(nil, gaddr); err != nil {
116 t.Fatalf("ipv4.PacketConn.LeaveGroup(%v) failed: %v", gaddr, err ) 127 t.Fatalf("ipv4.PacketConn.LeaveGroup(%v) failed: %v", gaddr, err )
117 } 128 }
118 } 129 }
LEFTRIGHT

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