delve/dwarf/frame/entries_test.go

49 lines
909 B
Go
Raw Normal View History

package frame
import (
2014-09-19 04:00:41 +00:00
"io/ioutil"
"os"
"testing"
)
func TestFDEForPC(t *testing.T) {
fde1 := &FrameDescriptionEntry{begin: 0, end: 49}
2014-10-11 06:05:27 +00:00
fde2 := &FrameDescriptionEntry{begin: 50, end: 99}
fde3 := &FrameDescriptionEntry{begin: 100, end: 200}
2014-10-11 06:05:27 +00:00
fde4 := &FrameDescriptionEntry{begin: 201, end: 245}
frames := NewFrameIndex()
frames = append(frames, fde1)
frames = append(frames, fde2)
frames = append(frames, fde3)
frames = append(frames, fde4)
node, err := frames.FDEForPC(35)
if err != nil {
2015-01-14 02:37:10 +00:00
t.Fatal(err)
}
if node != fde1 {
t.Fatal("Got incorrect fde")
}
}
func BenchmarkFDEForPC(b *testing.B) {
2014-09-19 04:00:41 +00:00
f, err := os.Open("testdata/frame")
if err != nil {
b.Fatal(err)
}
defer f.Close()
2014-09-19 04:00:41 +00:00
data, err := ioutil.ReadAll(f)
if err != nil {
b.Fatal(err)
}
fdes := Parse(data)
for i := 0; i < b.N; i++ {
2014-09-19 04:00:41 +00:00
// bench worst case, exhaustive search
_, _ = fdes.FDEForPC(0x455555555)
}
}