[short] skip
[!race] skip

# Make sure test is functional.
go test testrace

# Now, check that -race -covermode=set is not allowed.
! go test -race -covermode=set testrace
stderr '-covermode must be "atomic", not "set", when -race is enabled'
! stdout PASS
! stderr PASS

-- testrace/race_test.go --
package testrace

import "testing"

func TestRace(t *testing.T) {
	for i := 0; i < 10; i++ {
		c := make(chan int)
		x := 1
		go func() {
			x = 2
			c <- 1
		}()
		x = 3
		<-c
		_ = x
	}
}

func BenchmarkRace(b *testing.B) {
	for i := 0; i < b.N; i++ {
		c := make(chan int)
		x := 1
		go func() {
			x = 2
			c <- 1
		}()
		x = 3
		<-c
		_ = x
	}
}
