1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 08:12:21 +01:00
Files
archived-php-src/ext/bcmath/tests/negative_scale.phpt
Vladyslav Startsev b64aee9706 Ensure bcmath scale is between 0 and INT_MAX
Make sure bcmatch scale is between 0 and INT_MAX, both for the
ini setting, and all the functions accepting a scale argument.
A ValueError is thrown if a function argument is out of range.

Closes GH-5455.
2020-04-27 11:53:26 +02:00

71 lines
1.7 KiB
PHP

--TEST--
all errors on negative scale
--SKIPIF--
<?php if(!extension_loaded("bcmath")) print "skip"; ?>
--INI--
bcmath.scale=0
--FILE--
<?php
try {
bcadd('1','2',-1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcsub('1','2',-1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcmul('1','2',-1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcdiv('1','2',-1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcmod('1','2',-1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcpowmod('1', '2', '3', -9);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcpow('1', '2', -1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcsqrt('9', -1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bccomp('1', '2', -1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
bcscale(-1);
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
?>
--EXPECT--
bcadd(): Argument #3 ($scale) must be between 0 and 2147483647
bcsub(): Argument #3 ($scale) must be between 0 and 2147483647
bcmul(): Argument #3 ($scale) must be between 0 and 2147483647
bcdiv(): Argument #3 ($scale) must be between 0 and 2147483647
bcmod(): Argument #3 ($scale) must be between 0 and 2147483647
bcpowmod(): Argument #4 ($scale) must be between 0 and 2147483647
bcpow(): Argument #3 ($scale) must be between 0 and 2147483647
bcsqrt(): Argument #2 ($scale) must be between 0 and 2147483647
bccomp(): Argument #3 ($scale) must be between 0 and 2147483647
bcscale(): Argument #1 ($scale) must be between 0 and 2147483647