Tighten Test_RandomNumberGenerator test
Debian HURD was slipping between the cracks. HURD appeared to be a minor failure because entropy on the heap improved the test result. After we zero'd the block, it was a catastrophic failure.pull/877/head
parent
34e49627b7
commit
6028587b9f
11
validat3.cpp
11
validat3.cpp
|
|
@ -429,8 +429,17 @@ bool Test_RandomNumberGenerator(RandomNumberGenerator& prng, bool drain=false)
|
||||||
RandomNumberSource(prng, UINT_MAX, true, new Redirector(TheBitBucket()));
|
RandomNumberSource(prng, UINT_MAX, true, new Redirector(TheBitBucket()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Use a block that is zero'd to catch bad RNG's that appear [somewhat]
|
||||||
|
// OK due to entropy in the heap. We found Debian HURD was failing, but
|
||||||
|
// not that badly. For example, we would see "100000 generated bytes
|
||||||
|
// compressed to 98749 bytes by DEFLATE". Once we zero'd the block, the
|
||||||
|
// message changed to "100000 generated bytes compressed to 27 bytes by
|
||||||
|
// DEFLATE". Doh...
|
||||||
|
SecByteBlock block(NULLPTR, GENERATE_SIZE);
|
||||||
|
RandomNumberSource(prng, GENERATE_SIZE, new ArraySink(block, block.size()));
|
||||||
|
|
||||||
MeterFilter meter(new Redirector(TheBitBucket()));
|
MeterFilter meter(new Redirector(TheBitBucket()));
|
||||||
RandomNumberSource(prng, GENERATE_SIZE, true, new Deflator(new Redirector(meter)));
|
StringSource(block, block.size(), true, new Deflator(new Redirector(meter)));
|
||||||
|
|
||||||
if (meter.GetTotalBytes() < GENERATE_SIZE)
|
if (meter.GetTotalBytes() < GENERATE_SIZE)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue