mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-14 12:43:40 +02:00
test: Make bloom tests deterministic
This commit is contained in:
parent
3e38d40873
commit
fae169c95e
4 changed files with 26 additions and 11 deletions
|
|
@ -461,6 +461,9 @@ static std::vector<unsigned char> RandomData()
|
|||
|
||||
BOOST_AUTO_TEST_CASE(rolling_bloom)
|
||||
{
|
||||
SeedInsecureRand(/* deterministic */ true);
|
||||
g_mock_deterministic_tests = true;
|
||||
|
||||
// last-100-entry, 1% false positive:
|
||||
CRollingBloomFilter rb1(100, 0.01);
|
||||
|
||||
|
|
@ -485,12 +488,8 @@ BOOST_AUTO_TEST_CASE(rolling_bloom)
|
|||
if (rb1.contains(RandomData()))
|
||||
++nHits;
|
||||
}
|
||||
// Run test_bitcoin with --log_level=message to see BOOST_TEST_MESSAGEs:
|
||||
BOOST_TEST_MESSAGE("RollingBloomFilter got " << nHits << " false positives (~100 expected)");
|
||||
|
||||
// Insanely unlikely to get a fp count outside this range:
|
||||
BOOST_CHECK(nHits > 25);
|
||||
BOOST_CHECK(nHits < 175);
|
||||
// Expect about 100 hits
|
||||
BOOST_CHECK_EQUAL(nHits, 75);
|
||||
|
||||
BOOST_CHECK(rb1.contains(data[DATASIZE-1]));
|
||||
rb1.reset();
|
||||
|
|
@ -517,10 +516,8 @@ BOOST_AUTO_TEST_CASE(rolling_bloom)
|
|||
if (rb1.contains(data[i]))
|
||||
++nHits;
|
||||
}
|
||||
// Expect about 5 false positives, more than 100 means
|
||||
// something is definitely broken.
|
||||
BOOST_TEST_MESSAGE("RollingBloomFilter got " << nHits << " false positives (~5 expected)");
|
||||
BOOST_CHECK(nHits < 100);
|
||||
// Expect about 5 false positives
|
||||
BOOST_CHECK_EQUAL(nHits, 6);
|
||||
|
||||
// last-1000-entry, 0.01% false positive:
|
||||
CRollingBloomFilter rb2(1000, 0.001);
|
||||
|
|
@ -531,6 +528,7 @@ BOOST_AUTO_TEST_CASE(rolling_bloom)
|
|||
for (int i = 0; i < DATASIZE; i++) {
|
||||
BOOST_CHECK(rb2.contains(data[i]));
|
||||
}
|
||||
g_mock_deterministic_tests = false;
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue