Fix logic error in large file autotest
authorJason McDonald <jason.mcdonald@nokia.com>
Thu, 21 Apr 2011 01:15:35 +0000 (11:15 +1000)
committerRohan McGovern <rohan.mcgovern@nokia.com>
Wed, 18 May 2011 00:46:41 +0000 (10:46 +1000)
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)

tests/auto/qfile/largefile/tst_largefile.cpp

index a9ad017..47f2e73 100644 (file)
@@ -206,14 +206,13 @@ static inline QByteArray generateDataBlock(int blockSize, QString text, qint64 u
 
     QByteArray filler("0123456789");
     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, userBits);
     appendRaw(block, randomBits);
 
-    Q_ASSERT( block.size() >= blockSize );
-    block.resize(blockSize);
+    Q_ASSERT( block.size() == blockSize );
 
     ++counter;
     return block;