cfcbb4227f
This does not yet include support for the //go:embed directive added in this release. * Makefile.am (check-runtime): Don't create check-runtime-dir. (mostlyclean-local): Don't remove check-runtime-dir. (check-go-tool, check-vet): Copy in go.mod and modules.txt. (check-cgo-test, check-carchive-test): Add go.mod file. * Makefile.in: Regenerate. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/280172
34 lines
981 B
Go
34 lines
981 B
Go
// Copyright 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package testlog
|
|
|
|
import "sync"
|
|
|
|
// PanicOnExit0 reports whether to panic on a call to os.Exit(0).
|
|
// This is in the testlog package because, like other definitions in
|
|
// package testlog, it is a hook between the testing package and the
|
|
// os package. This is used to ensure that an early call to os.Exit(0)
|
|
// does not cause a test to pass.
|
|
func PanicOnExit0() bool {
|
|
panicOnExit0.mu.Lock()
|
|
defer panicOnExit0.mu.Unlock()
|
|
return panicOnExit0.val
|
|
}
|
|
|
|
// panicOnExit0 is the flag used for PanicOnExit0. This uses a lock
|
|
// because the value can be cleared via a timer call that may race
|
|
// with calls to os.Exit
|
|
var panicOnExit0 struct {
|
|
mu sync.Mutex
|
|
val bool
|
|
}
|
|
|
|
// SetPanicOnExit0 sets panicOnExit0 to v.
|
|
func SetPanicOnExit0(v bool) {
|
|
panicOnExit0.mu.Lock()
|
|
defer panicOnExit0.mu.Unlock()
|
|
panicOnExit0.val = v
|
|
}
|