diff options
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) } |
