mirror of
https://github.com/ipfs/kubo.git
synced 2025-06-24 22:38:27 +08:00
dagreader: remove Offset()
method
Remove `Offset()` from the `DagReader` interface. It's not part of the Unix API and it wasn't used anywhere except for the tests (a helper function was added to replace it). License: MIT Signed-off-by: Lucas Molas <schomatis@gmail.com>
This commit is contained in:
@ -3,7 +3,6 @@ package io
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"io"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// BufDagReader implements a DagReader that reads from a byte slice
|
// BufDagReader implements a DagReader that reads from a byte slice
|
||||||
@ -30,15 +29,6 @@ func (rd *BufDagReader) CtxReadFull(ctx context.Context, b []byte) (int, error)
|
|||||||
return rd.Read(b)
|
return rd.Read(b)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Offset returns the current offset.
|
|
||||||
func (rd *BufDagReader) Offset() int64 {
|
|
||||||
of, err := rd.Seek(0, io.SeekCurrent)
|
|
||||||
if err != nil {
|
|
||||||
panic("this should never happen " + err.Error())
|
|
||||||
}
|
|
||||||
return of
|
|
||||||
}
|
|
||||||
|
|
||||||
// Size returns the size of the buffer.
|
// Size returns the size of the buffer.
|
||||||
func (rd *BufDagReader) Size() uint64 {
|
func (rd *BufDagReader) Size() uint64 {
|
||||||
s := rd.Reader.Size()
|
s := rd.Reader.Size()
|
||||||
|
@ -27,7 +27,6 @@ type DagReader interface {
|
|||||||
ReadSeekCloser
|
ReadSeekCloser
|
||||||
Size() uint64
|
Size() uint64
|
||||||
CtxReadFull(context.Context, []byte) (int, error)
|
CtxReadFull(context.Context, []byte) (int, error)
|
||||||
Offset() int64
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// A ReadSeekCloser implements interfaces to read, copy, seek and close.
|
// A ReadSeekCloser implements interfaces to read, copy, seek and close.
|
||||||
|
@ -57,7 +57,7 @@ func TestSeekAndRead(t *testing.T) {
|
|||||||
for i := 255; i >= 0; i-- {
|
for i := 255; i >= 0; i-- {
|
||||||
reader.Seek(int64(i), io.SeekStart)
|
reader.Seek(int64(i), io.SeekStart)
|
||||||
|
|
||||||
if reader.Offset() != int64(i) {
|
if getOffset(reader) != int64(i) {
|
||||||
t.Fatal("expected offset to be increased by one after read")
|
t.Fatal("expected offset to be increased by one after read")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ func TestSeekAndRead(t *testing.T) {
|
|||||||
t.Fatalf("read %d at index %d, expected %d", out, i, i)
|
t.Fatalf("read %d at index %d, expected %d", out, i, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
if reader.Offset() != int64(i+1) {
|
if getOffset(reader) != int64(i+1) {
|
||||||
t.Fatal("expected offset to be increased by one after read")
|
t.Fatal("expected offset to be increased by one after read")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -142,12 +142,12 @@ func TestRelativeSeek(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < 256; i++ {
|
for i := 0; i < 256; i++ {
|
||||||
if reader.Offset() != int64(i*4) {
|
if getOffset(reader) != int64(i*4) {
|
||||||
t.Fatalf("offset should be %d, was %d", i*4, reader.Offset())
|
t.Fatalf("offset should be %d, was %d", i*4, getOffset(reader))
|
||||||
}
|
}
|
||||||
out := readByte(t, reader)
|
out := readByte(t, reader)
|
||||||
if int(out) != i {
|
if int(out) != i {
|
||||||
t.Fatalf("expected to read: %d at %d, read %d", i, reader.Offset()-1, out)
|
t.Fatalf("expected to read: %d at %d, read %d", i, getOffset(reader)-1, out)
|
||||||
}
|
}
|
||||||
if i != 255 {
|
if i != 255 {
|
||||||
_, err := reader.Seek(3, io.SeekCurrent)
|
_, err := reader.Seek(3, io.SeekCurrent)
|
||||||
@ -163,12 +163,12 @@ func TestRelativeSeek(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < 256; i++ {
|
for i := 0; i < 256; i++ {
|
||||||
if reader.Offset() != int64(1020-i*4) {
|
if getOffset(reader) != int64(1020-i*4) {
|
||||||
t.Fatalf("offset should be %d, was %d", 1020-i*4, reader.Offset())
|
t.Fatalf("offset should be %d, was %d", 1020-i*4, getOffset(reader))
|
||||||
}
|
}
|
||||||
out := readByte(t, reader)
|
out := readByte(t, reader)
|
||||||
if int(out) != 255-i {
|
if int(out) != 255-i {
|
||||||
t.Fatalf("expected to read: %d at %d, read %d", 255-i, reader.Offset()-1, out)
|
t.Fatalf("expected to read: %d at %d, read %d", 255-i, getOffset(reader)-1, out)
|
||||||
}
|
}
|
||||||
reader.Seek(-5, io.SeekCurrent) // seek 4 bytes but we read one byte every time so 5 bytes
|
reader.Seek(-5, io.SeekCurrent) // seek 4 bytes but we read one byte every time so 5 bytes
|
||||||
}
|
}
|
||||||
@ -302,3 +302,11 @@ func readByte(t testing.TB, reader DagReader) byte {
|
|||||||
|
|
||||||
return out[0]
|
return out[0]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getOffset(reader DagReader) int64 {
|
||||||
|
offset, err := reader.Seek(0, io.SeekCurrent)
|
||||||
|
if err != nil {
|
||||||
|
panic("failed to retrieve offset: " + err.Error())
|
||||||
|
}
|
||||||
|
return offset
|
||||||
|
}
|
||||||
|
@ -225,11 +225,6 @@ func (dr *PBDagReader) Close() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Offset returns the current reader offset
|
|
||||||
func (dr *PBDagReader) Offset() int64 {
|
|
||||||
return dr.offset
|
|
||||||
}
|
|
||||||
|
|
||||||
// Seek implements io.Seeker, and will seek to a given offset in the file
|
// Seek implements io.Seeker, and will seek to a given offset in the file
|
||||||
// interface matches standard unix seek
|
// interface matches standard unix seek
|
||||||
// TODO: check if we can do relative seeks, to reduce the amount of dagreader
|
// TODO: check if we can do relative seeks, to reduce the amount of dagreader
|
||||||
|
@ -663,7 +663,7 @@ func testReadAndSeek(t *testing.T, opts testu.NodeOpts) {
|
|||||||
// skip 4
|
// skip 4
|
||||||
_, err = dagmod.Seek(1, io.SeekCurrent)
|
_, err = dagmod.Seek(1, io.SeekCurrent)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("error: %s, offset %d, reader offset %d", err, dagmod.curWrOff, dagmod.read.Offset())
|
t.Fatalf("error: %s, offset %d, reader offset %d", err, dagmod.curWrOff, getOffset(dagmod.read))
|
||||||
}
|
}
|
||||||
|
|
||||||
//read 5,6,7
|
//read 5,6,7
|
||||||
@ -750,3 +750,11 @@ func BenchmarkDagmodWrite(b *testing.B) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getOffset(reader uio.DagReader) int64 {
|
||||||
|
offset, err := reader.Seek(0, io.SeekCurrent)
|
||||||
|
if err != nil {
|
||||||
|
panic("failed to retrieve offset: " + err.Error())
|
||||||
|
}
|
||||||
|
return offset
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user