ai_old/goja/tc39_race_test.go
2024-09-20 16:50:35 +08:00

33 lines
622 B
Go

//go:build race
// +build race
package goja
import (
"testing"
)
const (
tc39MaxTestGroupSize = 8000 // to prevent race detector complaining about too many goroutines
)
func (ctx *tc39TestCtx) runTest(name string, f func(t *testing.T)) {
ctx.testQueue = append(ctx.testQueue, tc39Test{name: name, f: f})
if len(ctx.testQueue) >= tc39MaxTestGroupSize {
ctx.flush()
}
}
func (ctx *tc39TestCtx) flush() {
ctx.t.Run("tc39", func(t *testing.T) {
for _, tc := range ctx.testQueue {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
tc.f(t)
})
}
})
ctx.testQueue = ctx.testQueue[:0]
}