summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <remi@remirepo.net>2026-04-14 07:55:48 +0200
committerRemi Collet <remi@php.net>2026-04-14 07:55:48 +0200
commit47b6db5769fd14e702c7095cb7cbb5eeb3996c91 (patch)
tree8004bdeb0667eac8d5089f25bc92aa0a391eccff
parenta1e4a14e42e016c87852200d898f9b0b35e6b3da (diff)
fix test suite with PHP 8.5
-rw-r--r--95.patch431
-rw-r--r--php-pecl-decimal.spec5
2 files changed, 436 insertions, 0 deletions
diff --git a/95.patch b/95.patch
new file mode 100644
index 0000000..72c7d62
--- /dev/null
+++ b/95.patch
@@ -0,0 +1,431 @@
+From 95eb63feb9ba3de78a3a64572050ef7cd5b1c5d9 Mon Sep 17 00:00:00 2001
+From: Remi Collet <remi@remirepo.net>
+Date: Tue, 14 Apr 2026 07:41:44 +0200
+Subject: [PATCH] Fix #93 silent Warning: unexpected NAN value was coerced to
+ string
+
+---
+ tests/Decimal/cast.phpt | 2 +-
+ tests/Decimal/methods/add.phpt | 18 +++++++++---------
+ tests/Decimal/methods/div.phpt | 24 ++++++++++++------------
+ tests/Decimal/methods/ln.phpt | 10 +++++-----
+ tests/Decimal/methods/log10.phpt | 10 +++++-----
+ tests/Decimal/methods/mul.phpt | 18 +++++++++---------
+ tests/Decimal/methods/sub.phpt | 18 +++++++++---------
+ tests/Number/helpers/Number.php | 2 +-
+ tests/Number/methods/abs.phpt | 4 ++--
+ tests/Number/methods/ceil.phpt | 4 ++--
+ tests/Number/methods/floor.phpt | 4 ++--
+ tests/Number/methods/trunc.phpt | 4 ++--
+ tests/Rational/cast.phpt | 2 +-
+ tests/Rational/methods/add.phpt | 18 +++++++++---------
+ tests/Rational/methods/div.phpt | 24 ++++++++++++------------
+ tests/Rational/methods/mul.phpt | 18 +++++++++---------
+ tests/Rational/methods/pow.phpt | 2 +-
+ tests/Rational/methods/sub.phpt | 2 +-
+ 18 files changed, 92 insertions(+), 92 deletions(-)
+
+diff --git a/tests/Decimal/cast.phpt b/tests/Decimal/cast.phpt
+index b83094e..e8fd3f6 100644
+--- a/tests/Decimal/cast.phpt
++++ b/tests/Decimal/cast.phpt
+@@ -55,7 +55,7 @@ $tests = [
+ [(float) Decimal::valueOf("1234.5678E+9"), 1.2345678E+12],
+ [(float) Decimal::valueOf("1234.5678E+90"), 1.2345678E+93],
+
+- [(string) (float) Decimal::valueOf( "NAN"), "NAN"],
++ [@(string) (float) Decimal::valueOf( "NAN"), "NAN"],
+ [(string) (float) Decimal::valueOf( "INF"), "INF"],
+ [(string) (float) Decimal::valueOf("-INF"), "-INF"],
+
+diff --git a/tests/Decimal/methods/add.phpt b/tests/Decimal/methods/add.phpt
+index 5ec2d98..210fb7b 100644
+--- a/tests/Decimal/methods/add.phpt
++++ b/tests/Decimal/methods/add.phpt
+@@ -65,15 +65,15 @@ $tests = [
+ ],
+
+ /* Special numbers */
+- [Decimal::valueOf( "NAN"), "NAN", (string) (NAN + NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "INF", (string) (NAN + INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "-INF", (string) (NAN + -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "NAN", (string) (INF + NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "INF", (string) (INF + INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "-INF", (string) (INF + -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "NAN", (string) (-INF + NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "INF", (string) (-INF + INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "-INF", (string) (-INF + -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "NAN", @(string) (NAN + NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "INF", @(string) (NAN + INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "-INF", @(string) (NAN + -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "NAN", @(string) (INF + NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "INF", @(string) (INF + INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "-INF", @(string) (INF + -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "NAN", @(string) (-INF + NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "INF", @(string) (-INF + INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "-INF", @(string) (-INF + -INF), Decimal::DEFAULT_PRECISION],
+ ];
+
+ foreach ($tests as $index => $test) {
+diff --git a/tests/Decimal/methods/div.phpt b/tests/Decimal/methods/div.phpt
+index e5db507..3da5b7f 100644
+--- a/tests/Decimal/methods/div.phpt
++++ b/tests/Decimal/methods/div.phpt
+@@ -52,18 +52,18 @@ $tests = [
+ ],
+
+ /* Special numbers */
+- [Decimal::valueOf(0), "NAN", (string) ( 0 / NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf(0), "INF", (string) ( 0 / INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf(0), "-INF", (string) ( 0 / -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "NAN", (string) (NAN / NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "INF", (string) (NAN / INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "-INF", (string) (NAN / -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "NAN", (string) (INF / NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "INF", (string) (INF / INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "-INF", (string) (INF / -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "NAN", (string) (-INF / NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "INF", (string) (-INF / INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "-INF", (string) (-INF / -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf(0), "NAN", @(string) ( 0 / NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf(0), "INF", @(string) ( 0 / INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf(0), "-INF", @(string) ( 0 / -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "NAN", @(string) (NAN / NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "INF", @(string) (NAN / INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "-INF", @(string) (NAN / -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "NAN", @(string) (INF / NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "INF", @(string) (INF / INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "-INF", @(string) (INF / -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "NAN", @(string) (-INF / NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "INF", @(string) (-INF / INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "-INF", @(string) (-INF / -INF), Decimal::DEFAULT_PRECISION],
+ ];
+
+ foreach ($tests as $index => $test) {
+diff --git a/tests/Decimal/methods/ln.phpt b/tests/Decimal/methods/ln.phpt
+index d8657b1..3a51629 100644
+--- a/tests/Decimal/methods/ln.phpt
++++ b/tests/Decimal/methods/ln.phpt
+@@ -34,12 +34,12 @@ $tests = [
+ [Decimal::valueOf("0.000123456", 50), "-8.9996257406810102209987166229396596684344507962672", 50],
+
+ /* Match PHP on special values */
+- [Decimal::valueOf( "NAN"), (string) log( NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), (string) log(-INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), (string) log( INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), @(string) log( NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), @(string) log(-INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), @(string) log( INF), Decimal::DEFAULT_PRECISION],
+
+- [Decimal::valueOf( "0"), (string) log( 0), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-1"), (string) log(-1), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "0"), @(string) log( 0), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-1"), @(string) log(-1), Decimal::DEFAULT_PRECISION],
+ ];
+
+ foreach ($tests as $test) {
+diff --git a/tests/Decimal/methods/log10.phpt b/tests/Decimal/methods/log10.phpt
+index 7ec063f..ee6d517 100644
+--- a/tests/Decimal/methods/log10.phpt
++++ b/tests/Decimal/methods/log10.phpt
+@@ -30,12 +30,12 @@ $tests = [
+ [Decimal::valueOf("0.000123456"), "-3.908487798372228318930600222932094", Decimal::DEFAULT_PRECISION],
+ [Decimal::valueOf("0.000123456", 50), "-3.9084877983722283189306002229320942053464158123113", 50],
+
+- [Decimal::valueOf( "0"), (string) log10( 0), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "-1"), (string) log10( -1), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "0"), @(string) log10( 0), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "-1"), @(string) log10( -1), Decimal::DEFAULT_PRECISION],
+
+- [Decimal::valueOf( "NAN"), (string) log10( NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), (string) log10( INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), (string) log10(-INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), @(string) log10( NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), @(string) log10( INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), @(string) log10(-INF), Decimal::DEFAULT_PRECISION],
+ ];
+
+ foreach ($tests as $test) {
+diff --git a/tests/Decimal/methods/mul.phpt b/tests/Decimal/methods/mul.phpt
+index e0f171f..e11aea2 100644
+--- a/tests/Decimal/methods/mul.phpt
++++ b/tests/Decimal/methods/mul.phpt
+@@ -58,15 +58,15 @@ $tests = [
+ ],
+
+ /* Special numbers */
+- [Decimal::valueOf( "NAN"), "NAN", (string) (NAN * NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "INF", (string) (NAN * INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "-INF", (string) (NAN * -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "NAN", (string) (INF * NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "INF", (string) (INF * INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "-INF", (string) (INF * -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "NAN", (string) (-INF * NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "INF", (string) (-INF * INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "-INF", (string) (-INF * -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "NAN", @(string) (NAN * NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "INF", @(string) (NAN * INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "-INF", @(string) (NAN * -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "NAN", @(string) (INF * NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "INF", @(string) (INF * INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "-INF", @(string) (INF * -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "NAN", @(string) (-INF * NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "INF", @(string) (-INF * INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "-INF", @(string) (-INF * -INF), Decimal::DEFAULT_PRECISION],
+
+ [Decimal::valueOf( "NAN"), 0, "NAN", Decimal::DEFAULT_PRECISION],
+ [Decimal::valueOf( "INF"), 0, "NAN", Decimal::DEFAULT_PRECISION],
+diff --git a/tests/Decimal/methods/sub.phpt b/tests/Decimal/methods/sub.phpt
+index 6cc5018..9c019ee 100644
+--- a/tests/Decimal/methods/sub.phpt
++++ b/tests/Decimal/methods/sub.phpt
+@@ -62,15 +62,15 @@ $tests = [
+ ],
+
+ /* Special numbers */
+- [Decimal::valueOf( "NAN"), "NAN", (string) (NAN - NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "INF", (string) (NAN - INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "NAN"), "-INF", (string) (NAN - -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "NAN", (string) (INF - NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "INF", (string) (INF - INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf( "INF"), "-INF", (string) (INF - -INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "NAN", (string) (-INF - NAN), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "INF", (string) (-INF - INF), Decimal::DEFAULT_PRECISION],
+- [Decimal::valueOf("-INF"), "-INF", (string) (-INF - -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "NAN", @(string) (NAN - NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "INF", @(string) (NAN - INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "NAN"), "-INF", @(string) (NAN - -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "NAN", @(string) (INF - NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "INF", @(string) (INF - INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf( "INF"), "-INF", @(string) (INF - -INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "NAN", @(string) (-INF - NAN), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "INF", @(string) (-INF - INF), Decimal::DEFAULT_PRECISION],
++ [Decimal::valueOf("-INF"), "-INF", @(string) (-INF - -INF), Decimal::DEFAULT_PRECISION],
+ ];
+
+ foreach ($tests as $index => $test) {
+diff --git a/tests/Number/helpers/Number.php b/tests/Number/helpers/Number.php
+index 04236a1..a3e46a1 100644
+--- a/tests/Number/helpers/Number.php
++++ b/tests/Number/helpers/Number.php
+@@ -110,7 +110,7 @@ public function toRational(): \Decimal\Rational
+
+ public function toString(): string
+ {
+- return (string) $this->value;
++ return @(string) $this->value;
+ }
+
+ public function toInt(): int
+diff --git a/tests/Number/methods/abs.phpt b/tests/Number/methods/abs.phpt
+index d10c194..a070bac 100644
+--- a/tests/Number/methods/abs.phpt
++++ b/tests/Number/methods/abs.phpt
+@@ -13,7 +13,7 @@ print_r(Number::valueOf("-5")->abs());
+ print_r(Number::valueOf( 5)->abs());
+ print_r(Number::valueOf(-5)->abs());
+
+-print_r(Number::valueOf( NAN)->abs());
++@print_r(Number::valueOf( NAN)->abs());
+ print_r(Number::valueOf( INF)->abs());
+ print_r(Number::valueOf(-INF)->abs());
+
+@@ -57,4 +57,4 @@ Number::mul
+ Number Object
+ (
+ [value:protected] => INF
+-)
+\ No newline at end of file
++)
+diff --git a/tests/Number/methods/ceil.phpt b/tests/Number/methods/ceil.phpt
+index 05c26ea..669d50e 100644
+--- a/tests/Number/methods/ceil.phpt
++++ b/tests/Number/methods/ceil.phpt
+@@ -10,7 +10,7 @@ print_r(Number::valueOf("0")->ceil());
+ print_r(Number::valueOf( "0.1")->ceil());
+ print_r(Number::valueOf("-0.1")->ceil());
+
+-print_r(Number::valueOf( NAN)->ceil());
++@print_r(Number::valueOf( NAN)->ceil());
+ print_r(Number::valueOf( INF)->ceil());
+ print_r(Number::valueOf(-INF)->ceil());
+
+@@ -50,4 +50,4 @@ Number::toDecimal
+ Number Object
+ (
+ [value:protected] => -INF
+-)
+\ No newline at end of file
++)
+diff --git a/tests/Number/methods/floor.phpt b/tests/Number/methods/floor.phpt
+index 26281dc..7690152 100644
+--- a/tests/Number/methods/floor.phpt
++++ b/tests/Number/methods/floor.phpt
+@@ -10,7 +10,7 @@ print_r(Number::valueOf("0")->floor());
+ print_r(Number::valueOf( "0.1")->floor());
+ print_r(Number::valueOf("-0.1")->floor());
+
+-print_r(Number::valueOf( NAN)->floor());
++@print_r(Number::valueOf( NAN)->floor());
+ print_r(Number::valueOf( INF)->floor());
+ print_r(Number::valueOf(-INF)->floor());
+
+@@ -50,4 +50,4 @@ Number::toDecimal
+ Number Object
+ (
+ [value:protected] => -INF
+-)
+\ No newline at end of file
++)
+diff --git a/tests/Number/methods/trunc.phpt b/tests/Number/methods/trunc.phpt
+index d79104d..2fca527 100644
+--- a/tests/Number/methods/trunc.phpt
++++ b/tests/Number/methods/trunc.phpt
+@@ -10,7 +10,7 @@ print_r(Number::valueOf("0")->trunc());
+ print_r(Number::valueOf( "0.1")->trunc());
+ print_r(Number::valueOf("-0.1")->trunc());
+
+-print_r(Number::valueOf( NAN)->trunc());
++@print_r(Number::valueOf( NAN)->trunc());
+ print_r(Number::valueOf( INF)->trunc());
+ print_r(Number::valueOf(-INF)->trunc());
+
+@@ -50,4 +50,4 @@ Number::toDecimal
+ Number Object
+ (
+ [value:protected] => -INF
+-)
+\ No newline at end of file
++)
+diff --git a/tests/Rational/cast.phpt b/tests/Rational/cast.phpt
+index 7a19552..53be09f 100644
+--- a/tests/Rational/cast.phpt
++++ b/tests/Rational/cast.phpt
+@@ -55,7 +55,7 @@ $tests = [
+ [(float) Rational::valueOf("1234.5678E+9"), 1.2345678E+12],
+ [(float) Rational::valueOf("1234.5678E+90"), 1.2345678E+93],
+
+- [(string) (float) Rational::valueOf( "NAN"), "NAN"],
++ [@(string) (float) Rational::valueOf( "NAN"), "NAN"],
+ [(string) (float) Rational::valueOf( "INF"), "INF"],
+ [(string) (float) Rational::valueOf("-INF"), "-INF"],
+
+diff --git a/tests/Rational/methods/add.phpt b/tests/Rational/methods/add.phpt
+index 4e36bcf..7b70e85 100644
+--- a/tests/Rational/methods/add.phpt
++++ b/tests/Rational/methods/add.phpt
+@@ -33,15 +33,15 @@ $tests = [
+ [Rational::valueOf(-1), "-1.5", "-5/2"],
+
+ /* Special numbers */
+- [Rational::valueOf( "NAN"), "NAN", (string) (NAN + NAN)],
+- [Rational::valueOf( "NAN"), "INF", (string) (NAN + INF)],
+- [Rational::valueOf( "NAN"), "-INF", (string) (NAN + -INF)],
+- [Rational::valueOf( "INF"), "NAN", (string) (INF + NAN)],
+- [Rational::valueOf( "INF"), "INF", (string) (INF + INF)],
+- [Rational::valueOf( "INF"), "-INF", (string) (INF + -INF)],
+- [Rational::valueOf("-INF"), "NAN", (string) (-INF + NAN)],
+- [Rational::valueOf("-INF"), "INF", (string) (-INF + INF)],
+- [Rational::valueOf("-INF"), "-INF", (string) (-INF + -INF)],
++ [Rational::valueOf( "NAN"), "NAN", @(string) (NAN + NAN)],
++ [Rational::valueOf( "NAN"), "INF", @(string) (NAN + INF)],
++ [Rational::valueOf( "NAN"), "-INF", @(string) (NAN + -INF)],
++ [Rational::valueOf( "INF"), "NAN", @(string) (INF + NAN)],
++ [Rational::valueOf( "INF"), "INF", @(string) (INF + INF)],
++ [Rational::valueOf( "INF"), "-INF", @(string) (INF + -INF)],
++ [Rational::valueOf("-INF"), "NAN", @(string) (-INF + NAN)],
++ [Rational::valueOf("-INF"), "INF", @(string) (-INF + INF)],
++ [Rational::valueOf("-INF"), "-INF", @(string) (-INF + -INF)],
+ ];
+
+ foreach ($tests as $index => $test) {
+diff --git a/tests/Rational/methods/div.phpt b/tests/Rational/methods/div.phpt
+index c2c45b5..594a59e 100644
+--- a/tests/Rational/methods/div.phpt
++++ b/tests/Rational/methods/div.phpt
+@@ -35,18 +35,18 @@ $tests = [
+ ],
+
+ /* Special numbers */
+- [Rational::valueOf(0), "NAN", (string) (0 / NAN)],
+- [Rational::valueOf(0), "INF", (string) (0 / INF)],
+- [Rational::valueOf(0), "-INF", (string) (0 / -INF)],
+- [Rational::valueOf( "NAN"), "NAN", (string) (NAN / NAN)],
+- [Rational::valueOf( "NAN"), "INF", (string) (NAN / INF)],
+- [Rational::valueOf( "NAN"), "-INF", (string) (NAN / -INF)],
+- [Rational::valueOf( "INF"), "NAN", (string) (INF / NAN)],
+- [Rational::valueOf( "INF"), "INF", (string) (INF / INF)],
+- [Rational::valueOf( "INF"), "-INF", (string) (INF / -INF)],
+- [Rational::valueOf("-INF"), "NAN", (string) (-INF / NAN)],
+- [Rational::valueOf("-INF"), "INF", (string) (-INF / INF)],
+- [Rational::valueOf("-INF"), "-INF", (string) (-INF / -INF)],
++ [Rational::valueOf(0), "NAN", @(string) (0 / NAN)],
++ [Rational::valueOf(0), "INF", @(string) (0 / INF)],
++ [Rational::valueOf(0), "-INF", @(string) (0 / -INF)],
++ [Rational::valueOf( "NAN"), "NAN", @(string) (NAN / NAN)],
++ [Rational::valueOf( "NAN"), "INF", @(string) (NAN / INF)],
++ [Rational::valueOf( "NAN"), "-INF", @(string) (NAN / -INF)],
++ [Rational::valueOf( "INF"), "NAN", @(string) (INF / NAN)],
++ [Rational::valueOf( "INF"), "INF", @(string) (INF / INF)],
++ [Rational::valueOf( "INF"), "-INF", @(string) (INF / -INF)],
++ [Rational::valueOf("-INF"), "NAN", @(string) (-INF / NAN)],
++ [Rational::valueOf("-INF"), "INF", @(string) (-INF / INF)],
++ [Rational::valueOf("-INF"), "-INF", @(string) (-INF / -INF)],
+ ];
+
+ foreach ($tests as $index => $test) {
+diff --git a/tests/Rational/methods/mul.phpt b/tests/Rational/methods/mul.phpt
+index 9bbd889..b7a4075 100644
+--- a/tests/Rational/methods/mul.phpt
++++ b/tests/Rational/methods/mul.phpt
+@@ -32,15 +32,15 @@ $tests = [
+ [Rational::valueOf("-1.5"), "-2.4", "18/5"],
+
+ /* Special numbers */
+- [Rational::valueOf( "NAN"), "NAN", (string) (NAN * NAN)],
+- [Rational::valueOf( "NAN"), "INF", (string) (NAN * INF)],
+- [Rational::valueOf( "NAN"), "-INF", (string) (NAN * -INF)],
+- [Rational::valueOf( "INF"), "NAN", (string) (INF * NAN)],
+- [Rational::valueOf( "INF"), "INF", (string) (INF * INF)],
+- [Rational::valueOf( "INF"), "-INF", (string) (INF * -INF)],
+- [Rational::valueOf("-INF"), "NAN", (string) (-INF * NAN)],
+- [Rational::valueOf("-INF"), "INF", (string) (-INF * INF)],
+- [Rational::valueOf("-INF"), "-INF", (string) (-INF * -INF)],
++ [Rational::valueOf( "NAN"), "NAN", @(string) (NAN * NAN)],
++ [Rational::valueOf( "NAN"), "INF", @(string) (NAN * INF)],
++ [Rational::valueOf( "NAN"), "-INF", @(string) (NAN * -INF)],
++ [Rational::valueOf( "INF"), "NAN", @(string) (INF * NAN)],
++ [Rational::valueOf( "INF"), "INF", @(string) (INF * INF)],
++ [Rational::valueOf( "INF"), "-INF", @(string) (INF * -INF)],
++ [Rational::valueOf("-INF"), "NAN", @(string) (-INF * NAN)],
++ [Rational::valueOf("-INF"), "INF", @(string) (-INF * INF)],
++ [Rational::valueOf("-INF"), "-INF", @(string) (-INF * -INF)],
+
+ [Rational::valueOf( "NAN"), 0, "NAN"],
+ [Rational::valueOf( "INF"), 0, "NAN"],
+diff --git a/tests/Rational/methods/pow.phpt b/tests/Rational/methods/pow.phpt
+index 6b4da2b..f5552dd 100644
+--- a/tests/Rational/methods/pow.phpt
++++ b/tests/Rational/methods/pow.phpt
+@@ -107,7 +107,7 @@ foreach ($tests as $test) {
+ ];
+
+ foreach ($results as $result) {
+- if ((string) $result !== (string) $expect) {
++ if ((string) $result !== @(string) $expect) {
+ print_r(compact("op1", "op2", "result", "expect"));
+ break;
+ }
+diff --git a/tests/Rational/methods/sub.phpt b/tests/Rational/methods/sub.phpt
+index 85d3257..b8e54af 100644
+--- a/tests/Rational/methods/sub.phpt
++++ b/tests/Rational/methods/sub.phpt
+@@ -53,7 +53,7 @@ foreach ($tests as $index => $test) {
+ ];
+
+ foreach ($results as $result) {
+- if ((string) $result !== (string) $expect) {
++ if ((string) $result !== @(string) $expect) {
+ print_r(compact("index", "op1", "op2", "result", "expect"));
+ break;
+ }
diff --git a/php-pecl-decimal.spec b/php-pecl-decimal.spec
index a5c523f..adfdbb1 100644
--- a/php-pecl-decimal.spec
+++ b/php-pecl-decimal.spec
@@ -35,6 +35,8 @@ Release: 1%{?dist}
URL: %{forgeurl}
Source0: %{forgesource}
+Patch0: 95.patch
+
BuildRequires: make
BuildRequires: %{?dtsprefix}gcc
BuildRequires: %{?scl_prefix}php-devel >= 8.2
@@ -63,6 +65,7 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO
%prep
%forgesetup
+%patch -P0 -p1
# Sanity check, really often broken
extver=$(sed -n '/#define PHP_DECIMAL_VERSION/{s/.* "//;s/".*$//;p}' php_decimal.h)
@@ -159,6 +162,8 @@ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \
* Sun Apr 12 2026 Remi Collet <remi@remirepo.net> - 2.0.1-1
- update to 2.0.1
- drop support for PHP < 8.2
+- fix test suite with PHP 8.5 using patch from
+ https://github.com/php-decimal/ext-decimal/pull/95
* Sun Apr 12 2026 Remi Collet <remi@remirepo.net> - 1.5.3-1
- update to 1.5.3