mirror of
https://github.com/autc04/Retro68.git
synced 2024-11-03 07:07:20 +00:00
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
|
// Copyright 2009 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 dwarf_test
|
||
|
|
||
|
import (
|
||
|
. "debug/dwarf"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestSplit(t *testing.T) {
|
||
|
// debug/dwarf doesn't (currently) support split DWARF, but
|
||
|
// the attributes that pointed to the split DWARF used to
|
||
|
// cause loading the DWARF data to fail entirely (issue
|
||
|
// #12592). Test that we can at least read the DWARF data.
|
||
|
d := elfData(t, "testdata/split.elf")
|
||
|
r := d.Reader()
|
||
|
e, err := r.Next()
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
if e.Tag != TagCompileUnit {
|
||
|
t.Fatalf("bad tag: have %s, want %s", e.Tag, TagCompileUnit)
|
||
|
}
|
||
|
// Check that we were able to parse the unknown section offset
|
||
|
// field, even if we can't figure out its DWARF class.
|
||
|
const AttrGNUAddrBase Attr = 0x2133
|
||
|
f := e.AttrField(AttrGNUAddrBase)
|
||
|
if _, ok := f.Val.(int64); !ok {
|
||
|
t.Fatalf("bad attribute value type: have %T, want int64", f.Val)
|
||
|
}
|
||
|
if f.Class != ClassUnknown {
|
||
|
t.Fatalf("bad class: have %s, want %s", f.Class, ClassUnknown)
|
||
|
}
|
||
|
}
|