aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/testdata
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2024-05-17 12:07:15 -0400
committerGopher Robot <gobot@golang.org>2024-05-23 02:32:19 +0000
commitff2070d9398aff1c44691a90761eb35ea3cd4601 (patch)
tree77cb849fc27f0348ca652dd162ae3fbf9346ee33 /src/runtime/testdata
parentfd1363240ac22583125d43d8e15f130f02a7659b (diff)
downloadgo-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.go34
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)
}