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  }