diff options
| author | Russ Cox <rsc@golang.org> | 2024-05-17 12:07:15 -0400 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-05-23 02:32:19 +0000 |
| commit | ff2070d9398aff1c44691a90761eb35ea3cd4601 (patch) | |
| tree | 77cb849fc27f0348ca652dd162ae3fbf9346ee33 /src/runtime/testdata | |
| parent | fd1363240ac22583125d43d8e15f130f02a7659b (diff) | |
| download | go-ff2070d9398aff1c44691a90761eb35ea3cd4601.tar.xz | |
runtime: move exit hooks into internal/runtime/exithook
This removes a //go:linkname usage in the coverage implementation.
For #67401.
Change-Id: I0602172c7e372a84465160dbf46d9fa371582fff
Reviewed-on: https://go-review.googlesource.com/c/go/+/586259
Auto-Submit: Russ Cox <rsc@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Diffstat (limited to 'src/runtime/testdata')
| -rw-r--r-- | src/runtime/testdata/testexithooks/testexithooks.go | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/src/runtime/testdata/testexithooks/testexithooks.go b/src/runtime/testdata/testexithooks/testexithooks.go index ceb3326c4f..151b5dc62b 100644 --- a/src/runtime/testdata/testexithooks/testexithooks.go +++ b/src/runtime/testdata/testexithooks/testexithooks.go @@ -7,6 +7,7 @@ package main import ( "flag" "os" + "internal/runtime/exithook" _ "unsafe" ) @@ -30,22 +31,19 @@ func main() { } } -//go:linkname runtime_addExitHook runtime.addExitHook -func runtime_addExitHook(f func(), runOnNonZeroExit bool) - func testSimple() { f1 := func() { println("foo") } f2 := func() { println("bar") } - runtime_addExitHook(f1, false) - runtime_addExitHook(f2, false) + exithook.Add(exithook.Hook{F: f1}) + exithook.Add(exithook.Hook{F: f2}) // no explicit call to os.Exit } func testGoodExit() { f1 := func() { println("apple") } f2 := func() { println("orange") } - runtime_addExitHook(f1, false) - runtime_addExitHook(f2, false) + exithook.Add(exithook.Hook{F: f1}) + exithook.Add(exithook.Hook{F: f2}) // explicit call to os.Exit os.Exit(0) } @@ -56,11 +54,11 @@ func testBadExit() { f3 := func() { println("blek") } f4 := func() { println("blub") } f5 := func() { println("blat") } - runtime_addExitHook(f1, false) - runtime_addExitHook(f2, true) - runtime_addExitHook(f3, false) - runtime_addExitHook(f4, true) - runtime_addExitHook(f5, false) + exithook.Add(exithook.Hook{F: f1}) + exithook.Add(exithook.Hook{F: f2, RunOnFailure: true}) + exithook.Add(exithook.Hook{F: f3}) + exithook.Add(exithook.Hook{F: f4, RunOnFailure: true}) + exithook.Add(exithook.Hook{F: f5}) os.Exit(1) } @@ -68,9 +66,9 @@ func testPanics() { f1 := func() { println("ok") } f2 := func() { panic("BADBADBAD") } f3 := func() { println("good") } - runtime_addExitHook(f1, true) - runtime_addExitHook(f2, true) - runtime_addExitHook(f3, true) + exithook.Add(exithook.Hook{F: f1, RunOnFailure: true}) + exithook.Add(exithook.Hook{F: f2, RunOnFailure: true}) + exithook.Add(exithook.Hook{F: f3, RunOnFailure: true}) os.Exit(0) } @@ -78,8 +76,8 @@ func testHookCallsExit() { f1 := func() { println("ok") } f2 := func() { os.Exit(1) } f3 := func() { println("good") } - runtime_addExitHook(f1, true) - runtime_addExitHook(f2, true) - runtime_addExitHook(f3, true) + exithook.Add(exithook.Hook{F: f1, RunOnFailure: true}) + exithook.Add(exithook.Hook{F: f2, RunOnFailure: true}) + exithook.Add(exithook.Hook{F: f3, RunOnFailure: true}) os.Exit(1) } |
