package ld
import (
+ intdwarf "cmd/internal/dwarf"
objfilepkg "cmd/internal/objfile" // renamed to avoid conflict with objfile function
"debug/dwarf"
"errors"
)
func TestRuntimeTypesPresent(t *testing.T) {
+ t.Parallel()
testenv.MustHaveGoBuild(t)
if runtime.GOOS == "plan9" {
}
func TestEmbeddedStructMarker(t *testing.T) {
+ t.Parallel()
testenv.MustHaveGoBuild(t)
if runtime.GOOS == "plan9" {
func findMembers(rdr *dwarf.Reader) (map[string]bool, error) {
memberEmbedded := map[string]bool{}
// TODO(hyangah): define in debug/dwarf package
- const goEmbeddedStruct = dwarf.Attr(0x2903)
+ const goEmbeddedStruct = dwarf.Attr(intdwarf.DW_AT_go_embedded_field)
for entry, err := rdr.Next(); entry != nil; entry, err = rdr.Next() {
if err != nil {
return nil, err
if runtime.GOOS == "plan9" {
t.Skip("skipping on plan9; no DWARF symbol table in executables")
}
+ t.Parallel()
// DWARF sizes should never be -1.
// See issue #21097
if runtime.GOOS == "plan9" {
t.Skip("skipping on plan9; no DWARF symbol table in executables")
}
+ t.Parallel()
// This test grew out of issue 21094, where specific sudog<T> DWARF types
// had elem fields set to values instead of pointers.
}
func varDeclCoordsAndSubrogramDeclFile(t *testing.T, testpoint string, expectFile int, expectLine int, directive string) {
+ t.Parallel()
prog := fmt.Sprintf("package main\n\nfunc main() {\n%s\nvar i int\ni = i\n}\n", directive)
t.Skip("skipping on solaris and darwin, pending resolution of issue #23168")
}
+ t.Parallel()
+
const prog = `
package main
}
func abstractOriginSanity(t *testing.T, gopathdir string, flags string) {
+ t.Parallel()
dir, err := ioutil.TempDir("", "TestAbstractOriginSanity")
if err != nil {
}
func testRuntimeTypeAttr(t *testing.T, flags string) {
+ t.Parallel()
+
const prog = `
package main
if len(dies) != 1 {
t.Fatalf("wanted 1 DIE named *main.X, found %v", len(dies))
}
- rtAttr := dies[0].Val(0x2904)
+ rtAttr := dies[0].Val(intdwarf.DW_AT_go_runtime_type)
if rtAttr == nil {
t.Fatalf("*main.X DIE had no runtime type attr. DIE: %v", dies[0])
}
t.Skip("skipping on plan9; no DWARF symbol table in executables")
}
+ t.Parallel()
+
dir, err := ioutil.TempDir("", "go-build")
if err != nil {
t.Fatal(err)
t.Skip("skipping on plan9; no DWARF symbol table in executables")
}
+ t.Parallel()
+
dir, err := ioutil.TempDir("", "go-build")
if err != nil {
t.Fatal(err)