CURRENT PATH:
/
opt
/
golang
/
1.22.0
/
src
/
runtime
/
race
/
KEMBALI
|
HOME
Upload File Local:
Upload
Upload via URL:
Download
Dir Baru
File Baru
Editing:
sched_test.go
// Copyright 2015 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build race package race_test import ( "fmt" "reflect" "runtime" "strings" "testing" ) func TestRandomScheduling(t *testing.T) { // Scheduler is most consistent with GOMAXPROCS=1. // Use that to make the test most likely to fail. defer runtime.GOMAXPROCS(runtime.GOMAXPROCS(1)) const N = 10 out := make([][]int, N) for i := 0; i < N; i++ { c := make(chan int, N) for j := 0; j < N; j++ { go func(j int) { c <- j }(j) } row := make([]int, N) for j := 0; j < N; j++ { row[j] = <-c } out[i] = row } for i := 0; i < N; i++ { if !reflect.DeepEqual(out[0], out[i]) { return // found a different order } } var buf strings.Builder for i := 0; i < N; i++ { fmt.Fprintf(&buf, "%v\n", out[i]) } t.Fatalf("consistent goroutine execution order:\n%v", buf.String()) }
SIMPAN
BATAL