forked from cerc-io/plugeth
rlp: add NewListStream (for p2p)
This commit is contained in:
parent
5a5560f105
commit
205af02a1f
@ -442,6 +442,15 @@ func NewStream(r io.Reader) *Stream {
|
|||||||
s.Reset(r)
|
s.Reset(r)
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewListStream creates a new stream that pretends to be positioned
|
||||||
|
// at an encoded list of the given length.
|
||||||
|
func NewListStream(r io.Reader, len uint64) *Stream {
|
||||||
|
s := new(Stream)
|
||||||
|
s.Reset(r)
|
||||||
|
s.kind = List
|
||||||
|
s.size = len
|
||||||
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bytes reads an RLP string and returns its contents as a byte slice.
|
// Bytes reads an RLP string and returns its contents as a byte slice.
|
||||||
|
@ -54,6 +54,24 @@ func TestStreamKind(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewListStream(t *testing.T) {
|
||||||
|
ls := NewListStream(bytes.NewReader(unhex("0101010101")), 3)
|
||||||
|
if k, size, err := ls.Kind(); k != List || size != 3 || err != nil {
|
||||||
|
t.Errorf("Kind() returned (%v, %d, %v), expected (List, 3, nil)", k, size, err)
|
||||||
|
}
|
||||||
|
if size, err := ls.List(); size != 3 || err != nil {
|
||||||
|
t.Errorf("List() returned (%d, %v), expected (3, nil)", size, err)
|
||||||
|
}
|
||||||
|
for i := 0; i < 3; i++ {
|
||||||
|
if val, err := ls.Uint(); val != 1 || err != nil {
|
||||||
|
t.Errorf("Uint() returned (%d, %v), expected (1, nil)", val, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if err := ls.ListEnd(); err != nil {
|
||||||
|
t.Errorf("ListEnd() returned %v, expected (3, nil)", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestStreamErrors(t *testing.T) {
|
func TestStreamErrors(t *testing.T) {
|
||||||
type calls []string
|
type calls []string
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user