]> Cypherpunks repositories - gostls13.git/commitdiff
testing: document that T and B are safe for concurrent calls
authorRuss Cox <rsc@golang.org>
Wed, 25 Nov 2015 21:15:45 +0000 (16:15 -0500)
committerBrad Fitzpatrick <bradfitz@golang.org>
Tue, 1 Dec 2015 22:01:26 +0000 (22:01 +0000)
Fixes #13108.

Change-Id: I474cc2a3b7ced1c9eb978fc815f9c6bae9fb3ecc
Reviewed-on: https://go-review.googlesource.com/17235
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/testing/benchmark.go
src/testing/testing.go

index 62e696d2214133222257178052432ac11fb8f845..85178c2f867adddfe7c22d9e34004430eb6a2bba 100644 (file)
@@ -33,6 +33,17 @@ type InternalBenchmark struct {
 
 // B is a type passed to Benchmark functions to manage benchmark
 // timing and to specify the number of iterations to run.
+//
+// A benchmark ends when its Benchmark function returns or calls any of the methods
+// FailNow, Fatal, Fatalf, SkipNow, Skip, or Skipf. Those methods must be called
+// only from the goroutine running the Benchmark function.
+// The other reporting methods, such as the variations of Log and Error,
+// may be called simultaneously from multiple goroutines.
+//
+// Like in tests, benchmark logs are accumulated during execution
+// and dumped to standard error when done. Unlike in tests, benchmark logs
+// are always printed, so as not to hide output whose existence may be
+// affecting benchmark results.
 type B struct {
        common
        N                int
index c478adea9f92085e0de74b198ab0c2adbce5b2d2..99d77984319f84820b27ddbca68e04fdfe9c48ed 100644 (file)
@@ -282,6 +282,14 @@ var _ TB = (*B)(nil)
 
 // T is a type passed to Test functions to manage test state and support formatted test logs.
 // Logs are accumulated during execution and dumped to standard error when done.
+//
+// A test ends when its Test function returns or calls any of the methods
+// FailNow, Fatal, Fatalf, SkipNow, Skip, or Skipf. Those methods, as well as
+// the Parallel method, must be called only from the goroutine running the
+// Test function.
+//
+// The other reporting methods, such as the variations of Log and Error,
+// may be called simultaneously from multiple goroutines.
 type T struct {
        common
        name          string    // Name of test.