1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // The file contains tests that cannot run under race detector for some reason.
16 // Syscall tests split stack between Entersyscall and Exitsyscall under race detector.
17 func BenchmarkSyscall(b *testing.B) {
18 benchmarkSyscall(b, 0, 1)
21 func BenchmarkSyscallWork(b *testing.B) {
22 benchmarkSyscall(b, 100, 1)
25 func BenchmarkSyscallExcess(b *testing.B) {
26 benchmarkSyscall(b, 0, 4)
29 func BenchmarkSyscallExcessWork(b *testing.B) {
30 benchmarkSyscall(b, 100, 4)
33 func benchmarkSyscall(b *testing.B, work, excess int) {
34 b.SetParallelism(excess)
35 b.RunParallel(func(pb *testing.PB) {
38 runtime.Entersyscall()
39 for i := 0; i < work; i++ {