This commit is contained in:
chrislu 2021-12-22 16:05:08 -08:00
parent 7b78fc72b0
commit 4c1368d621
2 changed files with 22 additions and 16 deletions

View file

@ -186,6 +186,9 @@ func (c *ChunkReadAt) readChunkSlice(chunkView *ChunkView, nextChunkViews *Chunk
if len(chunkSlice) > 0 { if len(chunkSlice) > 0 {
return chunkSlice, nil return chunkSlice, nil
} }
if c.lookupFileId == nil {
return nil, nil
}
chunkData, err := c.readFromWholeChunkData(chunkView, nextChunkViews) chunkData, err := c.readFromWholeChunkData(chunkView, nextChunkViews)
if err != nil { if err != nil {
return nil, err return nil, err

View file

@ -22,7 +22,7 @@ func (m *mockChunkCache) GetChunk(fileId string, minSize uint64) (data []byte) {
} }
func (m *mockChunkCache) GetChunkSlice(fileId string, offset, length uint64) []byte { func (m *mockChunkCache) GetChunkSlice(fileId string, offset, length uint64) []byte {
return nil return m.GetChunk(fileId, length)
} }
func (m *mockChunkCache) SetChunk(fileId string, data []byte) { func (m *mockChunkCache) SetChunk(fileId string, data []byte) {
@ -64,11 +64,12 @@ func TestReaderAt(t *testing.T) {
} }
readerAt := &ChunkReadAt{ readerAt := &ChunkReadAt{
chunkViews: ViewFromVisibleIntervals(visibles, 0, math.MaxInt64), chunkViews: ViewFromVisibleIntervals(visibles, 0, math.MaxInt64),
lookupFileId: nil, lookupFileId: nil,
readerLock: sync.Mutex{}, readerLock: sync.Mutex{},
fileSize: 10, fileSize: 10,
chunkCache: &mockChunkCache{}, chunkCache: &mockChunkCache{},
readerPattern: NewReaderPattern(),
} }
testReadAt(t, readerAt, 0, 10, 10, io.EOF) testReadAt(t, readerAt, 0, 10, 10, io.EOF)
@ -114,11 +115,12 @@ func TestReaderAt0(t *testing.T) {
} }
readerAt := &ChunkReadAt{ readerAt := &ChunkReadAt{
chunkViews: ViewFromVisibleIntervals(visibles, 0, math.MaxInt64), chunkViews: ViewFromVisibleIntervals(visibles, 0, math.MaxInt64),
lookupFileId: nil, lookupFileId: nil,
readerLock: sync.Mutex{}, readerLock: sync.Mutex{},
fileSize: 10, fileSize: 10,
chunkCache: &mockChunkCache{}, chunkCache: &mockChunkCache{},
readerPattern: NewReaderPattern(),
} }
testReadAt(t, readerAt, 0, 10, 10, io.EOF) testReadAt(t, readerAt, 0, 10, 10, io.EOF)
@ -142,11 +144,12 @@ func TestReaderAt1(t *testing.T) {
} }
readerAt := &ChunkReadAt{ readerAt := &ChunkReadAt{
chunkViews: ViewFromVisibleIntervals(visibles, 0, math.MaxInt64), chunkViews: ViewFromVisibleIntervals(visibles, 0, math.MaxInt64),
lookupFileId: nil, lookupFileId: nil,
readerLock: sync.Mutex{}, readerLock: sync.Mutex{},
fileSize: 20, fileSize: 20,
chunkCache: &mockChunkCache{}, chunkCache: &mockChunkCache{},
readerPattern: NewReaderPattern(),
} }
testReadAt(t, readerAt, 0, 20, 20, io.EOF) testReadAt(t, readerAt, 0, 20, 20, io.EOF)