From dac858ef073866423efa3e885a546c4e190f7994 Mon Sep 17 00:00:00 2001 From: lyyyuna Date: Sun, 14 Jun 2020 09:15:48 +0800 Subject: [PATCH] fix #14 --- pkg/build/tmpfolder.go | 5 +++++ pkg/build/tmpfolder_test.go | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/pkg/build/tmpfolder.go b/pkg/build/tmpfolder.go index a43a35f..b4b5a6a 100644 --- a/pkg/build/tmpfolder.go +++ b/pkg/build/tmpfolder.go @@ -45,6 +45,11 @@ func (b *Build) MvProjectsToTmp() { } else { b.NewGOPATH = fmt.Sprintf("%v:%v", b.TmpDir, b.OriGOPATH) } + // fix #14: unable to build project not in GOPATH in legacy mode + // this kind of project does not have a pkg.Root value + if b.Root == "" { + b.NewGOPATH = b.OriGOPATH + } log.Printf("New GOPATH: %v", b.NewGOPATH) return } diff --git a/pkg/build/tmpfolder_test.go b/pkg/build/tmpfolder_test.go index 55c3910..1feb9bb 100644 --- a/pkg/build/tmpfolder_test.go +++ b/pkg/build/tmpfolder_test.go @@ -79,3 +79,18 @@ func TestNewDirParseInModProject(t *testing.T) { t.Fatalf("The New GOPATH is wrong. newgopath: %v, tmpdir: %v", b.NewGOPATH, b.TmpDir) } } + +// Test #14 +func TestLegacyProjectNotInGoPATH(t *testing.T) { + workingDir := "../../tests/samples/simple_gopath_project/src/qiniu.com/simple_gopath_project" + gopath := "" + + os.Chdir(workingDir) + fmt.Println(gopath) + os.Setenv("GOPATH", gopath) + os.Setenv("GO111MODULE", "off") + b := NewBuild("", ".", "") + if b.OriGOPATH != b.NewGOPATH { + t.Fatalf("New GOPATH should be same with old GOPATH, for this kind of project. New: %v, old: %v", b.NewGOPATH, b.OriGOPATH) + } +}