github.com/bigzoro/my_simplechain@v0.0.0-20240315012955-8ad0a2a29bb9/p2p/rlpx/buffer_test.go (about)

     1  package rlpx
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/bigzoro/my_simplechain/common/hexutil"
     8  	"github.com/stretchr/testify/assert"
     9  )
    10  
    11  func TestReadBufferReset(t *testing.T) {
    12  	reader := bytes.NewReader(hexutil.MustDecode("0x010202030303040505"))
    13  	var b readBuffer
    14  
    15  	s1, _ := b.read(reader, 1)
    16  	s2, _ := b.read(reader, 2)
    17  	s3, _ := b.read(reader, 3)
    18  
    19  	assert.Equal(t, []byte{1}, s1)
    20  	assert.Equal(t, []byte{2, 2}, s2)
    21  	assert.Equal(t, []byte{3, 3, 3}, s3)
    22  
    23  	b.reset()
    24  
    25  	s4, _ := b.read(reader, 1)
    26  	s5, _ := b.read(reader, 2)
    27  
    28  	assert.Equal(t, []byte{4}, s4)
    29  	assert.Equal(t, []byte{5, 5}, s5)
    30  
    31  	s6, err := b.read(reader, 2)
    32  
    33  	assert.EqualError(t, err, "EOF")
    34  	assert.Nil(t, s6)
    35  }