1
0
mirror of https://github.com/golang/go synced 2024-09-24 15:30:13 -06:00

cmd/link/internal/ld: make dwarf_test and associated testdata module-agnostic

Updates #30228

Change-Id: I31aac4cb113c0c88a54329181ad27aee3d8acc71
Reviewed-on: https://go-review.googlesource.com/c/162835
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
Bryan C. Mills 2019-02-19 13:48:15 -05:00
parent b88462ef8b
commit 1e4a88fa0a
6 changed files with 8 additions and 20 deletions

View File

@ -114,26 +114,14 @@ func gobuild(t *testing.T, dir string, testfile string, gcflags string) *builtFi
return &builtFile{f, dst}
}
func envWithGoPathSet(gp string) []string {
env := os.Environ()
for i := 0; i < len(env); i++ {
if strings.HasPrefix(env[i], "GOPATH=") {
env[i] = "GOPATH=" + gp
return env
}
}
env = append(env, "GOPATH="+gp)
return env
}
// Similar to gobuild() above, but uses a main package instead of a test.go file.
// Similar to gobuild() above, but runs off a separate GOPATH environment
func gobuildTestdata(t *testing.T, tdir string, gopathdir string, packtobuild string, gcflags string) *builtFile {
func gobuildTestdata(t *testing.T, tdir string, pkgDir string, gcflags string) *builtFile {
dst := filepath.Join(tdir, "out.exe")
// Run a build with an updated GOPATH
cmd := exec.Command(testenv.GoToolPath(t), "build", gcflags, "-o", dst, packtobuild)
cmd.Env = envWithGoPathSet(gopathdir)
cmd := exec.Command(testenv.GoToolPath(t), "build", gcflags, "-o", dst)
cmd.Dir = pkgDir
if b, err := cmd.CombinedOutput(); err != nil {
t.Logf("build: %s\n", b)
t.Fatalf("build error: %v", err)
@ -727,7 +715,7 @@ func main() {
}
}
func abstractOriginSanity(t *testing.T, gopathdir string, flags string) {
func abstractOriginSanity(t *testing.T, pkgDir string, flags string) {
t.Parallel()
dir, err := ioutil.TempDir("", "TestAbstractOriginSanity")
@ -737,7 +725,7 @@ func abstractOriginSanity(t *testing.T, gopathdir string, flags string) {
defer os.RemoveAll(dir)
// Build with inlining, to exercise DWARF inlining support.
f := gobuildTestdata(t, dir, gopathdir, "main", flags)
f := gobuildTestdata(t, dir, filepath.Join(pkgDir, "main"), flags)
d, err := f.DWARF()
if err != nil {

View File

@ -1,6 +1,6 @@
package main
import "a"
import "cmd/link/internal/ld/testdata/issue25459/a"
var Glob int

View File

@ -3,7 +3,7 @@ package main
import (
"fmt"
b "b.dir"
b "cmd/link/internal/ld/testdata/issue26237/b.dir"
)
var skyx int