aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Brainman <alex.brainman@gmail.com>2015-06-11 12:20:42 +1000
committerAlex Brainman <alex.brainman@gmail.com>2015-06-12 02:15:43 +0000
commit117506aab6ea27885491bc7ca50f0a462bf1bfbb (patch)
treece9d7861c038ec98cc39b8c968d6e27a1ed3d97c
parent637d59859d3f13a55eaab7d683b5061fcbfd616c (diff)
downloadgo-117506aab6ea27885491bc7ca50f0a462bf1bfbb.tar.xz
cmd/go: clean up after 'go build' even on windows
This CL makes CL 10682 work on windows. Fixes #9645 (again) Change-Id: Ie9b9af8b041c483a236b46adad4a50aa6e598c92 Reviewed-on: https://go-review.googlesource.com/10930 Reviewed-by: Ian Lance Taylor <iant@golang.org>
-rw-r--r--src/cmd/go/build.go6
-rw-r--r--src/cmd/go/go_test.go8
2 files changed, 6 insertions, 8 deletions
diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go
index e0bf59f6d0..9f6054070e 100644
--- a/src/cmd/go/build.go
+++ b/src/cmd/go/build.go
@@ -559,8 +559,10 @@ func runInstall(cmd *Command, args []string) {
fi, err := os.Stat(targ)
if err == nil {
m := fi.Mode()
- if m.IsRegular() && m&0111 != 0 {
- os.Remove(targ)
+ if m.IsRegular() {
+ if m&0111 != 0 || goos == "windows" { // windows never sets executable bit
+ os.Remove(targ)
+ }
}
}
}
diff --git a/src/cmd/go/go_test.go b/src/cmd/go/go_test.go
index 104805ec20..cdbdfd79ea 100644
--- a/src/cmd/go/go_test.go
+++ b/src/cmd/go/go_test.go
@@ -589,10 +589,6 @@ func TestGoBuilDashAInReleaseBranch(t *testing.T) {
}
func TestGoInstallCleansUpAfterGoBuild(t *testing.T) {
- if runtime.GOOS == "windows" {
- t.Skip("skipping on Windows because of http://golang.org/issue/9645")
- }
-
tg := testgo(t)
defer tg.cleanup()
tg.tempFile("src/mycmd/main.go", `package main; func main(){}`)
@@ -621,10 +617,10 @@ func TestGoInstallCleansUpAfterGoBuild(t *testing.T) {
tg.wantExecutable("mycmd"+exeSuffix, "testgo build did not write command binary (third time)")
// And especially not outside the directory.
tg.cd(tg.path("."))
- if data, err := ioutil.ReadFile("src/mycmd/mycmd"); err != nil {
+ if data, err := ioutil.ReadFile("src/mycmd/mycmd" + exeSuffix); err != nil {
t.Fatal("could not read file:", err)
} else {
- if err := ioutil.WriteFile("mycmd", data, 0555); err != nil {
+ if err := ioutil.WriteFile("mycmd"+exeSuffix, data, 0555); err != nil {
t.Fatal("could not write file:", err)
}
}