veyron/services/mgmt/build: making sure the implementation of the
build server does not try to install the standard Go packages
Change-Id: I0df36f4e5aff744b304d26dab9afbd7ce2a282d2
diff --git a/services/mgmt/build/impl/impl_test.go b/services/mgmt/build/impl/impl_test.go
index 27a7c49..5c659fa 100644
--- a/services/mgmt/build/impl/impl_test.go
+++ b/services/mgmt/build/impl/impl_test.go
@@ -178,6 +178,15 @@
}
}
+const failSrc = `package main
+
+import "fmt"
+
+func main() {
+ ...
+}
+`
+
// TestFailure checks that the build server fails to build a package
// consisting of an empty file.
func TestFailure(t *testing.T) {
@@ -187,10 +196,11 @@
files := []build.File{
build.File{
Name: "test/main.go",
- Contents: []byte(""),
+ Contents: []byte(failSrc),
},
}
- if _, _, err := invokeBuild(t, client, files); err == nil {
+ if output, _, err := invokeBuild(t, client, files); err == nil {
+ t.Logf("%v", string(output))
t.FailNow()
}
}
diff --git a/services/mgmt/build/impl/service.go b/services/mgmt/build/impl/service.go
index 6d723b8..83a93ef 100644
--- a/services/mgmt/build/impl/service.go
+++ b/services/mgmt/build/impl/service.go
@@ -50,6 +50,9 @@
return nil, errInternalError
}
defer os.RemoveAll(root)
+ if err := os.Chdir(root); err != nil {
+ vlog.Errorf("Chdir(%v) failed: %v", root, err)
+ }
srcDir := filepath.Join(root, "go", "src")
if err := os.MkdirAll(srcDir, dirPerm); err != nil {
vlog.Errorf("MkdirAll(%v, %v) failed: %v", srcDir, dirPerm, err)
@@ -73,7 +76,7 @@
vlog.Errorf("Advance() failed: %v", err)
return nil, errInternalError
}
- cmd := exec.Command(i.gobin, "install", "-v", "...")
+ cmd := exec.Command(i.gobin, "install", "-v", "./...")
cmd.Env = append(cmd.Env, "GOARCH="+string(arch))
cmd.Env = append(cmd.Env, "GOOS="+string(opsys))
cmd.Env = append(cmd.Env, "GOPATH="+filepath.Dir(srcDir))