Fixed unexpected 'pack file cannot be listed' error
Fixes #1633 Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
This commit is contained in:
parent
9f0605766c
commit
19e7803ac6
3 changed files with 35 additions and 12 deletions
|
@ -22,11 +22,11 @@ func (rd *countingReaderAt) ReadAt(p []byte, off int64) (n int, err error) {
|
|||
|
||||
func TestReadHeaderEagerLoad(t *testing.T) {
|
||||
|
||||
testReadHeader := func(entryCount uint, expectedReadInvocationCount int) {
|
||||
testReadHeader := func(dataSize int, entryCount uint, expectedReadInvocationCount int) {
|
||||
expectedHeader := rtest.Random(0, int(entryCount*entrySize)+crypto.Extension)
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
buf.Write(rtest.Random(0, 100)) // pack blobs data
|
||||
buf.Write(rtest.Random(0, dataSize)) // pack blobs data
|
||||
buf.Write(expectedHeader) // pack header
|
||||
binary.Write(buf, binary.LittleEndian, uint32(len(expectedHeader))) // pack header length
|
||||
|
||||
|
@ -39,8 +39,22 @@ func TestReadHeaderEagerLoad(t *testing.T) {
|
|||
rtest.Equals(t, expectedReadInvocationCount, rd.invocationCount)
|
||||
}
|
||||
|
||||
testReadHeader(1, 1)
|
||||
testReadHeader(eagerEntries-1, 1)
|
||||
testReadHeader(eagerEntries, 1)
|
||||
testReadHeader(eagerEntries+1, 2)
|
||||
// basic
|
||||
testReadHeader(100, 1, 1)
|
||||
|
||||
// header entries == eager entries
|
||||
testReadHeader(100, eagerEntries-1, 1)
|
||||
testReadHeader(100, eagerEntries, 1)
|
||||
testReadHeader(100, eagerEntries+1, 2)
|
||||
|
||||
// file size == eager header load size
|
||||
eagerLoadSize := int((eagerEntries * entrySize) + crypto.Extension)
|
||||
headerSize := int(1*entrySize) + crypto.Extension
|
||||
dataSize := eagerLoadSize - headerSize - binary.Size(uint32(0))
|
||||
testReadHeader(dataSize-1, 1, 1)
|
||||
testReadHeader(dataSize, 1, 1)
|
||||
testReadHeader(dataSize+1, 1, 1)
|
||||
testReadHeader(dataSize+2, 1, 1)
|
||||
testReadHeader(dataSize+3, 1, 1)
|
||||
testReadHeader(dataSize+4, 1, 1)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue