// 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 | |
import ( | |
"once"; | |
"testing"; | |
) | |
var ncall int; | |
func call() { | |
ncall++ | |
} | |
func TestOnce(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); | |
} | |
} |