// 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) } }