diff options
Diffstat (limited to 'tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp')
-rw-r--r-- | tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp index 0257884b65..4f6b5b3dec 100644 --- a/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp +++ b/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp @@ -480,22 +480,27 @@ void tst_QNetworkCookieJar::effectiveTLDs_data() QTest::newRow("yes-platform.sh") << "eu.platform.sh" << true; QTest::newRow("no-platform.sh") << "something.platform.sh" << false; - int i; - for (i = 0; tldIndices[i] < tldChunks[0]; i++) { } - Q_ASSERT(i < tldCount); - int TLDsInFirstChunk = i; - - const char *lastGroupFromFirstChunk = &tldData[0][tldIndices[TLDsInFirstChunk - 1]]; - QTest::addRow("lastGroupFromFirstChunk: %s", lastGroupFromFirstChunk) - << lastGroupFromFirstChunk - << true; + int inFirst = 0; // First group is guaranteed to be in first chunk. + while (tldIndices[inFirst] < tldChunks[0]) + ++inFirst; + Q_ASSERT(inFirst < tldCount); + const char *lastGroupFromFirstChunk = &tldData[0][tldIndices[inFirst - 1]]; + const char *cut = &tldData[0][tldChunks[0]]; + for (const char *entry = lastGroupFromFirstChunk; entry < cut; entry += strlen(entry) + 1) + QTest::addRow("lastGroupFromFirstChunk: %s", entry) << entry << true; Q_ASSERT(tldChunkCount > 1); // There are enough TLDs to fill 64K bytes + // The tldCount + 1 entries in tldIndices are indexed by hash value and some + // hash cells may be empty: we need to find the last non-empty hash cell. + int tail = tldCount; + while (tldIndices[tail - 1] == tldIndices[tail]) + --tail; + Q_ASSERT(tldIndices[tail] == tldChunks[tldChunkCount - 1]); const char *lastGroupFromLastChunk = - &tldData[tldChunkCount-1][tldIndices[tldCount - 1] - tldChunks[tldChunkCount - 2]]; - QTest::addRow("lastGroupFromLastChunk: %s", lastGroupFromLastChunk) - << lastGroupFromLastChunk - << true; + &tldData[tldChunkCount-1][tldIndices[tail - 1] - tldChunks[tldChunkCount - 2]]; + const char *end = &tldData[tldChunkCount-1][tldIndices[tail] - tldChunks[tldChunkCount - 2]]; + for (const char *entry = lastGroupFromLastChunk; entry < end; entry += strlen(entry) + 1) + QTest::addRow("lastGroupFromLastChunk: %s", entry) << entry << true; } void tst_QNetworkCookieJar::effectiveTLDs() |