summaryrefslogtreecommitdiffstats
path: root/tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp')
-rw-r--r--tests/auto/network/access/qnetworkcookiejar/tst_qnetworkcookiejar.cpp31
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()