1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 00:48:25 +02:00
Files
archived-php-src/ext/random/tests/02_engine/all_serialize_user.phpt
T

49 lines
957 B
PHP

--TEST--
Random: Engine: serialize: user
--FILE--
<?php
final class User64 implements \Random\Engine
{
private int $count = 0;
public function generate(): string
{
return \pack('P*', ++$this->count);
}
}
final class User32 implements \Random\Engine
{
private int $count = 0;
public function generate(): string
{
return \pack('V', ++$this->count);
}
}
$engines = [];
if (\PHP_INT_SIZE >= 8) {
$engines[] = new \User64();
}
$engines[] = new \User32();
foreach ($engines as $engine) {
for ($i = 0; $i < 1000; $i++) {
$engine->generate();
}
$engine2 = unserialize(serialize($engine));
for ($i = 0; $i < 5000; $i++) {
if ($engine->generate() !== $engine2->generate()) {
$className = $engine::class;
die("failure class: {$className} i: {$i}");
}
}
}
die('success');
?>
--EXPECT--
success