mirror of
https://github.com/golang/go
synced 2024-10-05 18:31:28 -06:00
2a141dedc4
In preparation for making the current linker cmd/link. If cmd/newlink is ever completed, it can be moved back. See golang-dev thread titled "go tool compile, etc" for background. Change-Id: I4029580f470038240c5181a37ea4202ba971f9ef Reviewed-on: https://go-review.googlesource.com/10286 Reviewed-by: Rob Pike <r@golang.org>
36 lines
829 B
Go
36 lines
829 B
Go
// 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"
|
|
"cmd/internal/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")
|
|
}
|