Commit graph

37 commits

Author SHA1 Message Date
Peter Kokot
d679f02295 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:33:09 +02:00
Gabriel Caruso
ded3d984c6 Use EXPECT instead of EXPECTF when possible
EXPECTF logic in run-tests.php is considerable, so let's avoid it.
2018-02-20 21:53:48 +01:00
Gabriel Caruso
3253057021
Add test for bcpwmod
bc_raisemod's mod can't be zero and expo can't be negative
2018-02-12 09:25:31 +01:00
Sara Golemon
24fd49fbab Merge branch 'PHP-7.2'
* PHP-7.2:
  Scale support for bcmod()
2017-11-06 17:27:22 -05:00
Christoph M. Becker
b152633ecb Scale support for bcmod()
As of commit 90dcbbe (PHP-7.2+) bcmod() supports non-integral
parameters as well. Since formerly only integer modulus has been
supported, it did not make much sense to cater to the scale with regard
to the result. However, now it does for consistency with other BCMath
operations.

Therefore, we add support for an optional `scale` parameter and fall
back to the default scale (`bcmath.scale`) as usual.
2017-11-06 17:26:52 -05:00
Christoph M. Becker
73af7a847c Merge branch 'pull-request/2742'
* pull-request/2742:
  Fixed bug #66364 (BCMath bcmul ignores scale parameter)
2017-09-18 15:21:22 +02:00
Christoph M. Becker
18adc6f0fc Merge branch 'pull-request/2745'
* pull-request/2745:
  Fixed bug #75169 (BCMath errors/warnings bypass error handling)
2017-09-13 16:21:30 +02:00
Christoph M. Becker
1738fa3ec1 Merge branch 'pull-request/2739'
* pull-request/2739:
  Fix proto and indentation
  Fix arginfo
  Return old scale value from bcscale()
2017-09-13 16:04:54 +02:00
Christoph M. Becker
77f3cef35c Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #46781 (BC math handles minus zero incorrectly)
2017-09-11 23:52:14 +02:00
Christoph M. Becker
9aa6898b9b Fixed bug #46781 (BC math handles minus zero incorrectly)
Actually, there is no negative zero at all.  We obey Postel's law, and
still accept negative zeroes, but we store them as positive zeroes
after the conversion from string, i.e. we normalize before further
processing.
2017-09-11 23:44:23 +02:00
Christoph M. Becker
fd73a54c30 Fixed bug #75169 (BCMath errors/warnings bypass error handling)
Instead of writing warning messages to `stderr`, we employ PHP's error
handling to raise `E_WARNING` even for the single case where
`bc_rt_error()` has been called, since that did not actually error out.
We choose to call `php_error_docref()` directly in libbcmath, since
there is no upstream, and since other PHP core functionality is already
used in our bundled libbcmath. Accordingly, we remove `rt.c` so it will
not be accidentally used in the future.

Besides adapting a few existing tests, we add new tests so that the
warnings are tested at least once. We also get rid of the Windows
specific tests, since the warning behavior is now supposed to be
platform-agnostic.
2017-09-09 23:57:22 +02:00
Christoph M. Becker
20fe838c76 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fix bug75178.phpt on Windows
2017-09-09 17:04:42 +02:00
Christoph M. Becker
3fd08a1595 Fix bug75178.phpt on Windows
bug75178.phpt fails on Windows, because the stderr output is not
interspersed with stdout output there, but rather is appended to the
end. The fix is analogous to bug72093.phpt.
2017-09-09 16:46:32 +02:00
Christoph M. Becker
21eab49a53 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus)
2017-09-09 13:30:40 +02:00
Christoph M. Becker
44eec946e8 Fixed bug #75178 (bcpowmod() misbehaves for non-integer base or modulus)
Since `bcpowmod()` does not support non-integral operands, we have to
truncate these in addition to emitting a respective warning. We also
have to work with the truncated values in the following.

We recognize that the division by one to enforce the truncation is
actually overkill, but we stick with it for now, and shall tackle the
issue for PHP 7.3.
2017-09-09 13:18:26 +02:00
Christoph M. Becker
870ed5106d Fixed bug #66364 (BCMath bcmul ignores scale parameter)
We change `bcmul()` and `bcpow()` so that the result has exactly the
requested scale (i.e. decimal places) to make them consistent with the
other BCMath functions.  This also changes our stance regarding bug
#52748, which had been classified as documentation problem.

We do not manipulate the numbers themselves (anymore), but rather
introduce `bc_num2str_ex()` which accepts a scale parameter that
overrides the scale of the number by omitting extraneous decimals and
adding zeros, respectively.  This also allows us to get rid of
`split_bc_num()`, which fixes bug #75164 as well.
2017-09-08 18:31:04 +02:00
Christoph M. Becker
d01453b129 Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1)
2017-09-07 00:38:59 +02:00
Christoph M. Becker
b2919853f8 Fixed bug #54598 (bcpowmod() may return 1 if modulus is 1)
`x mod 1` is always zero; we have to take the scale into account,
though.
2017-09-07 00:30:05 +02:00
Christoph M. Becker
5ce744091c Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
  Fixed bug #44995 (bcpowmod() fails if scale != 0)
2017-09-06 23:41:46 +02:00
Christoph M. Becker
dea41f3c3a Fixed bug #44995 (bcpowmod() fails if scale != 0)
`bc_divmod()` is supposed to do integer division, so we must not apply
a scale factor here.
2017-09-06 23:30:53 +02:00
Christoph M. Becker
cf61ec64a4 Merge branch 'pull-request/778' into bcscale-return-old-value 2017-09-06 14:28:51 +02:00
Edgar R. Sandi
0608761438 Increased bcmath functions coverage tests using scale option parameter 2017-03-27 18:48:58 +02:00
Libor M
90dcbbe3cb Fixed bug #46564
bcmod() no longer truncates fractionals to integers. This matches
the behavior of fmod(). It also matches the behavior of bcpowmod().
It also matches the behavior of bcmod() in HHVM.
2017-01-07 19:10:31 +01:00
Anatol Belski
25ef19f927 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  fix/improve tests
2016-04-27 13:19:29 +02:00
Anatol Belski
a21a997478 fix/improve tests 2016-04-27 13:16:57 +02:00
Anatol Belski
33d41da347 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix memory leak
  Fix bug #72099: xml_parse_into_struct segmentation fault
  5.5.36 now
  Fix bug #72094 - Out of bounds heap read access in exif header processing
  Fix bug #72093: bcpowmod accepts negative scale and corrupts _one_ definition
  Fix bug #72061 - Out-of-bounds reads in zif_grapheme_stripos with negative offset
  Fix for bug #71912 (libgd: signedness vulnerability)
  Typo in NEWS
2016-04-27 11:45:29 +02:00
Stanislav Malyshev
d650063a04 Fix bug #72093: bcpowmod accepts negative scale and corrupts _one_ definition
We can not modify result since it can be copy of _zero_ or _one_, etc. and
"copy" in bcmath is just bumping the refcount.
2016-04-24 18:33:32 -07:00
Andrea Faulds
1392102b0c Updated or skipped certain 32-bit tests 2014-12-17 01:06:48 +00:00
Chris Wright
1e3435b289 Return old scale value from bcscale()
Fix for #67855
2014-08-18 13:56:02 +01:00
Xinchen Hui
610c7fbe7b Remove executable permission on phpt 2012-10-10 10:27:49 +08:00
Mateusz Kocielski
17b39638d0 - Fixed bug #60337 bcscale related crashed on 64bits platforms 2011-11-19 12:46:43 +00:00
William Martin
d42fd45f97 Add some bcmath tests 2010-03-08 15:16:51 +00:00
Zoe Slattery
b964306fd7 add missing skipifs 2009-08-31 19:22:29 +00:00
Zoe Slattery
d84163c639 bc math tests from testfest 2009 2009-08-30 11:10:20 +00:00
foobar
b02dd10e03 SKIP -> SKIPIF 2003-04-16 02:21:30 +00:00
Sander Roobol
b8cf1a369f Hardcode the bcmath.scale ini-entry 2002-11-21 16:16:38 +00:00
Sander Roobol
f4ffead6fa Adding tests for the bcmath extension 2002-11-21 15:24:45 +00:00