// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package net import ( "runtime" "testing" ) func TestMulticastJoinAndLeave(t *testing.T) { if runtime.GOOS == "windows" { return } addr := &UDPAddr{ IP: IPv4zero, Port: 0, } // open a UDPConn conn, err := ListenUDP("udp4", addr) if err != nil { t.Fatal(err) } defer conn.Close() // try to join group mcast := IPv4(224, 0, 0, 254) err = conn.JoinGroup(mcast) if err != nil { t.Fatal(err) } // try to leave group err = conn.LeaveGroup(mcast) if err != nil { t.Fatal(err) } } func TestJoinFailureWithIPv6Address(t *testing.T) { addr := &UDPAddr{ IP: IPv4zero, Port: 0, } // open a UDPConn conn, err := ListenUDP("udp4", addr) if err != nil { t.Fatal(err) } defer conn.Close() // try to join group mcast := ParseIP("ff02::1") err = conn.JoinGroup(mcast) if err == nil { t.Fatal("JoinGroup succeeded, should fail") } t.Logf("%s", err) }