diff options
author | Marc Mutz <marc.mutz@qt.io> | 2023-03-09 07:46:11 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2023-03-09 18:27:00 +0100 |
commit | f7ea9b36b7c56bb288f3ea55f587d2ccb8a9b7fa (patch) | |
tree | d8aa98afa6472f11823712bac7625984665ad710 /tests/auto/corelib/tools | |
parent | 66265780361e32d4186ab335e7401d86e0319aa5 (diff) |
tst_QCryptographicHash: Extract Method ensureLargeData()
... to make large data usable from other test functions.
Pick-to: 6.5 6.5.0 6.4 6.4.3 6.2
Change-Id: I302070121a8bb49f373c7711bc3ab9e6418874ef
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r-- | tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp b/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp index 4ac176fea1..91fdef354f 100644 --- a/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp +++ b/tests/auto/corelib/tools/qcryptographichash/tst_qcryptographichash.cpp @@ -37,6 +37,7 @@ private slots: void moreThan4GiBOfData_data(); void moreThan4GiBOfData(); private: + void ensureLargeData(); std::vector<char> large; }; @@ -447,12 +448,14 @@ void tst_QCryptographicHash::swap() QCOMPARE(hash1.result(), QCryptographicHash::hash("test", QCryptographicHash::Sha256)); } -void tst_QCryptographicHash::moreThan4GiBOfData_data() +void tst_QCryptographicHash::ensureLargeData() { #if QT_POINTER_SIZE > 4 QElapsedTimer timer; timer.start(); const size_t GiB = 1024 * 1024 * 1024; + if (large.size() == 4 * GiB + 1) + return; try { large.resize(4 * GiB + 1, '\0'); } catch (const std::bad_alloc &) { @@ -461,7 +464,14 @@ void tst_QCryptographicHash::moreThan4GiBOfData_data() QCOMPARE(large.size(), 4 * GiB + 1); large.back() = '\1'; qDebug("created dataset in %lld ms", timer.elapsed()); +#endif +} +void tst_QCryptographicHash::moreThan4GiBOfData_data() +{ +#if QT_POINTER_SIZE > 4 + if (ensureLargeData(); large.empty()) + return; QTest::addColumn<QCryptographicHash::Algorithm>("algorithm"); auto me = QMetaEnum::fromType<QCryptographicHash::Algorithm>(); auto row = [me] (QCryptographicHash::Algorithm algo) { |