summaryrefslogtreecommitdiff
path: root/ext/standard/tests/array/bug35014_64bit.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/array/bug35014_64bit.phpt')
-rw-r--r--ext/standard/tests/array/bug35014_64bit.phpt36
1 files changed, 36 insertions, 0 deletions
diff --git a/ext/standard/tests/array/bug35014_64bit.phpt b/ext/standard/tests/array/bug35014_64bit.phpt
new file mode 100644
index 000000000..a5b8da8a3
--- /dev/null
+++ b/ext/standard/tests/array/bug35014_64bit.phpt
@@ -0,0 +1,36 @@
+--TEST--
+Bug #35014 (array_product() always returns 0) (64bit)
+--SKIPIF--
+<?php if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); ?>
+--INI--
+precision=14
+--FILE--
+<?php
+$tests = array(
+ 'foo',
+ array(),
+ array(0),
+ array(3),
+ array(3, 3),
+ array(0.5, 2),
+ array(99999999, 99999999),
+ array(8.993, 7443241,988, sprintf("%u", -1)+0.44),
+ array(2,sprintf("%u", -1)),
+);
+
+foreach ($tests as $v) {
+ var_dump(array_product($v));
+}
+?>
+--EXPECTF--
+
+Warning: array_product(): The argument should be an array in %s on line %d
+NULL
+int(0)
+int(0)
+int(3)
+int(9)
+float(1)
+int(9999999800000001)
+float(2.8404260053903E+20)
+int(8589934590)