Skip to content
Permalink
Browse files Browse the repository at this point in the history
[release-branch.go1] debug/gosym: in test, use temp binary name in /t…
…mp, and clean up.

««« backport 5e1544310d03
debug/gosym: in test, use temp binary name in /tmp, and clean up.

This fixes all.bash on shared machines.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5992078

»»»
  • Loading branch information
bradfitz committed Jun 13, 2012
1 parent 763858f commit 8ac275b
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions src/pkg/debug/gosym/pclntab_test.go
Expand Up @@ -7,14 +7,19 @@ package gosym
import (
"debug/elf"
"fmt"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
"testing"
)

var pclinetestBinary string
var (
pclineTempDir string
pclinetestBinary string
)

func dotest() bool {
// For now, only works on ELF platforms.
Expand All @@ -24,10 +29,18 @@ func dotest() bool {
if pclinetestBinary != "" {
return true
}
var err error
pclineTempDir, err = ioutil.TempDir("", "pclinetest")
if err != nil {
panic(err)
}
if strings.Contains(pclineTempDir, " ") {
panic("unexpected space in tempdir")
}
// This command builds pclinetest from pclinetest.asm;
// the resulting binary looks like it was built from pclinetest.s,
// but we have renamed it to keep it away from the go tool.
pclinetestBinary = os.TempDir() + "/pclinetest"
pclinetestBinary = filepath.Join(pclineTempDir, "pclinetest")
command := fmt.Sprintf("go tool 6a -o %s.6 pclinetest.asm && go tool 6l -E main -o %s %s.6",
pclinetestBinary, pclinetestBinary, pclinetestBinary)
cmd := exec.Command("sh", "-c", command)
Expand Down Expand Up @@ -170,6 +183,7 @@ func TestPCLine(t *testing.T) {
if !dotest() {
return
}
defer os.RemoveAll(pclineTempDir)

f, tab := crack(pclinetestBinary, t)
text := f.Section(".text")
Expand Down

0 comments on commit 8ac275b

Please sign in to comment.