History log of /php-src/ext/random/tests/engines.inc (Results 1 – 3 of 3)
Revision Date Author Comments
# ac0b9bff 14-Oct-2023 Tim Düsterhus

random: Add additional test for Randomizer::getFloat() (#12436)


# 64d90805 26-Jan-2023 Tim Düsterhus

random: Fix off-by-one in fast path selection of Randomizer::getBytesFromString() (#10449)

With a single byte we can choose offsets between 0x00 and 0xff, thus 0x100
different offsets. W

random: Fix off-by-one in fast path selection of Randomizer::getBytesFromString() (#10449)

With a single byte we can choose offsets between 0x00 and 0xff, thus 0x100
different offsets. We only need to use the slow path for sources of more than
0x100 bytes.

The previous version was correct with regard to the output expectations, it was
just slower than necessary. Better fix this now while we still can before being
bound by our BC guarantees with regard to emitted sequences.

This also adds a test to verify the behavior: For powers of two we never reject
any values during rejection sampling, we just need to mask off the unneeded
bits. Thus we can specifically verify that the number of calls to the engine
match the expected amount. We also verify that all the possible values are
emitted to make sure the masking does not remove any required bits. For inputs
longer than 0x100 bytes we need trust the `range()` implementation to be
unbiased, but still verify the number of engine calls and perform a basic
output check.

show more ...


# f7d426cc 31-Aug-2022 Tim Düsterhus

Unify structure for ext/random's randomizer tests (#9410)

* Unify structure for ext/random's engine tests (2)

This makes adjustments that were missed in
2d6a883b3a1e5ee4f225dce6

Unify structure for ext/random's randomizer tests (#9410)

* Unify structure for ext/random's engine tests (2)

This makes adjustments that were missed in
2d6a883b3a1e5ee4f225dce64584ad2522e8e391.

* Add `engines.inc` for ext/random tests

* Unify structure for ext/random's randomizer tests

show more ...