mirror of
https://github.com/golang/go
synced 2024-11-23 10:00:03 -07:00
testing: restore os.Exit(0) after every call to (*M).Run
cmd/go.TestScript/test_main_twice demonstrates a program that invokes (*M).Run twice in a row. If we only restore os.Exit(0) in m.afterOnce, we will fail to restore it after the second run and fail the test process despite both runs passing. Updates #29062 Updates #23129 Change-Id: Id22ec68f1708e4583c8dda14a8ba0efae7178b85 Reviewed-on: https://go-review.googlesource.com/c/go/+/251262 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
26ad27bb02
commit
18ea6f597c
@ -1533,11 +1533,15 @@ func (m *M) before() {
|
||||
// after runs after all testing.
|
||||
func (m *M) after() {
|
||||
m.afterOnce.Do(func() {
|
||||
if *panicOnExit0 {
|
||||
m.deps.SetPanicOnExit0(false)
|
||||
}
|
||||
m.writeProfiles()
|
||||
})
|
||||
|
||||
// Restore PanicOnExit0 after every run, because we set it to true before
|
||||
// every run. Otherwise, if m.Run is called multiple times the behavior of
|
||||
// os.Exit(0) will not be restored after the second run.
|
||||
if *panicOnExit0 {
|
||||
m.deps.SetPanicOnExit0(false)
|
||||
}
|
||||
}
|
||||
|
||||
func (m *M) writeProfiles() {
|
||||
|
Loading…
Reference in New Issue
Block a user