]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: remove arbitrary 5-second timeout in TestNeedmDeadlock
authorCherry Mui <cherryyz@google.com>
Fri, 27 Jun 2025 23:45:22 +0000 (19:45 -0400)
committerCherry Mui <cherryyz@google.com>
Sat, 28 Jun 2025 01:17:14 +0000 (18:17 -0700)
The NeedmDeadlock test program currently has a 5-second timeout,
which is sort of arbitrary. It is long enough in regular mode
(which usually takes 0.0X seconds), but not quite so for
configurations like ASAN. Instead of using an arbitrary timeout,
just use the test's deadline. The test program is invoked with
testenv.Command, which will send it a SIGQUIT before the deadline
expires.

Fixes #56420 (at least for the asan builder).

Change-Id: I0b13651cb07241401837ca2e60eaa1b83275b093
Reviewed-on: https://go-review.googlesource.com/c/go/+/684697
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
src/runtime/testdata/testprogcgo/needmdeadlock.go

index b95ec7746895b2f8c433036dad3ff639a1f368cc..f4710488c9e16300801b8fe755a1339c73262914 100644 (file)
@@ -70,8 +70,6 @@ import "C"
 
 import (
        "fmt"
-       "os"
-       "time"
 )
 
 func init() {
@@ -84,12 +82,8 @@ func GoNeedM() {
 
 func NeedmDeadlock() {
        // The failure symptom is that the program hangs because of a
-       // deadlock in needm, so set an alarm.
-       go func() {
-               time.Sleep(5 * time.Second)
-               fmt.Println("Hung for 5 seconds")
-               os.Exit(1)
-       }()
+       // deadlock in needm. Instead of using an arbitrary timeout,
+       // we let the test deadline expire if it deadlocks.
 
        C.runNeedmSignalThread()
        fmt.Println("OK")