[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

-- go.mod --
module testrace

go 1.16
-- 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
	}
}
