diff options
| author | Shenghou Ma <minux@golang.org> | 2015-05-04 01:23:56 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2016-10-13 00:11:37 +0000 |
| commit | 0a55a16c91c5bed397a0716cb9d67f8b0a71de9b (patch) | |
| tree | 824bd316cf134d55f8e3577e96867c8029e4fc17 /src/cmd/objdump | |
| parent | 94cf54e8619e03671b33113d39306646235feb60 (diff) | |
| download | go-0a55a16c91c5bed397a0716cb9d67f8b0a71de9b.tar.xz | |
cmd/objdump: enable tests on ppc64/ppc64le
Fixes #9039.
Change-Id: I7d213b4f8e4cda73ea7687fb97dbd22e58163949
Reviewed-on: https://go-review.googlesource.com/9683
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/cmd/objdump')
| -rw-r--r-- | src/cmd/objdump/objdump_test.go | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/cmd/objdump/objdump_test.go b/src/cmd/objdump/objdump_test.go index bb6ff35eea..ffd5b3079e 100644 --- a/src/cmd/objdump/objdump_test.go +++ b/src/cmd/objdump/objdump_test.go @@ -5,6 +5,7 @@ package main import ( + "flag" "go/build" "internal/testenv" "io/ioutil" @@ -49,6 +50,16 @@ var armNeed = []string{ "RET", } +var ppcNeed = []string{ + "fmthello.go:6", + "TEXT main.main(SB)", + "BR main.main(SB)", + "BL fmt.Println(SB)", + "RET", +} + +var target = flag.String("target", "", "test disassembly of `goos/goarch` binary") + // objdump is fully cross platform: it can handle binaries // from any known operating system and architecture. // We could in principle add binaries to testdata and check @@ -62,6 +73,19 @@ func testDisasm(t *testing.T, flags ...string) { tmp, exe := buildObjdump(t) defer os.RemoveAll(tmp) + goarch := runtime.GOARCH + if *target != "" { + f := strings.Split(*target, "/") + if len(f) != 2 { + t.Fatalf("-target argument must be goos/goarch") + } + defer os.Setenv("GOOS", os.Getenv("GOOS")) + defer os.Setenv("GOARCH", os.Getenv("GOARCH")) + os.Setenv("GOOS", f[0]) + os.Setenv("GOARCH", f[1]) + goarch = f[1] + } + hello := filepath.Join(tmp, "hello.exe") args := []string{"build", "-o", hello} args = append(args, flags...) @@ -74,11 +98,13 @@ func testDisasm(t *testing.T, flags ...string) { "fmthello.go:6", "TEXT main.main(SB)", } - switch runtime.GOARCH { + switch goarch { case "amd64", "386": need = append(need, x86Need...) case "arm": need = append(need, armNeed...) + case "ppc64", "ppc64le": + need = append(need, ppcNeed...) } out, err = exec.Command(exe, "-s", "main.main", hello).CombinedOutput() @@ -101,8 +127,6 @@ func testDisasm(t *testing.T, flags ...string) { func TestDisasm(t *testing.T) { switch runtime.GOARCH { - case "ppc64", "ppc64le": - t.Skipf("skipping on %s, issue 9039", runtime.GOARCH) case "arm64": t.Skipf("skipping on %s, issue 10106", runtime.GOARCH) case "mips64", "mips64le": |
