Files
golang.net/ipv6/control_test.go
Mikio Hara cdfc4ce106 go.net/ipv6: new package
Package ipv6 implements IP-level socket options for the Internet
Protocol version 6. It also provides datagram based network I/O
methods specific to the IPv6 and higher layer protocols.

Fixes golang/go#5538.

R=dave
CC=golang-dev
https://golang.org/cl/9843044
2013-06-04 17:42:58 +09:00

33 lines
640 B
Go

// Copyright 2013 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 ipv6
import (
"sync"
"testing"
)
func TestControlFlags(t *testing.T) {
tf := FlagInterface | FlagPathMTU
opt := rawOpt{cflags: tf | FlagHopLimit}
type ffn func(ControlFlags)
var wg sync.WaitGroup
for _, fn := range []ffn{opt.set, opt.clear, opt.clear} {
wg.Add(1)
go func(fn ffn) {
defer wg.Done()
opt.Lock()
defer opt.Unlock()
fn(tf)
}(fn)
}
wg.Wait()
if opt.isset(tf) {
t.Fatalf("got %#x; expected %#x", opt.cflags, FlagHopLimit)
}
}