From: suntala Date: Thu, 22 Feb 2024 22:49:36 +0000 (+0000) Subject: cmd/go/internal/envcmd: show GODEBUG in 'go env' output X-Git-Tag: go1.23rc1~1040 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=038fbf9f285d09663670d7cbc9a0185e06bf5e2f;p=gostls13.git cmd/go/internal/envcmd: show GODEBUG in 'go env' output Fixes #65777 Change-Id: I62067d8212bfd9f9475ecad036a1218ffc5c2130 GitHub-Last-Rev: a395b0293a4796e4ac5db64c1521ade4ede0dfd8 GitHub-Pull-Request: golang/go#65888 Reviewed-on: https://go-review.googlesource.com/c/go/+/566097 Reviewed-by: Bryan Mills LUCI-TryBot-Result: Go LUCI Auto-Submit: Bryan Mills Reviewed-by: Carlos Amedee --- diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go index c7c2e83e0f..1680753b0f 100644 --- a/src/cmd/go/internal/envcmd/env.go +++ b/src/cmd/go/internal/envcmd/env.go @@ -104,6 +104,7 @@ func MkEnv() []cfg.EnvVar { {Name: "GOTOOLDIR", Value: build.ToolDir}, {Name: "GOVCS", Value: cfg.GOVCS}, {Name: "GOVERSION", Value: runtime.Version()}, + {Name: "GODEBUG", Value: os.Getenv("GODEBUG")}, } if work.GccgoBin != "" { @@ -530,7 +531,7 @@ func checkEnvWrite(key, val string) error { switch key { case "GOEXE", "GOGCCFLAGS", "GOHOSTARCH", "GOHOSTOS", "GOMOD", "GOWORK", "GOTOOLDIR", "GOVERSION": return fmt.Errorf("%s cannot be modified", key) - case "GOENV": + case "GOENV", "GODEBUG": return fmt.Errorf("%s can only be set using the OS environment", key) } diff --git a/src/cmd/go/testdata/script/env_write.txt b/src/cmd/go/testdata/script/env_write.txt index 5d40949cdd..bf14a2f0bd 100644 --- a/src/cmd/go/testdata/script/env_write.txt +++ b/src/cmd/go/testdata/script/env_write.txt @@ -65,14 +65,16 @@ go env -u GOPATH ! stderr .+ # go env -w rejects unknown or bad variables -! go env -w GODEBUG=gctrace=1 -stderr 'unknown go command variable GODEBUG' +! go env -w GOGC=off +stderr 'unknown go command variable GOGC' ! go env -w GOEXE=.bat stderr 'GOEXE cannot be modified' ! go env -w GOVERSION=customversion stderr 'GOVERSION cannot be modified' ! go env -w GOENV=/env stderr 'GOENV can only be set using the OS environment' +! go env -w GODEBUG=gctrace=1 +stderr 'GODEBUG can only be set using the OS environment' # go env -w can set multiple variables env CC=