From: Russ Cox Date: Sat, 9 Mar 2024 00:29:27 +0000 (-0500) Subject: cmd/go: respect GODEBUG in test cache X-Git-Tag: go1.23rc1~932 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=47d4295f924bca6f1852622aabc3d3876a3f06d8;p=gostls13.git cmd/go: respect GODEBUG in test cache GODEBUG affects test execution but was not being tracked. Fixes #66213. Fixes #65436. Change-Id: I3ac3c397f0c6fa46cd9be0d22d03020d0632f64f Reviewed-on: https://go-review.googlesource.com/c/go/+/570259 Reviewed-by: Ian Lance Taylor LUCI-TryBot-Result: Go LUCI Auto-Submit: Russ Cox --- diff --git a/src/cmd/go/internal/test/test.go b/src/cmd/go/internal/test/test.go index 08fac5f395..f1555fd5d4 100644 --- a/src/cmd/go/internal/test/test.go +++ b/src/cmd/go/internal/test/test.go @@ -1859,6 +1859,8 @@ var testlogMagic = []byte("# test log\n") // known to testing/internal/testdeps/ func computeTestInputsID(a *work.Action, testlog []byte) (cache.ActionID, error) { testlog = bytes.TrimPrefix(testlog, testlogMagic) h := cache.NewHash("testInputs") + // The runtime always looks at GODEBUG, without telling us in the testlog. + fmt.Fprintf(h, "env GODEBUG %x\n", hashGetenv("GODEBUG")) pwd := a.Package.Dir for _, line := range bytes.Split(testlog, []byte("\n")) { if len(line) == 0 { diff --git a/src/cmd/go/testdata/script/test_cache_inputs.txt b/src/cmd/go/testdata/script/test_cache_inputs.txt index 1868da9842..68a700b116 100644 --- a/src/cmd/go/testdata/script/test_cache_inputs.txt +++ b/src/cmd/go/testdata/script/test_cache_inputs.txt @@ -23,6 +23,14 @@ go test testcache -run=TestLookupEnv go test testcache -run=TestLookupEnv stdout '\(cached\)' +# GODEBUG is always read +env GODEBUG=asdf=1 +go test testcache -run=TestLookupEnv +! stdout '\(cached\)' +go test testcache -run=TestLookupEnv +stdout '\(cached\)' +env GODEBUG= + env TESTKEY=y go test testcache -run=TestLookupEnv ! stdout '\(cached\)'