Update to current version of Go library (revision 94d654be2064).
[gcc.git] / libgo / go / net / multicast_test.go
1 // Copyright 2011 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package net
6
7 import (
8 "runtime"
9 "testing"
10 )
11
12 func TestMulticastJoinAndLeave(t *testing.T) {
13 if runtime.GOOS == "windows" {
14 return
15 }
16
17 addr := &UDPAddr{
18 IP: IPv4zero,
19 Port: 0,
20 }
21 // open a UDPConn
22 conn, err := ListenUDP("udp4", addr)
23 if err != nil {
24 t.Fatal(err)
25 }
26 defer conn.Close()
27
28 // try to join group
29 mcast := IPv4(224, 0, 0, 254)
30 err = conn.JoinGroup(mcast)
31 if err != nil {
32 t.Fatal(err)
33 }
34
35 // try to leave group
36 err = conn.LeaveGroup(mcast)
37 if err != nil {
38 t.Fatal(err)
39 }
40 }
41
42 func TestJoinFailureWithIPv6Address(t *testing.T) {
43 addr := &UDPAddr{
44 IP: IPv4zero,
45 Port: 0,
46 }
47
48 // open a UDPConn
49 conn, err := ListenUDP("udp4", addr)
50 if err != nil {
51 t.Fatal(err)
52 }
53 defer conn.Close()
54
55 // try to join group
56 mcast := ParseIP("ff02::1")
57 err = conn.JoinGroup(mcast)
58 if err == nil {
59 t.Fatal("JoinGroup succeeded, should fail")
60 }
61 t.Logf("%s", err)
62 }