com php-src: Add tests for bug #66872 and gmp_[rem]root : ext/gmp/tests/041.phpt ext/gmp/tests/bug66 872.phpt
| From: | Nikita Popov | Date: | Tue, 11 Mar 2014 13:06:12 +0000 |
| Subject: | com php-src: Add tests for bug #66872 and gmp_[rem]root : ext/gmp/tests/041.phpt ext/gmp/tests/bug66 872.phpt | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-76441@lists.php.net to get a copy of this message | ||
Commit: a117e6b93740e1c05ba8926c3f8938a9ad0cb631
Author: Nikita Popov <nikic@php.net> Tue, 11 Mar 2014 13:28:26 +0100
Parents: 03e9878c782480c6201102ac501a0640def06ccb
Branches: PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=a117e6b93740e1c05ba8926c3f8938a9ad0cb631
Log:
Add tests for bug #66872 and gmp_[rem]root
Bugs:
https://bugs.php.net/66872
Changed paths:
A ext/gmp/tests/041.phpt
A ext/gmp/tests/bug66872.phpt
Diff:
diff --git a/ext/gmp/tests/041.phpt b/ext/gmp/tests/041.phpt
new file mode 100644
index 0000000..6e6d959
--- /dev/null
+++ b/ext/gmp/tests/041..phpt
@@ -0,0 +1,147 @@
+--TEST--
+gmp_root() and gmp_rootrem() basic tests
+--SKIPIF--
+<?php if (!extension_loaded("gmp")) print "skip"; ?>
+--FILE--
+<?php
+
+var_dump(gmp_root(1000, 3));
+var_dump(gmp_root(100, 3));
+var_dump(gmp_root(-100, 3));
+
+var_dump(gmp_root(1000, 4));
+var_dump(gmp_root(100, 4));
+var_dump(gmp_root(-100, 4));
+
+var_dump(gmp_root(0, 3));
+var_dump(gmp_root(100, 0));
+var_dump(gmp_root(100, -3));
+
+var_dump(gmp_rootrem(1000, 3));
+var_dump(gmp_rootrem(100, 3));
+var_dump(gmp_rootrem(-100, 3));
+
+var_dump(gmp_rootrem(1000, 4));
+var_dump(gmp_rootrem(100, 4));
+var_dump(gmp_rootrem(-100, 4));
+
+var_dump(gmp_rootrem(0, 3));
+var_dump(gmp_rootrem(100, 0));
+var_dump(gmp_rootrem(100, -3));
+
+?>
+--EXPECTF--
+object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "10"
+}
+object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "4"
+}
+object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "-4"
+}
+object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "5"
+}
+object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "3"
+}
+
+Warning: gmp_root(): Can't take even root of negative number in %s on line %d
+bool(false)
+object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "0"
+}
+
+Warning: gmp_root(): The root must be positive in %s on line %d
+bool(false)
+
+Warning: gmp_root(): The root must be positive in %s on line %d
+bool(false)
+array(2) {
+ [0]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "10"
+ }
+ [1]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "0"
+ }
+}
+array(2) {
+ [0]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "4"
+ }
+ [1]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "36"
+ }
+}
+array(2) {
+ [0]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "-4"
+ }
+ [1]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "36"
+ }
+}
+array(2) {
+ [0]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "5"
+ }
+ [1]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(3) "375"
+ }
+}
+array(2) {
+ [0]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "3"
+ }
+ [1]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(2) "19"
+ }
+}
+
+Warning: gmp_rootrem(): Can't take even root of negative number in %s on line %d
+bool(false)
+array(2) {
+ [0]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "0"
+ }
+ [1]=>
+ object(GMP)#%d (1) {
+ ["num"]=>
+ string(1) "0"
+ }
+}
+
+Warning: gmp_rootrem(): The root must be positive in %s on line %d
+bool(false)
+
+Warning: gmp_rootrem(): The root must be positive in %s on line %d
+bool(false)
diff --git a/ext/gmp/tests/bug66872.phpt b/ext/gmp/tests/bug66872.phpt
new file mode 100644
index 0000000..715b7ba
--- /dev/null
+++ b/ext/gmp/tests/bug66872.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #66872: Crash when passing string to gmp_testbit
+--FILE--
+<?php
+
+var_dump(gmp_testbit("abc", 1));
+
+?>
+--EXPECTF--
+Warning: gmp_testbit(): Unable to convert variable to GMP - string is not an integer in %s on line
%d
+bool(false)