Commit 72f333a1 authored by Bryan C. Mills's avatar Bryan C. Mills

Revert "test: avoid writing temporary files to GOROOT"

This reverts CL 207352

Reason for revert: broke more builders than it fixed. 😞

Change-Id: Ic5adefe92edfa2230b9c7d750c922473a6a5ded4
Reviewed-on: https://go-review.googlesource.com/c/go/+/207477Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent dab1a10a
...@@ -1358,21 +1358,17 @@ var runtest struct { ...@@ -1358,21 +1358,17 @@ var runtest struct {
func (t *tester) testDirTest(dt *distTest, shard, shards int) error { func (t *tester) testDirTest(dt *distTest, shard, shards int) error {
runtest.Do(func() { runtest.Do(func() {
f, err := ioutil.TempFile("", "runtest-*.exe") // named exe for Windows, but harmless elsewhere const exe = "runtest.exe" // named exe for Windows, but harmless elsewhere
if err != nil { cmd := t.dirCmd("test", "go", "build", "-o", exe, "run.go")
cmd.Env = append(os.Environ(), "GOOS="+gohostos, "GOARCH="+gohostarch)
runtest.exe = filepath.Join(cmd.Dir, exe)
if err := cmd.Run(); err != nil {
runtest.err = err runtest.err = err
return return
} }
f.Close()
runtest.exe = f.Name()
xatexit(func() { xatexit(func() {
os.Remove(runtest.exe) os.Remove(runtest.exe)
}) })
cmd := t.dirCmd("test", "go", "build", "-o", runtest.exe, "run.go")
cmd.Env = append(os.Environ(), "GOOS="+gohostos, "GOARCH="+gohostarch)
runtest.err = cmd.Run()
}) })
if runtest.err != nil { if runtest.err != nil {
return runtest.err return runtest.err
......
...@@ -9,34 +9,22 @@ package main ...@@ -9,34 +9,22 @@ package main
import ( import (
"fmt" "fmt"
"io/ioutil"
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
) )
var tmpDir string
func main() { func main() {
fb, err := filepath.Abs("fixedbugs") run("go", "tool", "compile", filepath.Join("fixedbugs", "bug302.dir", "p.go"))
if err == nil {
tmpDir, err = ioutil.TempDir("", "bug302")
}
if err != nil {
fmt.Println(err)
os.Exit(1)
}
defer os.RemoveAll(tmpDir)
run("go", "tool", "compile", filepath.Join(fb, "bug302.dir", "p.go"))
run("go", "tool", "pack", "grc", "pp.a", "p.o") run("go", "tool", "pack", "grc", "pp.a", "p.o")
run("go", "tool", "compile", "-I", ".", filepath.Join(fb, "bug302.dir", "main.go")) run("go", "tool", "compile", "-I", ".", filepath.Join("fixedbugs", "bug302.dir", "main.go"))
os.Remove("p.o")
os.Remove("pp.a")
os.Remove("main.o")
} }
func run(cmd string, args ...string) { func run(cmd string, args ...string) {
c := exec.Command(cmd, args...) out, err := exec.Command(cmd, args...).CombinedOutput()
c.Dir = tmpDir
out, err := c.CombinedOutput()
if err != nil { if err != nil {
fmt.Println(string(out)) fmt.Println(string(out))
fmt.Println(err) fmt.Println(err)
......
...@@ -11,7 +11,6 @@ package main ...@@ -11,7 +11,6 @@ package main
import ( import (
"fmt" "fmt"
"io/ioutil"
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
...@@ -21,19 +20,16 @@ func main() { ...@@ -21,19 +20,16 @@ func main() {
err := os.Chdir(filepath.Join(".", "fixedbugs", "bug369.dir")) err := os.Chdir(filepath.Join(".", "fixedbugs", "bug369.dir"))
check(err) check(err)
tmpDir, err := ioutil.TempDir("", "bug369") run("go", "tool", "compile", "-N", "-o", "slow.o", "pkg.go")
check(err) run("go", "tool", "compile", "-o", "fast.o", "pkg.go")
defer os.RemoveAll(tmpDir) run("go", "tool", "compile", "-o", "main.o", "main.go")
run("go", "tool", "link", "-o", "a.exe", "main.o")
tmp := func(name string) string { run("." + string(filepath.Separator) + "a.exe")
return filepath.Join(tmpDir, name)
}
run("go", "tool", "compile", "-N", "-o", tmp("slow.o"), "pkg.go") os.Remove("slow.o")
run("go", "tool", "compile", "-o", tmp("fast.o"), "pkg.go") os.Remove("fast.o")
run("go", "tool", "compile", "-D", tmpDir, "-o", tmp("main.o"), "main.go") os.Remove("main.o")
run("go", "tool", "link", "-o", tmp("a.exe"), tmp("main.o")) os.Remove("a.exe")
run(tmp("a.exe"))
} }
func run(name string, args ...string) { func run(name string, args ...string) {
......
...@@ -23,7 +23,8 @@ func main() { ...@@ -23,7 +23,8 @@ func main() {
err := os.Chdir(filepath.Join("fixedbugs", "issue9355.dir")) err := os.Chdir(filepath.Join("fixedbugs", "issue9355.dir"))
check(err) check(err)
out := run("go", "tool", "compile", "-o", os.DevNull, "-S", "a.go") out := run("go", "tool", "compile", "-S", "a.go")
os.Remove("a.o")
// 6g/8g print the offset as dec, but 5g/9g print the offset as hex. // 6g/8g print the offset as dec, but 5g/9g print the offset as hex.
patterns := []string{ patterns := []string{
......
...@@ -11,21 +11,21 @@ package main ...@@ -11,21 +11,21 @@ package main
import ( import (
"fmt" "fmt"
"io/ioutil"
"os" "os"
"os/exec" "os/exec"
"path/filepath"
"strings" "strings"
) )
var tmpDir string
func cleanup() { func cleanup() {
os.RemoveAll(tmpDir) os.Remove("linkmain.o")
os.Remove("linkmain.a")
os.Remove("linkmain1.o")
os.Remove("linkmain1.a")
os.Remove("linkmain.exe")
} }
func run(cmdline ...string) { func run(cmdline string) {
args := strings.Fields(strings.Join(cmdline, " ")) args := strings.Fields(cmdline)
cmd := exec.Command(args[0], args[1:]...) cmd := exec.Command(args[0], args[1:]...)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
...@@ -37,8 +37,8 @@ func run(cmdline ...string) { ...@@ -37,8 +37,8 @@ func run(cmdline ...string) {
} }
} }
func runFail(cmdline ...string) { func runFail(cmdline string) {
args := strings.Fields(strings.Join(cmdline, " ")) args := strings.Fields(cmdline)
cmd := exec.Command(args[0], args[1:]...) cmd := exec.Command(args[0], args[1:]...)
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err == nil { if err == nil {
...@@ -51,26 +51,16 @@ func runFail(cmdline ...string) { ...@@ -51,26 +51,16 @@ func runFail(cmdline ...string) {
} }
func main() { func main() {
var err error
tmpDir, err = ioutil.TempDir("", "")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
tmp := func(name string) string {
return filepath.Join(tmpDir, name)
}
// helloworld.go is package main // helloworld.go is package main
run("go tool compile -o", tmp("linkmain.o"), "helloworld.go") run("go tool compile -o linkmain.o helloworld.go")
run("go tool compile -pack -o", tmp("linkmain.a"), "helloworld.go") run("go tool compile -pack -o linkmain.a helloworld.go")
run("go tool link -o", tmp("linkmain.exe"), tmp("linkmain.o")) run("go tool link -o linkmain.exe linkmain.o")
run("go tool link -o", tmp("linkmain.exe"), tmp("linkmain.a")) run("go tool link -o linkmain.exe linkmain.a")
// linkmain.go is not // linkmain.go is not
run("go tool compile -o", tmp("linkmain1.o"), "linkmain.go") run("go tool compile -o linkmain1.o linkmain.go")
run("go tool compile -pack -o", tmp("linkmain1.a"), "linkmain.go") run("go tool compile -pack -o linkmain1.a linkmain.go")
runFail("go tool link -o", tmp("linkmain.exe"), tmp("linkmain1.o")) runFail("go tool link -o linkmain.exe linkmain1.o")
runFail("go tool link -o", tmp("linkmain.exe"), tmp("linkmain1.a")) runFail("go tool link -o linkmain.exe linkmain1.a")
cleanup() cleanup()
} }
...@@ -17,18 +17,15 @@ import ( ...@@ -17,18 +17,15 @@ import (
) )
func main() { func main() {
cmd := exec.Command("go", "tool", "compile", "-o", os.DevNull, "-S", "sinit.go") cmd := exec.Command("go", "tool", "compile", "-S", "sinit.go")
out, err := cmd.CombinedOutput() out, err := cmd.CombinedOutput()
if err != nil { if err != nil {
fmt.Println(string(out)) fmt.Println(string(out))
fmt.Println(err) fmt.Println(err)
os.Exit(1) os.Exit(1)
} }
os.Remove("sinit.o")
if len(bytes.TrimSpace(out)) == 0 {
fmt.Println("'go tool compile -S sinit.go' printed no output")
os.Exit(1)
}
if bytes.Contains(out, []byte("initdone")) { if bytes.Contains(out, []byte("initdone")) {
fmt.Println("sinit generated an init function") fmt.Println("sinit generated an init function")
os.Exit(1) os.Exit(1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment