0
1
mirror of https://github.com/golang/go synced 2025-05-12 04:22:50 +00:00

test: avoid writing temporary files to GOROOT

This reverts CL 207477, restoring CL 207352 with a fix for the
regression observed in the Windows builders.

cmd/compile evidently does not fully support NUL as an output on
Windows, so this time we write ignored 'compile' outputs
to temporary files (instead of os.DevNull as in CL 207352).

Updates 
Fixes 

Change-Id: I2edc5727c3738fa1bccb4b74e50d114cf2a7fcff
Reviewed-on: https://go-review.googlesource.com/c/go/+/207602
Run-TryBot: Bryan C. Mills <bcmills@google.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Bryan C. Mills
2019-11-18 13:58:58 +00:00
parent 2bde3c13f6
commit afac2c0508
6 changed files with 91 additions and 41 deletions

@ -11,6 +11,7 @@ package main
import (
"fmt"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
@ -20,16 +21,19 @@ func main() {
err := os.Chdir(filepath.Join(".", "fixedbugs", "bug369.dir"))
check(err)
run("go", "tool", "compile", "-N", "-o", "slow.o", "pkg.go")
run("go", "tool", "compile", "-o", "fast.o", "pkg.go")
run("go", "tool", "compile", "-o", "main.o", "main.go")
run("go", "tool", "link", "-o", "a.exe", "main.o")
run("." + string(filepath.Separator) + "a.exe")
tmpDir, err := ioutil.TempDir("", "bug369")
check(err)
defer os.RemoveAll(tmpDir)
os.Remove("slow.o")
os.Remove("fast.o")
os.Remove("main.o")
os.Remove("a.exe")
tmp := func(name string) string {
return filepath.Join(tmpDir, name)
}
run("go", "tool", "compile", "-N", "-o", tmp("slow.o"), "pkg.go")
run("go", "tool", "compile", "-o", tmp("fast.o"), "pkg.go")
run("go", "tool", "compile", "-D", tmpDir, "-o", tmp("main.o"), "main.go")
run("go", "tool", "link", "-o", tmp("a.exe"), tmp("main.o"))
run(tmp("a.exe"))
}
func run(name string, args ...string) {