mirror of
https://github.com/golang/net.git
synced 2026-03-31 10:27:08 +09:00
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
33 lines
640 B
Go
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)
|
|
}
|
|
}
|