github.com/ice-blockchain/go/src@v0.0.0-20240403114104-1564d284e521/debug/dwarf/dwarf5ranges_test.go (about) 1 // Copyright 2020 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 dwarf 6 7 import ( 8 "encoding/binary" 9 "os" 10 "reflect" 11 "testing" 12 ) 13 14 func TestDwarf5Ranges(t *testing.T) { 15 rngLists, err := os.ReadFile("testdata/debug_rnglists") 16 if err != nil { 17 t.Fatalf("could not read test data: %v", err) 18 } 19 20 d := &Data{} 21 d.order = binary.LittleEndian 22 if err := d.AddSection(".debug_rnglists", rngLists); err != nil { 23 t.Fatal(err) 24 } 25 u := &unit{ 26 asize: 8, 27 vers: 5, 28 is64: true, 29 } 30 ret, err := d.dwarf5Ranges(u, nil, 0x5fbd, 0xc, [][2]uint64{}) 31 if err != nil { 32 t.Fatalf("could not read rnglist: %v", err) 33 } 34 t.Logf("%#v", ret) 35 36 tgt := [][2]uint64{{0x0000000000006712, 0x000000000000679f}, {0x00000000000067af}, {0x00000000000067b3}} 37 38 if reflect.DeepEqual(ret, tgt) { 39 t.Errorf("expected %#v got %#x", tgt, ret) 40 } 41 }