Skip to content
Snippets Groups Projects
link_test.go 829 B
Newer Older
  • Learn to ignore specific revisions
  • // 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"
    
    	"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")