diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/global/qrandomgenerator/tst_qrandomgenerator.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/auto/corelib/global/qrandomgenerator/tst_qrandomgenerator.cpp b/tests/auto/corelib/global/qrandomgenerator/tst_qrandomgenerator.cpp index f9b3ce5390..9c1828d1dd 100644 --- a/tests/auto/corelib/global/qrandomgenerator/tst_qrandomgenerator.cpp +++ b/tests/auto/corelib/global/qrandomgenerator/tst_qrandomgenerator.cpp @@ -77,6 +77,7 @@ private slots: void copyingGlobal(); void copyingSystem(); void systemRng(); + void securelySeeding(); void generate32_data(); void generate32(); @@ -161,6 +162,9 @@ void tst_QRandomGenerator::basics() rng = std::move(rng64); rng64 = std::move(rng); + rng = QRandomGenerator64::securelySeeded(); + rng64 = QRandomGenerator::securelySeeded(); + // access global QRandomGenerator *global = QRandomGenerator::global(); QRandomGenerator globalCopy = *global; @@ -254,6 +258,21 @@ void tst_QRandomGenerator::systemRng() #endif } +void tst_QRandomGenerator::securelySeeding() +{ + QRandomGenerator rng1 = QRandomGenerator::securelySeeded(); + QRandomGenerator rng2 = QRandomGenerator::securelySeeded(); + + quint32 samples[20]; + rng1.fillRange(samples); + + // should NOT produce the same sequence, whichever it was + int sameCount = 0; + for (quint32 x : samples) + sameCount += (rng2() == x); + QVERIFY(sameCount < 20); +} + void tst_QRandomGenerator::generate32_data() { QTest::addColumn<uint>("control"); |