Skip to content

Commit a117e6b

Browse files
committed
Add tests for bug #66872 and gmp_[rem]root
1 parent 03e9878 commit a117e6b

File tree

2 files changed

+158
-0
lines changed

2 files changed

+158
-0
lines changed

ext/gmp/tests/041.phpt

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
--TEST--
2+
gmp_root() and gmp_rootrem() basic tests
3+
--SKIPIF--
4+
<?php if (!extension_loaded("gmp")) print "skip"; ?>
5+
--FILE--
6+
<?php
7+
8+
var_dump(gmp_root(1000, 3));
9+
var_dump(gmp_root(100, 3));
10+
var_dump(gmp_root(-100, 3));
11+
12+
var_dump(gmp_root(1000, 4));
13+
var_dump(gmp_root(100, 4));
14+
var_dump(gmp_root(-100, 4));
15+
16+
var_dump(gmp_root(0, 3));
17+
var_dump(gmp_root(100, 0));
18+
var_dump(gmp_root(100, -3));
19+
20+
var_dump(gmp_rootrem(1000, 3));
21+
var_dump(gmp_rootrem(100, 3));
22+
var_dump(gmp_rootrem(-100, 3));
23+
24+
var_dump(gmp_rootrem(1000, 4));
25+
var_dump(gmp_rootrem(100, 4));
26+
var_dump(gmp_rootrem(-100, 4));
27+
28+
var_dump(gmp_rootrem(0, 3));
29+
var_dump(gmp_rootrem(100, 0));
30+
var_dump(gmp_rootrem(100, -3));
31+
32+
?>
33+
--EXPECTF--
34+
object(GMP)#%d (1) {
35+
["num"]=>
36+
string(2) "10"
37+
}
38+
object(GMP)#%d (1) {
39+
["num"]=>
40+
string(1) "4"
41+
}
42+
object(GMP)#%d (1) {
43+
["num"]=>
44+
string(2) "-4"
45+
}
46+
object(GMP)#%d (1) {
47+
["num"]=>
48+
string(1) "5"
49+
}
50+
object(GMP)#%d (1) {
51+
["num"]=>
52+
string(1) "3"
53+
}
54+
55+
Warning: gmp_root(): Can't take even root of negative number in %s on line %d
56+
bool(false)
57+
object(GMP)#%d (1) {
58+
["num"]=>
59+
string(1) "0"
60+
}
61+
62+
Warning: gmp_root(): The root must be positive in %s on line %d
63+
bool(false)
64+
65+
Warning: gmp_root(): The root must be positive in %s on line %d
66+
bool(false)
67+
array(2) {
68+
[0]=>
69+
object(GMP)#%d (1) {
70+
["num"]=>
71+
string(2) "10"
72+
}
73+
[1]=>
74+
object(GMP)#%d (1) {
75+
["num"]=>
76+
string(1) "0"
77+
}
78+
}
79+
array(2) {
80+
[0]=>
81+
object(GMP)#%d (1) {
82+
["num"]=>
83+
string(1) "4"
84+
}
85+
[1]=>
86+
object(GMP)#%d (1) {
87+
["num"]=>
88+
string(2) "36"
89+
}
90+
}
91+
array(2) {
92+
[0]=>
93+
object(GMP)#%d (1) {
94+
["num"]=>
95+
string(2) "-4"
96+
}
97+
[1]=>
98+
object(GMP)#%d (1) {
99+
["num"]=>
100+
string(2) "36"
101+
}
102+
}
103+
array(2) {
104+
[0]=>
105+
object(GMP)#%d (1) {
106+
["num"]=>
107+
string(1) "5"
108+
}
109+
[1]=>
110+
object(GMP)#%d (1) {
111+
["num"]=>
112+
string(3) "375"
113+
}
114+
}
115+
array(2) {
116+
[0]=>
117+
object(GMP)#%d (1) {
118+
["num"]=>
119+
string(1) "3"
120+
}
121+
[1]=>
122+
object(GMP)#%d (1) {
123+
["num"]=>
124+
string(2) "19"
125+
}
126+
}
127+
128+
Warning: gmp_rootrem(): Can't take even root of negative number in %s on line %d
129+
bool(false)
130+
array(2) {
131+
[0]=>
132+
object(GMP)#%d (1) {
133+
["num"]=>
134+
string(1) "0"
135+
}
136+
[1]=>
137+
object(GMP)#%d (1) {
138+
["num"]=>
139+
string(1) "0"
140+
}
141+
}
142+
143+
Warning: gmp_rootrem(): The root must be positive in %s on line %d
144+
bool(false)
145+
146+
Warning: gmp_rootrem(): The root must be positive in %s on line %d
147+
bool(false)

ext/gmp/tests/bug66872.phpt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--TEST--
2+
Bug #66872: Crash when passing string to gmp_testbit
3+
--FILE--
4+
<?php
5+
6+
var_dump(gmp_testbit("abc", 1));
7+
8+
?>
9+
--EXPECTF--
10+
Warning: gmp_testbit(): Unable to convert variable to GMP - string is not an integer in %s on line %d
11+
bool(false)

0 commit comments

Comments
 (0)