| // Copyright 2014 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package main | |
| import ( | |
| "bytes" | |
| "debug/goobj" | |
| "io/ioutil" | |
| "testing" | |
| ) | |
| func TestLinkHello(t *testing.T) { | |
| p := &Prog{ | |
| GOOS: "darwin", | |
| GOARCH: "amd64", | |
| Error: func(s string) { t.Error(s) }, | |
| StartSym: "_rt0_go", | |
| } | |
| var buf bytes.Buffer | |
| p.link(&buf, "testdata/hello.6") | |
| if p.NumError > 0 { | |
| return | |
| } | |
| if p.Syms[goobj.SymID{"_rt0_go", 0}] == nil || p.Syms[goobj.SymID{"hello", 1}] == nil { | |
| t.Errorf("Syms = %v, want at least [_rt0_go hello<1>]", p.Syms) | |
| } | |
| // uncomment to leave file behind for execution: | |
| if false { | |
| ioutil.WriteFile("a.out", buf.Bytes(), 0777) | |
| } | |
| checkGolden(t, buf.Bytes(), "testdata/link.hello.darwin.amd64") | |
| } |