mirror of
https://github.com/php/php-src.git
synced 2026-04-23 16:08:35 +02:00
4d8dd8d258
https://wiki.php.net/rfc/rng_extension https://wiki.php.net/rfc/random_extension_improvement
44 lines
887 B
PHP
44 lines
887 B
PHP
--TEST--
|
|
Random: Randomizer: readonly engine
|
|
--FILE--
|
|
<?php
|
|
|
|
$one = new \Random\Randomizer(
|
|
new \Random\Engine\PcgOneseq128XslRr64(1234)
|
|
);
|
|
|
|
$one_ng_clone = clone $one->engine;
|
|
if ($one->engine->generate() !== $one_ng_clone->generate()) {
|
|
die('invalid result');
|
|
}
|
|
|
|
try {
|
|
$one->engine = $one_ng_clone;
|
|
} catch (\Throwable $e) {
|
|
echo $e->getMessage() . PHP_EOL;
|
|
}
|
|
|
|
$two = new \Random\Randomizer(
|
|
new \Random\Engine\Secure()
|
|
);
|
|
|
|
try {
|
|
$two_ng_clone = clone $two->engine;
|
|
} catch (\Throwable $e) {
|
|
echo $e->getMessage() . PHP_EOL;
|
|
}
|
|
|
|
try {
|
|
$two->engine = $one_ng_clone;
|
|
} catch (\Throwable $e) {
|
|
echo $e->getMessage() . PHP_EOL;
|
|
}
|
|
|
|
die('success')
|
|
?>
|
|
--EXPECT--
|
|
Cannot modify readonly property Random\Randomizer::$engine
|
|
Trying to clone an uncloneable object of class Random\Engine\Secure
|
|
Cannot modify readonly property Random\Randomizer::$engine
|
|
success
|