添加更多單元測試

pull/1/head
韩天峰 8 months ago
parent 4f095c301d
commit 4dd4b61218
  1. 33
      tests/zend/trigger_error_basic.phpt
  2. 148
      tests/zend/zend_signed_multiply-64bit-2.phpt
  3. 14
      tests/zend/zend_signed_multiply-64bit.phpt
  4. 19
      tests/zend/zend_strtod.phpt

@ -0,0 +1,33 @@
--TEST--
trigger_error() tests
--FILE--
<?php
var_dump(trigger_error("error"));
try {
var_dump(trigger_error("error", -1));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
try {
var_dump(trigger_error("error", 0));
} catch (\ValueError $e) {
echo $e->getMessage() . \PHP_EOL;
}
var_dump(trigger_error("error", E_USER_WARNING));
var_dump(trigger_error("error", E_USER_DEPRECATED));
?>
--EXPECTF--
Notice: error in %s on line %d
bool(true)
trigger_error(): Argument #2 ($error_level) must be one of E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, or E_USER_DEPRECATED
trigger_error(): Argument #2 ($error_level) must be one of E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, or E_USER_DEPRECATED
Warning: error in %s on line %d
bool(true)
Deprecated: error in %s on line %d
bool(true)

@ -0,0 +1,148 @@
--TEST--
Zend signed multiply 64-bit, variation 2
--SKIPIF--
<?php if ((1 << 31) < 0) print "skip Running on 32-bit target"; ?>
--FILE--
<?php
for($c = -16; $c < 0; $c++) {
var_dump($c, intdiv(PHP_INT_MIN, 10), intdiv(PHP_INT_MIN, 10) * $c);
echo "-----------\n";
}
for($c = 0; $c <= 16; $c++) {
var_dump($c, intdiv(PHP_INT_MAX, 10), intdiv(PHP_INT_MAX, 10) * $c);
echo "-----------\n";
}
?>
--EXPECT--
int(-16)
int(-922337203685477580)
float(1.4757395258967642E+19)
-----------
int(-15)
int(-922337203685477580)
float(1.3835058055282164E+19)
-----------
int(-14)
int(-922337203685477580)
float(1.2912720851596687E+19)
-----------
int(-13)
int(-922337203685477580)
float(1.1990383647911209E+19)
-----------
int(-12)
int(-922337203685477580)
float(1.1068046444225733E+19)
-----------
int(-11)
int(-922337203685477580)
float(1.0145709240540254E+19)
-----------
int(-10)
int(-922337203685477580)
int(9223372036854775800)
-----------
int(-9)
int(-922337203685477580)
int(8301034833169298220)
-----------
int(-8)
int(-922337203685477580)
int(7378697629483820640)
-----------
int(-7)
int(-922337203685477580)
int(6456360425798343060)
-----------
int(-6)
int(-922337203685477580)
int(5534023222112865480)
-----------
int(-5)
int(-922337203685477580)
int(4611686018427387900)
-----------
int(-4)
int(-922337203685477580)
int(3689348814741910320)
-----------
int(-3)
int(-922337203685477580)
int(2767011611056432740)
-----------
int(-2)
int(-922337203685477580)
int(1844674407370955160)
-----------
int(-1)
int(-922337203685477580)
int(922337203685477580)
-----------
int(0)
int(922337203685477580)
int(0)
-----------
int(1)
int(922337203685477580)
int(922337203685477580)
-----------
int(2)
int(922337203685477580)
int(1844674407370955160)
-----------
int(3)
int(922337203685477580)
int(2767011611056432740)
-----------
int(4)
int(922337203685477580)
int(3689348814741910320)
-----------
int(5)
int(922337203685477580)
int(4611686018427387900)
-----------
int(6)
int(922337203685477580)
int(5534023222112865480)
-----------
int(7)
int(922337203685477580)
int(6456360425798343060)
-----------
int(8)
int(922337203685477580)
int(7378697629483820640)
-----------
int(9)
int(922337203685477580)
int(8301034833169298220)
-----------
int(10)
int(922337203685477580)
int(9223372036854775800)
-----------
int(11)
int(922337203685477580)
float(1.0145709240540254E+19)
-----------
int(12)
int(922337203685477580)
float(1.1068046444225733E+19)
-----------
int(13)
int(922337203685477580)
float(1.1990383647911209E+19)
-----------
int(14)
int(922337203685477580)
float(1.2912720851596687E+19)
-----------
int(15)
int(922337203685477580)
float(1.3835058055282164E+19)
-----------
int(16)
int(922337203685477580)
float(1.4757395258967642E+19)
-----------

@ -0,0 +1,14 @@
--TEST--
Zend signed multiply 64-bit, variation 1
--SKIPIF--
<?php if ((1 << 31) < 0) print "skip Running on 32-bit target"; ?>
--FILE--
<?php
var_dump(0x80000000 * -0xffffffff);
var_dump(0x80000001 * 0xfffffffe);
var_dump(0x80000001 * -0xffffffff);
?>
--EXPECT--
int(-9223372034707292160)
int(9223372036854775806)
int(9223372034707292161)

@ -0,0 +1,19 @@
--TEST--
zend_strtod() leaks on big doubles
--INI--
precision=14
--FILE--
<?php
var_dump("1139932690.21688500" - "1139932790.21688500");
var_dump("1139932690000.21688500" - "331139932790.21688500");
var_dump("339932690.21688500" - "4564645646456463461139932790.21688500");
var_dump("123123139932690.21688500" - "11399327900000000.21688500");
echo "Done\n";
?>
--EXPECT--
float(-100)
float(808792757210)
float(-4.5646456464564635E+27)
float(-11276204760067310)
Done
Loading…
Cancel
Save