mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
![]() * Use `php_random_bytes_throw()` in Secure engine's generate() This exposes the underlying exception, improving debugging: Fatal error: Uncaught Exception: Cannot open source device in php-src/test.php:5 Stack trace: #0 php-src/test.php(5): Random\Engine\Secure->generate() #1 {main} Next RuntimeException: Random number generation failed in php-src/test.php:5 Stack trace: #0 php-src/test.php(5): Random\Engine\Secure->generate() #1 {main} thrown in php-src/test.php on line 5 * Use `php_random_int_throw()` in Secure engine's range() This exposes the underlying exception, improving debugging: Exception: Cannot open source device in php-src/test.php:17 Stack trace: #0 php-src/test.php(17): Random\Randomizer->getInt(1, 3) #1 {main} Next RuntimeException: Random number generation failed in php-src/test.php:17 Stack trace: #0 php-src/test.php(17): Random\Randomizer->getInt(1, 3) #1 {main} * Throw exception when a user engine returns an empty string This improves debugging, because the actual reason for the failure is available as a previous Exception: DomainException: The returned string must not be empty in php-src/test.php:17 Stack trace: #0 php-src/test.php(17): Random\Randomizer->getBytes(123) #1 {main} Next RuntimeException: Random number generation failed in php-src/test.php:17 Stack trace: #0 php-src/test.php(17): Random\Randomizer->getBytes(123) #1 {main} * Throw exception when the range selector fails to get acceptable numbers in 50 attempts This improves debugging, because the actual reason for the failure is available as a previous Exception: RuntimeException: Failed to generate an acceptable random number in 50 attempts in php-src/test.php:17 Stack trace: #0 php-src/test.php(17): Random\Randomizer->getInt(1, 3) #1 {main} Next RuntimeException: Random number generation failed in php-src/test.php:17 Stack trace: #0 php-src/test.php(17): Random\Randomizer->getInt(1, 3) #1 {main} * Improve user_unsafe test Select parameters for ->getInt() that will actually lead to unsafe behavior. * Fix user_unsafe test If an engine fails once it will be permanently poisoned by setting `->last_unsafe`. This is undesirable for the test, because it skews the results. Fix this by creating a fresh engine for each "assertion". * Remove duplication in user_unsafe.phpt * Catch `Throwable` in user_unsafe.phpt As we print the full stringified exception we implicitly assert the type of the exception. No need to be overly specific in the catch block. * Throw an error if an engine returns an empty string * Throw an Error if range fails to find an acceptable number in 50 attempts |
||
---|---|---|
.. | ||
bcmath | ||
bz2 | ||
calendar | ||
com_dotnet | ||
ctype | ||
curl | ||
date | ||
dba | ||
dl_test | ||
dom | ||
enchant | ||
exif | ||
ffi | ||
fileinfo | ||
filter | ||
ftp | ||
gd | ||
gettext | ||
gmp | ||
hash | ||
iconv | ||
imap | ||
intl | ||
json | ||
ldap | ||
libxml | ||
mbstring | ||
mysqli | ||
mysqlnd | ||
oci8 | ||
odbc | ||
opcache | ||
openssl | ||
pcntl | ||
pcre | ||
pdo | ||
pdo_dblib | ||
pdo_firebird | ||
pdo_mysql | ||
pdo_oci | ||
pdo_odbc | ||
pdo_pgsql | ||
pdo_sqlite | ||
pgsql | ||
phar | ||
posix | ||
pspell | ||
random | ||
readline | ||
reflection | ||
session | ||
shmop | ||
simplexml | ||
skeleton | ||
snmp | ||
soap | ||
sockets | ||
sodium | ||
spl | ||
sqlite3 | ||
standard | ||
sysvmsg | ||
sysvsem | ||
sysvshm | ||
tidy | ||
tokenizer | ||
xml | ||
xmlreader | ||
xmlwriter | ||
xsl | ||
zend_test | ||
zip | ||
zlib | ||
ext_skel.php |