Text file src/cmd/go/testdata/script/test_race.txt

     1  [short] skip
     2  [!race] skip
     3  
     4  go test testrace
     5  
     6  ! go test -race testrace
     7  stdout 'FAIL: TestRace'
     8  ! stdout 'PASS'
     9  ! stderr 'PASS'
    10  
    11  ! go test -race testrace -run XXX -bench .
    12  stdout 'FAIL: BenchmarkRace'
    13  ! stdout 'PASS'
    14  ! stderr 'PASS'
    15  
    16  -- go.mod --
    17  module testrace
    18  
    19  go 1.16
    20  -- race_test.go --
    21  package testrace
    22  
    23  import "testing"
    24  
    25  func TestRace(t *testing.T) {
    26  	for i := 0; i < 10; i++ {
    27  		c := make(chan int)
    28  		x := 1
    29  		go func() {
    30  			x = 2
    31  			c <- 1
    32  		}()
    33  		x = 3
    34  		<-c
    35  		_ = x
    36  	}
    37  }
    38  
    39  func BenchmarkRace(b *testing.B) {
    40  	for i := 0; i < b.N; i++ {
    41  		c := make(chan int)
    42  		x := 1
    43  		go func() {
    44  			x = 2
    45  			c <- 1
    46  		}()
    47  		x = 3
    48  		<-c
    49  		_ = x
    50  	}
    51  }
    52  

View as plain text