aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/race/testdata
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2017-12-06 00:35:28 -0500
committerRuss Cox <rsc@golang.org>2017-12-06 01:03:36 -0500
commit185e6094fd968b35b80e56aad1286c66bb2cc261 (patch)
tree411babe570d6faa1e99251a9167123afd07407d2 /src/runtime/race/testdata
parentc36033a379a4907fb75309416ffcf2904e613ab9 (diff)
parenta032f74bf0b40a94669159e7d7e96722eb76199b (diff)
downloadgo-185e6094fd968b35b80e56aad1286c66bb2cc261.tar.xz
[dev.boringcrypto] all: merge master (nearly Go 1.10 beta 1) into dev.boringcrypto
This is a git merge of master into dev.boringcrypto. The branch was previously based on release-branch.go1.9, so there are a handful of spurious conflicts that would also arise if trying to merge master into release-branch.go1.9 (which we never do). Those have all been resolved by taking the original file from master, discarding any Go 1.9-specific edits. all.bash passes on darwin/amd64, which is to say without actually using BoringCrypto. Go 1.10-related fixes to BoringCrypto itself will be in a followup CL. This CL is just the merge. Change-Id: I4c97711fec0fb86761913dcde28d25c001246c35
Diffstat (limited to 'src/runtime/race/testdata')
-rw-r--r--src/runtime/race/testdata/atomic_test.go13
-rw-r--r--src/runtime/race/testdata/chan_test.go22
-rw-r--r--src/runtime/race/testdata/finalizer_test.go1
-rw-r--r--src/runtime/race/testdata/map_test.go2
-rw-r--r--src/runtime/race/testdata/mop_test.go21
-rw-r--r--src/runtime/race/testdata/mutex_test.go5
-rw-r--r--src/runtime/race/testdata/rwmutex_test.go2
-rw-r--r--src/runtime/race/testdata/select_test.go7
-rw-r--r--src/runtime/race/testdata/sync_test.go6
-rw-r--r--src/runtime/race/testdata/waitgroup_test.go8
10 files changed, 87 insertions, 0 deletions
diff --git a/src/runtime/race/testdata/atomic_test.go b/src/runtime/race/testdata/atomic_test.go
index 232744b3dd..769c8d7398 100644
--- a/src/runtime/race/testdata/atomic_test.go
+++ b/src/runtime/race/testdata/atomic_test.go
@@ -14,6 +14,7 @@ import (
func TestNoRaceAtomicAddInt64(t *testing.T) {
var x1, x2 int8
+ _ = x1 + x2
var s int64
ch := make(chan bool, 2)
go func() {
@@ -36,6 +37,7 @@ func TestNoRaceAtomicAddInt64(t *testing.T) {
func TestRaceAtomicAddInt64(t *testing.T) {
var x1, x2 int8
+ _ = x1 + x2
var s int64
ch := make(chan bool, 2)
go func() {
@@ -58,6 +60,7 @@ func TestRaceAtomicAddInt64(t *testing.T) {
func TestNoRaceAtomicAddInt32(t *testing.T) {
var x1, x2 int8
+ _ = x1 + x2
var s int32
ch := make(chan bool, 2)
go func() {
@@ -80,6 +83,7 @@ func TestNoRaceAtomicAddInt32(t *testing.T) {
func TestNoRaceAtomicLoadAddInt32(t *testing.T) {
var x int64
+ _ = x
var s int32
go func() {
x = 2
@@ -93,6 +97,7 @@ func TestNoRaceAtomicLoadAddInt32(t *testing.T) {
func TestNoRaceAtomicLoadStoreInt32(t *testing.T) {
var x int64
+ _ = x
var s int32
go func() {
x = 2
@@ -106,6 +111,7 @@ func TestNoRaceAtomicLoadStoreInt32(t *testing.T) {
func TestNoRaceAtomicStoreCASInt32(t *testing.T) {
var x int64
+ _ = x
var s int32
go func() {
x = 2
@@ -119,6 +125,7 @@ func TestNoRaceAtomicStoreCASInt32(t *testing.T) {
func TestNoRaceAtomicCASLoadInt32(t *testing.T) {
var x int64
+ _ = x
var s int32
go func() {
x = 2
@@ -134,6 +141,7 @@ func TestNoRaceAtomicCASLoadInt32(t *testing.T) {
func TestNoRaceAtomicCASCASInt32(t *testing.T) {
var x int64
+ _ = x
var s int32
go func() {
x = 2
@@ -149,6 +157,7 @@ func TestNoRaceAtomicCASCASInt32(t *testing.T) {
func TestNoRaceAtomicCASCASInt32_2(t *testing.T) {
var x1, x2 int8
+ _ = x1 + x2
var s int32
ch := make(chan bool, 2)
go func() {
@@ -171,6 +180,7 @@ func TestNoRaceAtomicCASCASInt32_2(t *testing.T) {
func TestNoRaceAtomicLoadInt64(t *testing.T) {
var x int32
+ _ = x
var s int64
go func() {
x = 2
@@ -184,6 +194,7 @@ func TestNoRaceAtomicLoadInt64(t *testing.T) {
func TestNoRaceAtomicCASCASUInt64(t *testing.T) {
var x int64
+ _ = x
var s uint64
go func() {
x = 2
@@ -199,6 +210,7 @@ func TestNoRaceAtomicCASCASUInt64(t *testing.T) {
func TestNoRaceAtomicLoadStorePointer(t *testing.T) {
var x int64
+ _ = x
var s unsafe.Pointer
var y int = 2
var p unsafe.Pointer = unsafe.Pointer(&y)
@@ -214,6 +226,7 @@ func TestNoRaceAtomicLoadStorePointer(t *testing.T) {
func TestNoRaceAtomicStoreCASUint64(t *testing.T) {
var x int64
+ _ = x
var s uint64
go func() {
x = 2
diff --git a/src/runtime/race/testdata/chan_test.go b/src/runtime/race/testdata/chan_test.go
index 449191639e..7f349c42ed 100644
--- a/src/runtime/race/testdata/chan_test.go
+++ b/src/runtime/race/testdata/chan_test.go
@@ -12,6 +12,7 @@ import (
func TestNoRaceChanSync(t *testing.T) {
v := 0
+ _ = v
c := make(chan int)
go func() {
v = 1
@@ -23,6 +24,7 @@ func TestNoRaceChanSync(t *testing.T) {
func TestNoRaceChanSyncRev(t *testing.T) {
v := 0
+ _ = v
c := make(chan int)
go func() {
c <- 0
@@ -34,6 +36,7 @@ func TestNoRaceChanSyncRev(t *testing.T) {
func TestNoRaceChanAsync(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
v = 1
@@ -45,6 +48,7 @@ func TestNoRaceChanAsync(t *testing.T) {
func TestRaceChanAsyncRev(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
c <- 0
@@ -56,6 +60,7 @@ func TestRaceChanAsyncRev(t *testing.T) {
func TestNoRaceChanAsyncCloseRecv(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
v = 1
@@ -72,6 +77,7 @@ func TestNoRaceChanAsyncCloseRecv(t *testing.T) {
func TestNoRaceChanAsyncCloseRecv2(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
v = 1
@@ -83,6 +89,7 @@ func TestNoRaceChanAsyncCloseRecv2(t *testing.T) {
func TestNoRaceChanAsyncCloseRecv3(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
v = 1
@@ -95,6 +102,7 @@ func TestNoRaceChanAsyncCloseRecv3(t *testing.T) {
func TestNoRaceChanSyncCloseRecv(t *testing.T) {
v := 0
+ _ = v
c := make(chan int)
go func() {
v = 1
@@ -111,6 +119,7 @@ func TestNoRaceChanSyncCloseRecv(t *testing.T) {
func TestNoRaceChanSyncCloseRecv2(t *testing.T) {
v := 0
+ _ = v
c := make(chan int)
go func() {
v = 1
@@ -122,6 +131,7 @@ func TestNoRaceChanSyncCloseRecv2(t *testing.T) {
func TestNoRaceChanSyncCloseRecv3(t *testing.T) {
v := 0
+ _ = v
c := make(chan int)
go func() {
v = 1
@@ -134,6 +144,7 @@ func TestNoRaceChanSyncCloseRecv3(t *testing.T) {
func TestRaceChanSyncCloseSend(t *testing.T) {
v := 0
+ _ = v
c := make(chan int)
go func() {
v = 1
@@ -150,6 +161,7 @@ func TestRaceChanSyncCloseSend(t *testing.T) {
func TestRaceChanAsyncCloseSend(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
v = 1
@@ -170,6 +182,7 @@ func TestRaceChanCloseClose(t *testing.T) {
compl := make(chan bool, 2)
v1 := 0
v2 := 0
+ _ = v1 + v2
c := make(chan int)
go func() {
defer func() {
@@ -197,6 +210,7 @@ func TestRaceChanCloseClose(t *testing.T) {
func TestRaceChanSendLen(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
go func() {
v = 1
@@ -210,6 +224,7 @@ func TestRaceChanSendLen(t *testing.T) {
func TestRaceChanRecvLen(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
c <- 1
go func() {
@@ -226,6 +241,7 @@ func TestRaceChanSendSend(t *testing.T) {
compl := make(chan bool, 2)
v1 := 0
v2 := 0
+ _ = v1 + v2
c := make(chan int, 1)
go func() {
v1 = 1
@@ -264,6 +280,7 @@ func TestNoRaceChanPtr(t *testing.T) {
func TestRaceChanWrongSend(t *testing.T) {
v1 := 0
v2 := 0
+ _ = v1 + v2
c := make(chan int, 2)
go func() {
v1 = 1
@@ -284,6 +301,7 @@ func TestRaceChanWrongSend(t *testing.T) {
func TestRaceChanWrongClose(t *testing.T) {
v1 := 0
v2 := 0
+ _ = v1 + v2
c := make(chan int, 1)
done := make(chan bool)
go func() {
@@ -561,6 +579,7 @@ func TestRaceChanItselfCap(t *testing.T) {
func TestRaceChanCloseLen(t *testing.T) {
v := 0
+ _ = v
c := make(chan int, 10)
c <- 0
go func() {
@@ -587,6 +606,7 @@ func TestNoRaceChanMutex(t *testing.T) {
done := make(chan struct{})
mtx := make(chan struct{}, 1)
data := 0
+ _ = data
go func() {
mtx <- struct{}{}
data = 42
@@ -604,6 +624,7 @@ func TestNoRaceSelectMutex(t *testing.T) {
mtx := make(chan struct{}, 1)
aux := make(chan bool)
data := 0
+ _ = data
go func() {
select {
case mtx <- struct{}{}:
@@ -632,6 +653,7 @@ func TestRaceChanSem(t *testing.T) {
done := make(chan struct{})
mtx := make(chan bool, 2)
data := 0
+ _ = data
go func() {
mtx <- true
data = 42
diff --git a/src/runtime/race/testdata/finalizer_test.go b/src/runtime/race/testdata/finalizer_test.go
index 222cbf67a8..3ac33d2b59 100644
--- a/src/runtime/race/testdata/finalizer_test.go
+++ b/src/runtime/race/testdata/finalizer_test.go
@@ -53,6 +53,7 @@ func TestNoRaceFinGlobal(t *testing.T) {
func TestRaceFin(t *testing.T) {
c := make(chan bool)
y := 0
+ _ = y
go func() {
x := new(string)
runtime.SetFinalizer(x, func(x *string) {
diff --git a/src/runtime/race/testdata/map_test.go b/src/runtime/race/testdata/map_test.go
index a8d8148d0e..88e735ecd3 100644
--- a/src/runtime/race/testdata/map_test.go
+++ b/src/runtime/race/testdata/map_test.go
@@ -130,6 +130,7 @@ func TestRaceMapLenDelete(t *testing.T) {
func TestRaceMapVariable(t *testing.T) {
ch := make(chan bool, 1)
m := make(map[int]int)
+ _ = m
go func() {
m = make(map[int]int)
ch <- true
@@ -230,6 +231,7 @@ func TestRaceMapAssignMultipleReturn(t *testing.T) {
conns[1] = []int{0}
ch := make(chan bool, 1)
var err error
+ _ = err
go func() {
conns[1][0], err = connect()
ch <- true
diff --git a/src/runtime/race/testdata/mop_test.go b/src/runtime/race/testdata/mop_test.go
index 560a762315..b60cabfe86 100644
--- a/src/runtime/race/testdata/mop_test.go
+++ b/src/runtime/race/testdata/mop_test.go
@@ -60,6 +60,7 @@ func TestRaceIntRWGlobalFuncs(t *testing.T) {
func TestRaceIntRWClosures(t *testing.T) {
var x, y int
+ _ = y
ch := make(chan int, 2)
go func() {
@@ -76,6 +77,7 @@ func TestRaceIntRWClosures(t *testing.T) {
func TestNoRaceIntRWClosures(t *testing.T) {
var x, y int
+ _ = y
ch := make(chan int, 1)
go func() {
@@ -93,6 +95,7 @@ func TestNoRaceIntRWClosures(t *testing.T) {
func TestRaceInt32RWClosures(t *testing.T) {
var x, y int32
+ _ = y
ch := make(chan bool, 2)
go func() {
@@ -168,6 +171,7 @@ func TestRaceCaseCondition2(t *testing.T) {
func TestRaceCaseBody(t *testing.T) {
var x, y int
+ _ = y
ch := make(chan int, 2)
go func() {
@@ -189,6 +193,7 @@ func TestRaceCaseBody(t *testing.T) {
func TestNoRaceCaseFallthrough(t *testing.T) {
var x, y, z int
+ _ = y
ch := make(chan int, 2)
z = 1
@@ -210,6 +215,7 @@ func TestNoRaceCaseFallthrough(t *testing.T) {
func TestRaceCaseFallthrough(t *testing.T) {
var x, y, z int
+ _ = y
ch := make(chan int, 2)
z = 1
@@ -323,6 +329,7 @@ func TestRaceRange(t *testing.T) {
const N = 2
var a [N]int
var x, y int
+ _ = x + y
done := make(chan bool, N)
for i, v := range a {
go func(i int) {
@@ -433,6 +440,7 @@ func TestNoRaceForIncr(t *testing.T) {
func TestRacePlus(t *testing.T) {
var x, y, z int
+ _ = y
ch := make(chan int, 2)
go func() {
@@ -449,6 +457,7 @@ func TestRacePlus(t *testing.T) {
func TestRacePlus2(t *testing.T) {
var x, y, z int
+ _ = y
ch := make(chan int, 2)
go func() {
@@ -465,6 +474,7 @@ func TestRacePlus2(t *testing.T) {
func TestNoRacePlus(t *testing.T) {
var x, y, z, f int
+ _ = x + y + f
ch := make(chan int, 2)
go func() {
@@ -481,6 +491,7 @@ func TestNoRacePlus(t *testing.T) {
func TestRaceComplement(t *testing.T) {
var x, y, z int
+ _ = x
ch := make(chan int, 2)
go func() {
@@ -497,6 +508,7 @@ func TestRaceComplement(t *testing.T) {
func TestRaceDiv(t *testing.T) {
var x, y, z int
+ _ = x
ch := make(chan int, 2)
go func() {
@@ -513,6 +525,7 @@ func TestRaceDiv(t *testing.T) {
func TestRaceDivConst(t *testing.T) {
var x, y, z uint32
+ _ = x
ch := make(chan int, 2)
go func() {
@@ -529,6 +542,7 @@ func TestRaceDivConst(t *testing.T) {
func TestRaceMod(t *testing.T) {
var x, y, z int
+ _ = x
ch := make(chan int, 2)
go func() {
@@ -545,6 +559,7 @@ func TestRaceMod(t *testing.T) {
func TestRaceModConst(t *testing.T) {
var x, y, z int
+ _ = x
ch := make(chan int, 2)
go func() {
@@ -561,6 +576,7 @@ func TestRaceModConst(t *testing.T) {
func TestRaceRotate(t *testing.T) {
var x, y, z uint32
+ _ = x
ch := make(chan int, 2)
go func() {
@@ -932,6 +948,7 @@ func TestRaceFuncVariableRW(t *testing.T) {
func TestRaceFuncVariableWW(t *testing.T) {
var f func(x int) int
+ _ = f
ch := make(chan bool, 1)
go func() {
f = func(x int) int {
@@ -948,6 +965,7 @@ func TestRaceFuncVariableWW(t *testing.T) {
// This one should not belong to mop_test
func TestRacePanic(t *testing.T) {
var x int
+ _ = x
var zero int = 0
ch := make(chan bool, 2)
go func() {
@@ -1284,6 +1302,7 @@ func TestNoRaceFuncUnlock(t *testing.T) {
ch := make(chan bool, 1)
var mu sync.Mutex
x := 0
+ _ = x
go func() {
mu.Lock()
x = 42
@@ -1812,6 +1831,7 @@ func TestNoRaceAsFunc4(t *testing.T) {
c := make(chan bool, 1)
var mu sync.Mutex
x := 0
+ _ = x
go func() {
x = func() int { // Write of x must be under the mutex.
mu.Lock()
@@ -2042,6 +2062,7 @@ func TestNoRaceTinyAlloc(t *testing.T) {
const P = 4
const N = 1e6
var tinySink *byte
+ _ = tinySink
done := make(chan bool)
for p := 0; p < P; p++ {
go func() {
diff --git a/src/runtime/race/testdata/mutex_test.go b/src/runtime/race/testdata/mutex_test.go
index 3cf03ae6b8..cbed2d370c 100644
--- a/src/runtime/race/testdata/mutex_test.go
+++ b/src/runtime/race/testdata/mutex_test.go
@@ -13,6 +13,7 @@ import (
func TestNoRaceMutex(t *testing.T) {
var mu sync.Mutex
var x int16 = 0
+ _ = x
ch := make(chan bool, 2)
go func() {
mu.Lock()
@@ -33,6 +34,7 @@ func TestNoRaceMutex(t *testing.T) {
func TestRaceMutex(t *testing.T) {
var mu sync.Mutex
var x int16 = 0
+ _ = x
ch := make(chan bool, 2)
go func() {
x = 1
@@ -54,6 +56,7 @@ func TestRaceMutex2(t *testing.T) {
var mu1 sync.Mutex
var mu2 sync.Mutex
var x int8 = 0
+ _ = x
ch := make(chan bool, 2)
go func() {
mu1.Lock()
@@ -74,6 +77,7 @@ func TestRaceMutex2(t *testing.T) {
func TestNoRaceMutexPureHappensBefore(t *testing.T) {
var mu sync.Mutex
var x int16 = 0
+ _ = x
ch := make(chan bool, 2)
go func() {
x = 1
@@ -96,6 +100,7 @@ func TestNoRaceMutexSemaphore(t *testing.T) {
var mu sync.Mutex
ch := make(chan bool, 2)
x := 0
+ _ = x
mu.Lock()
go func() {
x = 1
diff --git a/src/runtime/race/testdata/rwmutex_test.go b/src/runtime/race/testdata/rwmutex_test.go
index 7ac829d759..39219e58ae 100644
--- a/src/runtime/race/testdata/rwmutex_test.go
+++ b/src/runtime/race/testdata/rwmutex_test.go
@@ -14,6 +14,7 @@ func TestRaceMutexRWMutex(t *testing.T) {
var mu1 sync.Mutex
var mu2 sync.RWMutex
var x int16 = 0
+ _ = x
ch := make(chan bool, 2)
go func() {
mu1.Lock()
@@ -34,6 +35,7 @@ func TestRaceMutexRWMutex(t *testing.T) {
func TestNoRaceRWMutex(t *testing.T) {
var mu sync.RWMutex
var x, y int64 = 0, 1
+ _ = y
ch := make(chan bool, 2)
go func() {
mu.Lock()
diff --git a/src/runtime/race/testdata/select_test.go b/src/runtime/race/testdata/select_test.go
index 9969f47e8e..3827867687 100644
--- a/src/runtime/race/testdata/select_test.go
+++ b/src/runtime/race/testdata/select_test.go
@@ -11,6 +11,7 @@ import (
func TestNoRaceSelect1(t *testing.T) {
var x int
+ _ = x
compl := make(chan bool)
c := make(chan bool)
c1 := make(chan bool)
@@ -36,6 +37,7 @@ func TestNoRaceSelect1(t *testing.T) {
func TestNoRaceSelect2(t *testing.T) {
var x int
+ _ = x
compl := make(chan bool)
c := make(chan bool)
c1 := make(chan bool)
@@ -55,6 +57,7 @@ func TestNoRaceSelect2(t *testing.T) {
func TestNoRaceSelect3(t *testing.T) {
var x int
+ _ = x
compl := make(chan bool)
c := make(chan bool, 10)
c1 := make(chan bool)
@@ -112,6 +115,7 @@ func TestNoRaceSelect4(t *testing.T) {
func TestNoRaceSelect5(t *testing.T) {
test := func(sel, needSched bool) {
var x int
+ _ = x
ch := make(chan bool)
c1 := make(chan bool)
@@ -158,6 +162,7 @@ func TestNoRaceSelect5(t *testing.T) {
func TestRaceSelect1(t *testing.T) {
var x int
+ _ = x
compl := make(chan bool, 2)
c := make(chan bool)
c1 := make(chan bool)
@@ -182,6 +187,7 @@ func TestRaceSelect1(t *testing.T) {
func TestRaceSelect2(t *testing.T) {
var x int
+ _ = x
compl := make(chan bool)
c := make(chan bool)
c1 := make(chan bool)
@@ -200,6 +206,7 @@ func TestRaceSelect2(t *testing.T) {
func TestRaceSelect3(t *testing.T) {
var x int
+ _ = x
compl := make(chan bool)
c := make(chan bool)
c1 := make(chan bool)
diff --git a/src/runtime/race/testdata/sync_test.go b/src/runtime/race/testdata/sync_test.go
index d48680d5e6..2b2d95d76b 100644
--- a/src/runtime/race/testdata/sync_test.go
+++ b/src/runtime/race/testdata/sync_test.go
@@ -12,6 +12,7 @@ import (
func TestNoRaceCond(t *testing.T) {
x := 0
+ _ = x
condition := 0
var mu sync.Mutex
cond := sync.NewCond(&mu)
@@ -35,6 +36,7 @@ func TestRaceCond(t *testing.T) {
var mu sync.Mutex
cond := sync.NewCond(&mu)
x := 0
+ _ = x
condition := 0
go func() {
time.Sleep(10 * time.Millisecond) // Enter cond.Wait loop
@@ -67,6 +69,7 @@ func TestRaceAnnounceThreads(t *testing.T) {
allDone := make(chan bool, N)
var x int
+ _ = x
var f, g, h func()
f = func() {
@@ -133,6 +136,7 @@ func TestNoRaceAfterFunc2(t *testing.T) {
func TestNoRaceAfterFunc3(t *testing.T) {
c := make(chan bool, 1)
x := 0
+ _ = x
time.AfterFunc(1e7, func() {
x = 1
c <- true
@@ -143,6 +147,7 @@ func TestNoRaceAfterFunc3(t *testing.T) {
func TestRaceAfterFunc3(t *testing.T) {
c := make(chan bool, 2)
x := 0
+ _ = x
time.AfterFunc(1e7, func() {
x = 1
c <- true
@@ -161,6 +166,7 @@ func TestRaceAfterFunc3(t *testing.T) {
// comprehensible.
func TestRaceGoroutineCreationStack(t *testing.T) {
var x int
+ _ = x
var ch = make(chan bool, 1)
f1 := func() {
diff --git a/src/runtime/race/testdata/waitgroup_test.go b/src/runtime/race/testdata/waitgroup_test.go
index ff152b0abe..169337315b 100644
--- a/src/runtime/race/testdata/waitgroup_test.go
+++ b/src/runtime/race/testdata/waitgroup_test.go
@@ -13,6 +13,7 @@ import (
func TestNoRaceWaitGroup(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
n := 1
for i := 0; i < n; i++ {
@@ -28,6 +29,7 @@ func TestNoRaceWaitGroup(t *testing.T) {
func TestRaceWaitGroup(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
n := 2
for i := 0; i < n; i++ {
@@ -43,6 +45,7 @@ func TestRaceWaitGroup(t *testing.T) {
func TestNoRaceWaitGroup2(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
wg.Add(1)
go func() {
@@ -56,6 +59,7 @@ func TestNoRaceWaitGroup2(t *testing.T) {
// incrementing counter in Add and locking wg's mutex
func TestRaceWaitGroupAsMutex(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
c := make(chan bool, 2)
go func() {
@@ -82,6 +86,7 @@ func TestRaceWaitGroupAsMutex(t *testing.T) {
func TestRaceWaitGroupWrongWait(t *testing.T) {
c := make(chan bool, 2)
var x int
+ _ = x
var wg sync.WaitGroup
go func() {
wg.Add(1)
@@ -187,6 +192,7 @@ func TestNoRaceWaitGroupMultipleWait3(t *testing.T) {
// Correct usage but still a race
func TestRaceWaitGroup2(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
wg.Add(2)
go func() {
@@ -202,6 +208,7 @@ func TestRaceWaitGroup2(t *testing.T) {
func TestNoRaceWaitGroupPanicRecover(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
defer func() {
err := recover()
@@ -219,6 +226,7 @@ func TestNoRaceWaitGroupPanicRecover(t *testing.T) {
// Is it possible to get a race by synchronization via panic?
func TestNoRaceWaitGroupPanicRecover2(t *testing.T) {
var x int
+ _ = x
var wg sync.WaitGroup
ch := make(chan bool, 1)
var f func() = func() {