mirror of
https://github.com/golang/go
synced 2024-11-07 17:36:11 -07:00
runtime: check tgkill error in Debug tests
Updates #25519 Change-Id: Ibcdf948fd38d8d02d467b62213566ec0d7ce0d6a Reviewed-on: https://go-review.googlesource.com/123180 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
This commit is contained in:
parent
5201b1ad22
commit
ebdba42d9e
@ -69,8 +69,8 @@ func debugCallWorker2(stop *uint32, x *int) {
|
|||||||
*x = 1
|
*x = 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func debugCallTKill(tid int) {
|
func debugCallTKill(tid int) error {
|
||||||
syscall.Tgkill(syscall.Getpid(), tid, syscall.SIGTRAP)
|
return syscall.Tgkill(syscall.Getpid(), tid, syscall.SIGTRAP)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDebugCall(t *testing.T) {
|
func TestDebugCall(t *testing.T) {
|
||||||
|
@ -20,7 +20,7 @@ import (
|
|||||||
//
|
//
|
||||||
// On success, InjectDebugCall returns the panic value of fn or nil.
|
// On success, InjectDebugCall returns the panic value of fn or nil.
|
||||||
// If fn did not panic, its results will be available in args.
|
// If fn did not panic, its results will be available in args.
|
||||||
func InjectDebugCall(gp *g, fn, args interface{}, tkill func(tid int)) (interface{}, error) {
|
func InjectDebugCall(gp *g, fn, args interface{}, tkill func(tid int) error) (interface{}, error) {
|
||||||
if gp.lockedm == 0 {
|
if gp.lockedm == 0 {
|
||||||
return nil, plainError("goroutine not locked to thread")
|
return nil, plainError("goroutine not locked to thread")
|
||||||
}
|
}
|
||||||
@ -54,7 +54,9 @@ func InjectDebugCall(gp *g, fn, args interface{}, tkill func(tid int)) (interfac
|
|||||||
|
|
||||||
defer func() { testSigtrap = nil }()
|
defer func() { testSigtrap = nil }()
|
||||||
testSigtrap = h.inject
|
testSigtrap = h.inject
|
||||||
tkill(tid)
|
if err := tkill(tid); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
// Wait for completion.
|
// Wait for completion.
|
||||||
notetsleepg(&h.done, -1)
|
notetsleepg(&h.done, -1)
|
||||||
if len(h.err) != 0 {
|
if len(h.err) != 0 {
|
||||||
|
Loading…
Reference in New Issue
Block a user