mirror of
https://github.com/octoleo/restic.git
synced 2024-11-26 14:56:29 +00:00
Use int64 for the length in the RewindReader
This commit is contained in:
parent
99f7fd74e3
commit
929afc63d5
@ -119,7 +119,7 @@ func (b *restBackend) Save(ctx context.Context, h restic.Handle, rd restic.Rewin
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "NewRequest")
|
return errors.Wrap(err, "NewRequest")
|
||||||
}
|
}
|
||||||
req.Header.Set("Content-Length", strconv.Itoa(rd.Length()))
|
req.Header.Set("Content-Length", strconv.FormatInt(rd.Length(), 10))
|
||||||
req.Header.Set("Content-Type", "application/octet-stream")
|
req.Header.Set("Content-Type", "application/octet-stream")
|
||||||
req.Header.Set("Accept", contentTypeV2)
|
req.Header.Set("Accept", contentTypeV2)
|
||||||
|
|
||||||
|
@ -443,7 +443,7 @@ func (s *Suite) TestListCancel(t *testing.T) {
|
|||||||
|
|
||||||
type errorCloser struct {
|
type errorCloser struct {
|
||||||
io.ReadSeeker
|
io.ReadSeeker
|
||||||
l int
|
l int64
|
||||||
t testing.TB
|
t testing.TB
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -452,7 +452,7 @@ func (ec errorCloser) Close() error {
|
|||||||
return errors.New("forbidden method close was called")
|
return errors.New("forbidden method close was called")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ec errorCloser) Length() int {
|
func (ec errorCloser) Length() int64 {
|
||||||
return ec.l
|
return ec.l
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -536,7 +536,7 @@ func (s *Suite) TestSave(t *testing.T) {
|
|||||||
|
|
||||||
// wrap the tempfile in an errorCloser, so we can detect if the backend
|
// wrap the tempfile in an errorCloser, so we can detect if the backend
|
||||||
// closes the reader
|
// closes the reader
|
||||||
err = b.Save(context.TODO(), h, errorCloser{t: t, l: length, ReadSeeker: tmpfile})
|
err = b.Save(context.TODO(), h, errorCloser{t: t, l: int64(length), ReadSeeker: tmpfile})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -17,13 +17,13 @@ type RewindReader interface {
|
|||||||
|
|
||||||
// Length returns the number of bytes that can be read from the Reader
|
// Length returns the number of bytes that can be read from the Reader
|
||||||
// after calling Rewind.
|
// after calling Rewind.
|
||||||
Length() int
|
Length() int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// ByteReader implements a RewindReader for a byte slice.
|
// ByteReader implements a RewindReader for a byte slice.
|
||||||
type ByteReader struct {
|
type ByteReader struct {
|
||||||
*bytes.Reader
|
*bytes.Reader
|
||||||
Len int
|
Len int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rewind restarts the reader from the beginning of the data.
|
// Rewind restarts the reader from the beginning of the data.
|
||||||
@ -34,7 +34,7 @@ func (b *ByteReader) Rewind() error {
|
|||||||
|
|
||||||
// Length returns the number of bytes read from the reader after Rewind is
|
// Length returns the number of bytes read from the reader after Rewind is
|
||||||
// called.
|
// called.
|
||||||
func (b *ByteReader) Length() int {
|
func (b *ByteReader) Length() int64 {
|
||||||
return b.Len
|
return b.Len
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ var _ RewindReader = &ByteReader{}
|
|||||||
func NewByteReader(buf []byte) *ByteReader {
|
func NewByteReader(buf []byte) *ByteReader {
|
||||||
return &ByteReader{
|
return &ByteReader{
|
||||||
Reader: bytes.NewReader(buf),
|
Reader: bytes.NewReader(buf),
|
||||||
Len: len(buf),
|
Len: int64(len(buf)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ var _ RewindReader = &FileReader{}
|
|||||||
// FileReader implements a RewindReader for an open file.
|
// FileReader implements a RewindReader for an open file.
|
||||||
type FileReader struct {
|
type FileReader struct {
|
||||||
io.ReadSeeker
|
io.ReadSeeker
|
||||||
Len int
|
Len int64
|
||||||
}
|
}
|
||||||
|
|
||||||
// Rewind seeks to the beginning of the file.
|
// Rewind seeks to the beginning of the file.
|
||||||
@ -65,7 +65,7 @@ func (f *FileReader) Rewind() error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Length returns the length of the file.
|
// Length returns the length of the file.
|
||||||
func (f *FileReader) Length() int {
|
func (f *FileReader) Length() int64 {
|
||||||
return f.Len
|
return f.Len
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ func NewFileReader(f io.ReadSeeker) (*FileReader, error) {
|
|||||||
|
|
||||||
fr := &FileReader{
|
fr := &FileReader{
|
||||||
ReadSeeker: f,
|
ReadSeeker: f,
|
||||||
Len: int(pos),
|
Len: pos,
|
||||||
}
|
}
|
||||||
|
|
||||||
err = fr.Rewind()
|
err = fr.Rewind()
|
||||||
|
@ -57,15 +57,15 @@ func TestFileReader(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testRewindReader(t *testing.T, fn func() RewindReader, data []byte) {
|
func testRewindReader(t *testing.T, fn func() RewindReader, data []byte) {
|
||||||
seed := time.Now().Unix()
|
seed := time.Now().UnixNano()
|
||||||
t.Logf("seed is %d", seed)
|
t.Logf("seed is %d", seed)
|
||||||
rnd := rand.New(rand.NewSource(seed))
|
rnd := rand.New(rand.NewSource(seed))
|
||||||
|
|
||||||
type ReaderTestFunc func(t testing.TB, r RewindReader, data []byte)
|
type ReaderTestFunc func(t testing.TB, r RewindReader, data []byte)
|
||||||
var tests = []ReaderTestFunc{
|
var tests = []ReaderTestFunc{
|
||||||
func(t testing.TB, rd RewindReader, data []byte) {
|
func(t testing.TB, rd RewindReader, data []byte) {
|
||||||
if rd.Length() != len(data) {
|
if rd.Length() != int64(len(data)) {
|
||||||
t.Fatalf("wrong length returned, want %d, got %d", len(data), rd.Length())
|
t.Fatalf("wrong length returned, want %d, got %d", int64(len(data)), rd.Length())
|
||||||
}
|
}
|
||||||
|
|
||||||
buf := make([]byte, len(data))
|
buf := make([]byte, len(data))
|
||||||
@ -78,8 +78,8 @@ func testRewindReader(t *testing.T, fn func() RewindReader, data []byte) {
|
|||||||
t.Fatalf("wrong data returned")
|
t.Fatalf("wrong data returned")
|
||||||
}
|
}
|
||||||
|
|
||||||
if rd.Length() != len(data) {
|
if rd.Length() != int64(len(data)) {
|
||||||
t.Fatalf("wrong length returned, want %d, got %d", len(data), rd.Length())
|
t.Fatalf("wrong length returned, want %d, got %d", int64(len(data)), rd.Length())
|
||||||
}
|
}
|
||||||
|
|
||||||
err = rd.Rewind()
|
err = rd.Rewind()
|
||||||
@ -87,11 +87,11 @@ func testRewindReader(t *testing.T, fn func() RewindReader, data []byte) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if rd.Length() != len(data) {
|
if rd.Length() != int64(len(data)) {
|
||||||
t.Fatalf("wrong length returned, want %d, got %d", len(data), rd.Length())
|
t.Fatalf("wrong length returned, want %d, got %d", int64(len(data)), rd.Length())
|
||||||
}
|
}
|
||||||
|
|
||||||
buf2 := make([]byte, len(data))
|
buf2 := make([]byte, int64(len(data)))
|
||||||
_, err = io.ReadFull(rd, buf2)
|
_, err = io.ReadFull(rd, buf2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
@ -101,8 +101,8 @@ func testRewindReader(t *testing.T, fn func() RewindReader, data []byte) {
|
|||||||
t.Fatalf("wrong data returned")
|
t.Fatalf("wrong data returned")
|
||||||
}
|
}
|
||||||
|
|
||||||
if rd.Length() != len(data) {
|
if rd.Length() != int64(len(data)) {
|
||||||
t.Fatalf("wrong length returned, want %d, got %d", len(data), rd.Length())
|
t.Fatalf("wrong length returned, want %d, got %d", int64(len(data)), rd.Length())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
func(t testing.TB, rd RewindReader, data []byte) {
|
func(t testing.TB, rd RewindReader, data []byte) {
|
||||||
|
Loading…
Reference in New Issue
Block a user