提交 6ceb9373 作者: Lucas Molas

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: 's avatarLucas Molas <schomatis@gmail.com>
上级 7e8f6c96
...@@ -3,7 +3,6 @@ package io ...@@ -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) ...@@ -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 { ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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 { ...@@ -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 { ...@@ -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) { ...@@ -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) { ...@@ -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
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论