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))