"bytes"
"context"
"flag"
- "fmt"
- "go/build"
"internal/testenv"
"internal/txtar"
"net/url"
"os"
"path/filepath"
- "regexp"
"runtime"
"strings"
"testing"
"time"
"cmd/go/internal/cfg"
+ "cmd/go/internal/gover"
"cmd/go/internal/script"
"cmd/go/internal/script/scripttest"
"cmd/go/internal/vcweb/vcstest"
if err != nil {
return nil, err
}
- version, err := goVersion()
- if err != nil {
- return nil, err
- }
env := []string{
pathEnvName() + "=" + testBin + string(filepath.ListSeparator) + os.Getenv(pathEnvName()),
homeEnvName() + "=/no-home",
"GONOSUMDB=",
"GOVCS=*:all",
"devnull=" + os.DevNull,
- "goversion=" + version,
+ "goversion=" + gover.Local(),
"CMDGO_TEST_RUN_MAIN=true",
"HGRCPATH=",
"GOTOOLCHAIN=auto",
return env, nil
}
-// goVersion returns the current Go version.
-func goVersion() (string, error) {
- tags := build.Default.ReleaseTags
- version := tags[len(tags)-1]
- if !regexp.MustCompile(`^go([1-9][0-9]*)\.(0|[1-9][0-9]*)$`).MatchString(version) {
- return "", fmt.Errorf("invalid go version %q", version)
- }
- return version[2:], nil
-}
-
var extraEnvKeys = []string{
"SYSTEMROOT", // must be preserved on Windows to find DLLs; golang.org/issue/25210
"WINDIR", // must be preserved on Windows to be able to run PowerShell command; golang.org/issue/30711