go/packages: pass TestConfigDefaultEnv on Plan 9
Change-Id: Ice0d44c97dc76bf0ebfe433577d55eb6763cb6d3 Reviewed-on: https://go-review.googlesource.com/c/132601 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
fc0741f0ff
commit
5b8b0ce6cc
|
@ -1414,24 +1414,41 @@ func testPatternPassthrough(t *testing.T, exporter packagestest.Exporter) {
|
||||||
|
|
||||||
func TestConfigDefaultEnv(t *testing.T) { packagestest.TestAll(t, testConfigDefaultEnv) }
|
func TestConfigDefaultEnv(t *testing.T) { packagestest.TestAll(t, testConfigDefaultEnv) }
|
||||||
func testConfigDefaultEnv(t *testing.T, exporter packagestest.Exporter) {
|
func testConfigDefaultEnv(t *testing.T, exporter packagestest.Exporter) {
|
||||||
if runtime.GOOS == "windows" {
|
const driverJSON = `{
|
||||||
|
"Roots": ["gopackagesdriver"],
|
||||||
|
"Packages": [{"ID": "gopackagesdriver", "Name": "gopackagesdriver"}]
|
||||||
|
}`
|
||||||
|
var (
|
||||||
|
pathKey string
|
||||||
|
driverScript packagestest.Writer
|
||||||
|
)
|
||||||
|
switch runtime.GOOS {
|
||||||
|
case "windows":
|
||||||
// TODO(jayconrod): write an equivalent batch script for windows.
|
// TODO(jayconrod): write an equivalent batch script for windows.
|
||||||
// Hint: "type" can be used to read a file to stdout.
|
// Hint: "type" can be used to read a file to stdout.
|
||||||
t.Skip("test requires sh")
|
t.Skip("test requires sh")
|
||||||
|
case "plan9":
|
||||||
|
pathKey = "path"
|
||||||
|
driverScript = packagestest.Script(`#!/bin/rc
|
||||||
|
|
||||||
|
cat <<'EOF'
|
||||||
|
` + driverJSON + `
|
||||||
|
EOF
|
||||||
|
`)
|
||||||
|
default:
|
||||||
|
pathKey = "PATH"
|
||||||
|
driverScript = packagestest.Script(`#!/bin/sh
|
||||||
|
|
||||||
|
cat - <<'EOF'
|
||||||
|
` + driverJSON + `
|
||||||
|
EOF
|
||||||
|
`)
|
||||||
}
|
}
|
||||||
exported := packagestest.Export(t, exporter, []packagestest.Module{{
|
exported := packagestest.Export(t, exporter, []packagestest.Module{{
|
||||||
Name: "golang.org/fake",
|
Name: "golang.org/fake",
|
||||||
Files: map[string]interface{}{
|
Files: map[string]interface{}{
|
||||||
"bin/gopackagesdriver": packagestest.Script(`#!/bin/sh
|
"bin/gopackagesdriver": driverScript,
|
||||||
|
"golist/golist.go": "package golist",
|
||||||
cat - <<'EOF'
|
|
||||||
{
|
|
||||||
"Roots": ["gopackagesdriver"],
|
|
||||||
"Packages": [{"ID": "gopackagesdriver", "Name": "gopackagesdriver"}]
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
`),
|
|
||||||
"golist/golist.go": "package golist",
|
|
||||||
}}})
|
}}})
|
||||||
defer exported.Cleanup()
|
defer exported.Cleanup()
|
||||||
driver := exported.File("golang.org/fake", "bin/gopackagesdriver")
|
driver := exported.File("golang.org/fake", "bin/gopackagesdriver")
|
||||||
|
@ -1440,7 +1457,7 @@ EOF
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
path, ok := os.LookupEnv("PATH")
|
path, ok := os.LookupEnv(pathKey)
|
||||||
var pathWithDriver string
|
var pathWithDriver string
|
||||||
if ok {
|
if ok {
|
||||||
pathWithDriver = binDir + string(os.PathListSeparator) + path
|
pathWithDriver = binDir + string(os.PathListSeparator) + path
|
||||||
|
@ -1472,9 +1489,9 @@ EOF
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
t.Run(test.desc, func(t *testing.T) {
|
t.Run(test.desc, func(t *testing.T) {
|
||||||
oldPath := os.Getenv("PATH")
|
oldPath := os.Getenv(pathKey)
|
||||||
os.Setenv("PATH", test.path)
|
os.Setenv(pathKey, test.path)
|
||||||
defer os.Setenv("PATH", oldPath)
|
defer os.Setenv(pathKey, oldPath)
|
||||||
exported.Config.Env = append(coreEnv, "GOPACKAGESDRIVER="+test.driver)
|
exported.Config.Env = append(coreEnv, "GOPACKAGESDRIVER="+test.driver)
|
||||||
pkgs, err := packages.Load(exported.Config, "golist")
|
pkgs, err := packages.Load(exported.Config, "golist")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue