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 runs off a separate GOPATH environment
+// Similar to gobuild() above, but uses a main package instead of a test.go file.
-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)
}
}
-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")
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 {