// Copyright 2009 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 once_test import ( "once"; "testing"; ) var ncall int; func call() { ncall++ } func TestDo(t *testing.T) { ncall = 0; once.Do(call); if ncall != 1 { t.Fatalf("once.Do(call) didn't call(): ncall=%d", ncall); } once.Do(call); if ncall != 1 { t.Fatalf("second once.Do(call) did call(): ncall=%d", ncall); } once.Do(call); if ncall != 1 { t.Fatalf("third once.Do(call) did call(): ncall=%d", ncall); } }