mirror of
https://github.com/golang/go
synced 2024-11-17 21:14:44 -07:00
all: use "noopt" build tag for checking optimization disabled
Fixes #49390 Change-Id: Ie5a5e097635c9fdcf4509455007283009a7d3021 Reviewed-on: https://go-review.googlesource.com/c/go/+/423256 Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com> Reviewed-by: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
c04977fa76
commit
c411886c75
17
src/cmd/dist/build.go
vendored
17
src/cmd/dist/build.go
vendored
@ -55,6 +55,7 @@ var (
|
||||
|
||||
rebuildall bool
|
||||
defaultclang bool
|
||||
noOpt bool
|
||||
|
||||
vflag int // verbosity
|
||||
)
|
||||
@ -1325,6 +1326,7 @@ func cmdbootstrap() {
|
||||
}
|
||||
|
||||
gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
|
||||
setNoOpt()
|
||||
goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
|
||||
goBootstrap := pathf("%s/go_bootstrap", tooldir)
|
||||
cmdGo := pathf("%s/go", gorootBin)
|
||||
@ -1510,6 +1512,9 @@ func appendCompilerFlags(args []string) []string {
|
||||
|
||||
func goCmd(goBinary string, cmd string, args ...string) {
|
||||
goCmd := []string{goBinary, cmd}
|
||||
if noOpt {
|
||||
goCmd = append(goCmd, "-tags=noopt")
|
||||
}
|
||||
goCmd = appendCompilerFlags(goCmd)
|
||||
if vflag > 0 {
|
||||
goCmd = append(goCmd, "-v")
|
||||
@ -1525,6 +1530,9 @@ func goCmd(goBinary string, cmd string, args ...string) {
|
||||
|
||||
func checkNotStale(goBinary string, targets ...string) {
|
||||
goCmd := []string{goBinary, "list"}
|
||||
if noOpt {
|
||||
goCmd = append(goCmd, "-tags=noopt")
|
||||
}
|
||||
goCmd = appendCompilerFlags(goCmd)
|
||||
goCmd = append(goCmd, "-f={{if .Stale}}\tSTALE {{.ImportPath}}: {{.StaleReason}}{{end}}")
|
||||
|
||||
@ -1800,3 +1808,12 @@ func IsRuntimePackagePath(pkgpath string) bool {
|
||||
}
|
||||
return rval
|
||||
}
|
||||
|
||||
func setNoOpt() {
|
||||
for _, gcflag := range strings.Split(gogcflags, " ") {
|
||||
if gcflag == "-N" || gcflag == "-l" {
|
||||
noOpt = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
12
src/cmd/dist/test.go
vendored
12
src/cmd/dist/test.go
vendored
@ -25,6 +25,7 @@ import (
|
||||
|
||||
func cmdtest() {
|
||||
gogcflags = os.Getenv("GO_GCFLAGS")
|
||||
setNoOpt()
|
||||
|
||||
var t tester
|
||||
|
||||
@ -325,11 +326,18 @@ func (t *tester) goTest() []string {
|
||||
}
|
||||
|
||||
func (t *tester) tags() string {
|
||||
if t.iOS() {
|
||||
ios := t.iOS()
|
||||
switch {
|
||||
case ios && noOpt:
|
||||
return "-tags=lldb,noopt"
|
||||
case ios:
|
||||
return "-tags=lldb"
|
||||
}
|
||||
case noOpt:
|
||||
return "-tags=noopt"
|
||||
default:
|
||||
return "-tags="
|
||||
}
|
||||
}
|
||||
|
||||
// timeoutDuration converts the provided number of seconds into a
|
||||
// time.Duration, scaled by the t.timeoutScale factor.
|
||||
|
12
src/internal/testenv/noopt.go
Normal file
12
src/internal/testenv/noopt.go
Normal file
@ -0,0 +1,12 @@
|
||||
// Copyright 2022 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.
|
||||
|
||||
//go:build noopt
|
||||
|
||||
package testenv
|
||||
|
||||
// OptimizationOff reports whether optimization is disabled.
|
||||
func OptimizationOff() bool {
|
||||
return true
|
||||
}
|
12
src/internal/testenv/opt.go
Normal file
12
src/internal/testenv/opt.go
Normal file
@ -0,0 +1,12 @@
|
||||
// Copyright 2022 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.
|
||||
|
||||
//go:build !noopt
|
||||
|
||||
package testenv
|
||||
|
||||
// OptimizationOff reports whether optimization is disabled.
|
||||
func OptimizationOff() bool {
|
||||
return false
|
||||
}
|
@ -412,15 +412,10 @@ func SkipIfShortAndSlow(t testing.TB) {
|
||||
func SkipIfOptimizationOff(t testing.TB) {
|
||||
if OptimizationOff() {
|
||||
t.Helper()
|
||||
t.Skip("skipping test with optimization disabled on builder")
|
||||
t.Skip("skipping test with optimization disabled")
|
||||
}
|
||||
}
|
||||
|
||||
// OptimizationOff reports whether optimization is disabled.
|
||||
func OptimizationOff() bool {
|
||||
return strings.HasSuffix(Builder(), "-noopt")
|
||||
}
|
||||
|
||||
// RunWithTimeout runs cmd and returns its combined output. If the
|
||||
// subprocess exits with a non-zero status, it will log that status
|
||||
// and return a non-nil error, but this is not considered fatal.
|
||||
|
Loading…
Reference in New Issue
Block a user