github.com/go-asm/go@v1.21.1-0.20240213172139-40c5ead50c48/cmd/link/ld/issue33808_test.go (about) 1 // Copyright 2019 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package ld 6 7 import ( 8 "runtime" 9 "strings" 10 "testing" 11 12 "github.com/go-asm/go/testenv" 13 ) 14 15 const prog = ` 16 package main 17 18 import "log" 19 20 func main() { 21 log.Fatalf("HERE") 22 } 23 ` 24 25 func TestIssue33808(t *testing.T) { 26 if runtime.GOOS != "darwin" { 27 return 28 } 29 testenv.MustHaveGoBuild(t) 30 testenv.MustHaveCGO(t) 31 t.Parallel() 32 33 dir := t.TempDir() 34 35 f := gobuild(t, dir, prog, "-ldflags=-linkmode=external") 36 f.Close() 37 38 syms, err := f.Symbols() 39 if err != nil { 40 t.Fatalf("Error reading symbols: %v", err) 41 } 42 43 name := "log.Fatalf" 44 for _, sym := range syms { 45 if strings.Contains(sym.Name, name) { 46 return 47 } 48 } 49 t.Fatalf("Didn't find %v", name) 50 }