jiri: make gosh.BuildGoPkg a package-level helper
Also updates v23test's BuildGoPkg to be package-level.
MultiPart: 1/6
Change-Id: I7f4c498a0294571fa3909b7435732c0f00761efb
diff --git a/cmd/jiri/import_test.go b/cmd/jiri/import_test.go
index 6dd60c6..2410fd4 100644
--- a/cmd/jiri/import_test.go
+++ b/cmd/jiri/import_test.go
@@ -138,7 +138,7 @@
opts := gosh.Opts{Fatalf: t.Fatalf, Logf: t.Logf}
sh := gosh.NewShell(opts)
defer sh.Cleanup()
- jiriTool := sh.BuildGoPkg("v.io/jiri/cmd/jiri")
+ jiriTool := gosh.BuildGoPkg(sh, sh.MakeTempDir(), "v.io/jiri/cmd/jiri")
for _, test := range tests {
if err := testImport(opts, jiriTool, test); err != nil {
t.Errorf("%v: %v", test.Args, err)
diff --git a/cmd/jiri/upgrade_test.go b/cmd/jiri/upgrade_test.go
index d8913ed..7aae9c5 100644
--- a/cmd/jiri/upgrade_test.go
+++ b/cmd/jiri/upgrade_test.go
@@ -201,7 +201,7 @@
opts := gosh.Opts{Fatalf: t.Fatalf, Logf: t.Logf}
sh := gosh.NewShell(opts)
defer sh.Cleanup()
- jiriTool := sh.BuildGoPkg("v.io/jiri/cmd/jiri")
+ jiriTool := gosh.BuildGoPkg(sh, sh.MakeTempDir(), "v.io/jiri/cmd/jiri")
for _, test := range tests {
if err := testUpgrade(opts, jiriTool, test); err != nil {
t.Errorf("%v: %v", test.Args, err)
@@ -264,7 +264,7 @@
defer sh.Cleanup()
jiriRoot := sh.MakeTempDir()
sh.Pushd(jiriRoot)
- jiriTool := sh.BuildGoPkg("v.io/jiri/cmd/jiri")
+ jiriTool := gosh.BuildGoPkg(sh, sh.MakeTempDir(), "v.io/jiri/cmd/jiri")
localData := `<manifest/>`
jiriData := `<manifest>
<imports>
diff --git a/cmd/jiri/which_test.go b/cmd/jiri/which_test.go
index a60655a..1e2fe4b 100644
--- a/cmd/jiri/which_test.go
+++ b/cmd/jiri/which_test.go
@@ -16,7 +16,7 @@
sh := gosh.NewShell(gosh.Opts{Fatalf: t.Fatalf, Logf: t.Logf, PropagateChildOutput: true})
defer sh.Cleanup()
- jiriBinary := sh.BuildGoPkg("v.io/jiri/cmd/jiri")
+ jiriBinary := gosh.BuildGoPkg(sh, sh.MakeTempDir(), "v.io/jiri/cmd/jiri")
stdout, stderr := sh.Cmd(jiriBinary, []string{"which"}...).StdoutStderr()
if got, want := stdout, fmt.Sprintf("# binary\n%s\n", jiriBinary); got != want {
t.Errorf("stdout got %q, want %q", got, want)
diff --git a/profiles/profilescmdline/manager_test.go b/profiles/profilescmdline/manager_test.go
index b00eccc..54a2743 100644
--- a/profiles/profilescmdline/manager_test.go
+++ b/profiles/profilescmdline/manager_test.go
@@ -59,7 +59,7 @@
var (
buildInstallersOnce, buildJiriOnce sync.Once
- buildInstallersBindir, buildJiriBindir = "", ""
+ buildInstallersBinDir, buildJiriBinDir = "", ""
)
func newShell(t *testing.T) *gosh.Shell {
@@ -72,25 +72,37 @@
return gosh.NewShell(gosh.Opts{Fatalf: fatalf, Logf: t.Logf})
}
+// TODO(sadovsky): This code leaves a lot of temp dirs behind. It would be nice
+// to restructure things so that all temporary artifacts get cleaned up.
func buildInstallers(t *testing.T) string {
buildInstallersOnce.Do(func() {
+ binDir, err := ioutil.TempDir("", "")
+ if err != nil {
+ t.Fatal(err)
+ }
sh := newShell(t)
+ defer sh.Cleanup()
prefix := "v.io/jiri/profiles/profilescmdline/internal/"
- sh.BuildGoPkg("v.io/jiri/cmd/jiri", "-o", "jiri")
- sh.BuildGoPkg(prefix+"i1", "-o", "jiri-profile-i1")
- sh.BuildGoPkg(prefix+"i2", "-o", "jiri-profile-i2")
- buildInstallersBindir = sh.Opts.BinDir
+ gosh.BuildGoPkg(sh, binDir, "v.io/jiri/cmd/jiri", "-o", "jiri")
+ gosh.BuildGoPkg(sh, binDir, prefix+"i1", "-o", "jiri-profile-i1")
+ gosh.BuildGoPkg(sh, binDir, prefix+"i2", "-o", "jiri-profile-i2")
+ buildInstallersBinDir = binDir
})
- return buildInstallersBindir
+ return buildInstallersBinDir
}
func buildJiri(t *testing.T) string {
buildJiriOnce.Do(func() {
+ binDir, err := ioutil.TempDir("", "")
+ if err != nil {
+ t.Fatal(err)
+ }
sh := newShell(t)
- sh.BuildGoPkg("v.io/jiri/cmd/jiri", "-o", "jiri")
- buildJiriBindir = sh.Opts.BinDir
+ defer sh.Cleanup()
+ gosh.BuildGoPkg(sh, binDir, "v.io/jiri/cmd/jiri", "-o", "jiri")
+ buildJiriBinDir = binDir
})
- return buildJiriBindir
+ return buildJiriBinDir
}
func run(sh *gosh.Shell, dir, bin string, args ...string) string {