mirror of
https://github.com/golang/go
synced 2024-11-23 14:40:02 -07:00
internal/cpu: use 'off' for disabling cpu capabilities instead of '0'
Updates #27218 Change-Id: I4ce20376fd601b5f958d79014af7eaf89e9de613 Reviewed-on: https://go-review.googlesource.com/c/141818 Run-TryBot: Martin Möhrmann <moehrmann@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
d82e51a119
commit
4fb8b1de3c
@ -157,11 +157,11 @@ type option struct {
|
||||
}
|
||||
|
||||
// processOptions disables CPU feature values based on the parsed env string.
|
||||
// The env string is expected to be of the form feature1=0,feature2=0...
|
||||
// The env string is expected to be of the form feature1=off,feature2=off...
|
||||
// where feature names is one of the architecture specifc list stored in the
|
||||
// cpu packages options variable. If env contains all=0 then all capabilities
|
||||
// cpu packages options variable. If env contains all=off then all capabilities
|
||||
// referenced through the options variable are disabled. Other feature
|
||||
// names and values other than 0 are silently ignored.
|
||||
// names and values other than 'off' are silently ignored.
|
||||
func processOptions(env string) {
|
||||
field:
|
||||
for env != "" {
|
||||
@ -178,8 +178,8 @@ field:
|
||||
}
|
||||
key, value := field[:i], field[i+1:]
|
||||
|
||||
// Only allow turning off CPU features by specifying '0'.
|
||||
if value == "0" {
|
||||
// Only allow turning off CPU features by specifying 'off'.
|
||||
if value == "off" {
|
||||
if key == "all" {
|
||||
for _, v := range options {
|
||||
*v.Feature = false
|
||||
|
@ -38,14 +38,14 @@ func runDebugOptionsTest(t *testing.T, test string, options string) {
|
||||
}
|
||||
|
||||
func TestDisableAllCapabilities(t *testing.T) {
|
||||
runDebugOptionsTest(t, "TestAllCapabilitiesDisabled", "all=0")
|
||||
runDebugOptionsTest(t, "TestAllCapabilitiesDisabled", "all=off")
|
||||
}
|
||||
|
||||
func TestAllCapabilitiesDisabled(t *testing.T) {
|
||||
MustHaveDebugOptionsSupport(t)
|
||||
|
||||
if os.Getenv("GODEBUGCPU") != "all=0" {
|
||||
t.Skipf("skipping test: GODEBUGCPU=all=0 not set")
|
||||
if os.Getenv("GODEBUGCPU") != "all=off" {
|
||||
t.Skipf("skipping test: GODEBUGCPU=all=off not set")
|
||||
}
|
||||
|
||||
for _, o := range Options {
|
||||
|
@ -30,14 +30,14 @@ func TestX86ifAVX2hasAVX(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDisableSSE2(t *testing.T) {
|
||||
runDebugOptionsTest(t, "TestSSE2DebugOption", "sse2=0")
|
||||
runDebugOptionsTest(t, "TestSSE2DebugOption", "sse2=off")
|
||||
}
|
||||
|
||||
func TestSSE2DebugOption(t *testing.T) {
|
||||
MustHaveDebugOptionsSupport(t)
|
||||
|
||||
if os.Getenv("GODEBUGCPU") != "sse2=0" {
|
||||
t.Skipf("skipping test: GODEBUGCPU=sse2=0 not set")
|
||||
if os.Getenv("GODEBUGCPU") != "sse2=off" {
|
||||
t.Skipf("skipping test: GODEBUGCPU=sse2=off not set")
|
||||
}
|
||||
|
||||
want := runtime.GOARCH != "386" // SSE2 can only be disabled on 386.
|
||||
|
Loading…
Reference in New Issue
Block a user