From: Ian Lance Taylor Date: Tue, 26 Mar 2024 20:18:34 +0000 (-0700) Subject: test: issue16016: use fewer goroutines for gccgo X-Git-Tag: go1.23rc1~756 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=132f9fa9f8d52ac6ca38b5f3a65d67c1492a42c2;p=gostls13.git test: issue16016: use fewer goroutines for gccgo For https://gcc.gnu.org/PR114453 Change-Id: If41d9fca6288b18ed47b0f21ff224c74ddb34958 Reviewed-on: https://go-review.googlesource.com/c/go/+/574536 Reviewed-by: Than McIntosh Auto-Submit: Ian Lance Taylor Reviewed-by: Emmanuel Odeke Reviewed-by: Cherry Mui LUCI-TryBot-Result: Go LUCI --- diff --git a/test/fixedbugs/issue16016.go b/test/fixedbugs/issue16016.go index e738e1dba0..b1947f5548 100644 --- a/test/fixedbugs/issue16016.go +++ b/test/fixedbugs/issue16016.go @@ -6,7 +6,10 @@ package main -import "time" +import ( + "runtime" + "time" +) type T struct{} @@ -24,8 +27,19 @@ type Q interface { } func main() { + var count = 10000 + if runtime.Compiler == "gccgo" { + // On targets without split-stack libgo allocates + // a large stack for each goroutine. On 32-bit + // systems this test can run out of memory. + const intSize = 32 << (^uint(0) >> 63) // 32 or 64 + if intSize < 64 { + count = 100 + } + } + var q Q = &R{&T{}} - for i := 0; i < 10000; i++ { + for i := 0; i < count; i++ { go func() { defer q.Foo([]interface{}{"meow"}) time.Sleep(100 * time.Millisecond)