Fix logic error in large file autotest

The function generating data blocks was filling the block to 16 bytes
short of the blockSize, then appending three 8 byte values, causing the
block to grow 8 bytes beyond blockSize and then truncating it back to
blockSize.

This commit makes the code fill the block to 24 bytes short of the
blockSize, so that the block will always end up at the correct size and
truncation is not needed.

Change-Id: I9fe6e6d6cf7bc445513b53e0a910d205c4c8002f
Reviewed-by: Rohan McGovern
(cherry picked from commit b1eb564830ff1b754de14919ce5c1547e9758f7c)
This commit is contained in:
Jason McDonald 2011-04-21 11:15:35 +10:00 committed by Rohan McGovern
parent 2d471a2bef
commit 9e0049f656

View File

@ -206,14 +206,13 @@ static inline QByteArray generateDataBlock(int blockSize, QString text, qint64 u
QByteArray filler("0123456789"); QByteArray filler("0123456789");
block.append(filler.right(10 - block.size() % 10)); block.append(filler.right(10 - block.size() % 10));
topUpWith(block, filler, blockSize - 2 * sizeof(qint64)); topUpWith(block, filler, blockSize - 3 * sizeof(qint64));
appendRaw(block, counter); appendRaw(block, counter);
appendRaw(block, userBits); appendRaw(block, userBits);
appendRaw(block, randomBits); appendRaw(block, randomBits);
Q_ASSERT( block.size() >= blockSize ); Q_ASSERT( block.size() == blockSize );
block.resize(blockSize);
++counter; ++counter;
return block; return block;