Skip to content

Commit 2f2ee46

Browse files
committed
pcre fixes
1 parent 56d6635 commit 2f2ee46

12 files changed

+72
-135
lines changed

ext/pcre/tests/002.phpt

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@ preg_* with bogus vals
33
--FILE--
44
<?php
55

6-
var_dump(preg_match());
7-
var_dump(preg_match_all());
86
var_dump(preg_match_all('//', '', $dummy, 0xdead));
97

10-
var_dump(preg_quote());
118
var_dump(preg_quote(''));
129

1310
var_dump(preg_replace('/(.)/', '${1}${1', 'abc'));
@@ -16,22 +13,13 @@ var_dump(preg_replace('/(.)/e', 'for ($', 'abc'));
1613

1714
?>
1815
--EXPECTF--
19-
Warning: preg_match() expects at least 2 parameters, 0 given in %s002.php on line 3
20-
bool(false)
21-
22-
Warning: preg_match_all() expects at least 2 parameters, 0 given in %s002.php on line 4
23-
bool(false)
24-
25-
Warning: preg_match_all(): Invalid flags specified in %s002.php on line 5
26-
NULL
27-
28-
Warning: preg_quote() expects at least 1 parameter, 0 given in %s002.php on line 7
16+
Warning: preg_match_all(): Invalid flags specified in %s002.php on line %d
2917
NULL
3018
string(0) ""
3119
string(12) "a${1b${1c${1"
3220

33-
Warning: preg_replace(): Compilation failed: missing terminating ] for character class at offset 8 in %s002.php on line 11
21+
Warning: preg_replace(): Compilation failed: missing terminating ] for character class at offset 8 in %s002.php on line %d
3422
NULL
3523

36-
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in %s on line 12
24+
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in %s on line %d
3725
NULL

ext/pcre/tests/grep2.phpt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@ preg_grep() 2nd test
55
--FILE--
66
<?php
77

8-
var_dump(preg_grep(1,array(),3,4));
9-
var_dump(preg_grep(1, 2));
108
var_dump(preg_grep('/+/', array()));
119

1210
$array = array(5=>'a', 'x' => '1', 'xyz'=>'q6', 'h20');
@@ -21,13 +19,7 @@ var_dump(preg_last_error() == PREG_RECURSION_LIMIT_ERROR);
2119

2220
?>
2321
--EXPECTF--
24-
Warning: preg_grep() expects at most 3 parameters, 4 given in %sgrep2.php on line 3
25-
NULL
26-
27-
Warning: preg_grep() expects parameter 2 to be array, int given in %sgrep2.php on line 4
28-
NULL
29-
30-
Warning: preg_grep(): Compilation failed: quantifier does not follow a repeatable item at offset 0 in %sgrep2.php on line 5
22+
Warning: preg_grep(): Compilation failed: quantifier does not follow a repeatable item at offset 0 in %sgrep2.php on line %d
3123
bool(false)
3224
array(3) {
3325
[5]=>

ext/pcre/tests/preg_grep_error1.phpt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,18 @@ $values = array('abcdef', //Regex without delimiter
2020
$array = array(123, 'abc', 'test');
2121
foreach($values as $value) {
2222
print "\nArg value is $value\n";
23-
var_dump(preg_grep($value, $array));
23+
try {
24+
var_dump(preg_grep($value, $array));
25+
} catch (TypeError $e) {
26+
echo $e->getMessage(), "\n";
27+
}
2428
}
2529
$value = new stdclass(); //Object
26-
var_dump(preg_grep($value, $array));
30+
try {
31+
var_dump(preg_grep($value, $array));
32+
} catch (TypeError $e) {
33+
echo $e->getMessage(), "\n";
34+
}
2735
echo "Done"
2836
?>
2937
--EXPECTF--
@@ -50,9 +58,7 @@ Warning: preg_grep(): Unknown modifier 'F' in %spreg_grep_error1.php on line %d
5058
bool(false)
5159

5260
Arg value is Array
53-
54-
Warning: preg_grep() expects parameter 1 to be string, array given in %spreg_grep_error1.php on line %d
55-
NULL
61+
preg_grep() expects parameter 1 to be string, array given
5662

5763
Arg value is /[a-zA-Z]/
5864
array(2) {
@@ -61,7 +67,5 @@ array(2) {
6167
[2]=>
6268
string(4) "test"
6369
}
64-
65-
Warning: preg_grep() expects parameter 1 to be string, object given in %spreg_grep_error1.php on line %d
66-
NULL
70+
preg_grep() expects parameter 1 to be string, object given
6771
Done

ext/pcre/tests/preg_match_all_error1.phpt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,19 @@ $regex_array = array('abcdef', //Regex without delimiter
2020
$subject = 'test';
2121
foreach($regex_array as $regex_value) {
2222
print "\nArg value is $regex_value\n";
23-
var_dump(preg_match_all($regex_value, $subject, $matches1));
23+
try {
24+
var_dump(preg_match_all($regex_value, $subject, $matches1));
25+
} catch (TypeError $e) {
26+
echo $e->getMessage(), "\n";
27+
}
2428
var_dump($matches1);
2529
}
2630
$regex_value = new stdclass(); //Object
27-
var_dump(preg_match_all($regex_value, $subject, $matches));
31+
try {
32+
var_dump(preg_match_all($regex_value, $subject, $matches));
33+
} catch (TypeError $e) {
34+
echo $e->getMessage(), "\n";
35+
}
2836
var_dump($matches);
2937
?>
3038
--EXPECTF--
@@ -55,9 +63,7 @@ bool(false)
5563
NULL
5664

5765
Arg value is Array
58-
59-
Warning: preg_match_all() expects parameter 1 to be string, array given in %spreg_match_all_error1.php on line %d
60-
bool(false)
66+
preg_match_all() expects parameter 1 to be string, array given
6167
NULL
6268

6369
Arg value is /[a-zA-Z]/
@@ -75,7 +81,5 @@ array(1) {
7581
string(1) "t"
7682
}
7783
}
78-
79-
Warning: preg_match_all() expects parameter 1 to be string, object given in %spreg_match_all_error1.php on line %d
80-
bool(false)
84+
preg_match_all() expects parameter 1 to be string, object given
8185
NULL

ext/pcre/tests/preg_match_all_error2.phpt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,22 @@ var_dump($matches);
1818
$input = array(array('this is', 'a subarray'), 'test',);
1919
foreach($input as $value) {
2020
print "\nArg value is: $value\n";
21-
var_dump(preg_match_all($regex, $value, $matches));
21+
try {
22+
var_dump(preg_match_all($regex, $value, $matches));
23+
} catch (TypeError $e) {
24+
echo $e->getMessage(), "\n";
25+
}
2226
var_dump($matches);
2327
}
2428
echo "Done";
2529
?>
2630
--EXPECTF--
2731
*** Testing preg_match_all() : error conditions ***
28-
29-
Warning: preg_match_all() expects parameter 2 to be string, object given in %spreg_match_all_error2.php on line %d
30-
bool(false)
32+
preg_match_all() expects parameter 2 to be string, object given
3133
NULL
3234

3335
Arg value is: Array
34-
35-
Warning: preg_match_all() expects parameter 2 to be string, array given in %spreg_match_all_error2.php on line %d
36-
bool(false)
36+
preg_match_all() expects parameter 2 to be string, array given
3737
NULL
3838

3939
Arg value is: test

ext/pcre/tests/preg_match_error1.phpt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,18 @@ $regex_array = array('abcdef', //Regex without delimiter
2020
$subject = 'this is a test';
2121
foreach($regex_array as $regex_value) {
2222
print "\nArg value is $regex_value\n";
23-
var_dump(preg_match($regex_value, $subject));
23+
try {
24+
var_dump(preg_match($regex_value, $subject));
25+
} catch (TypeError $e) {
26+
echo $e->getMessage(), "\n";
27+
}
2428
}
2529
$regex_value = new stdclass(); //Object
26-
var_dump(preg_match($regex_value, $subject));
30+
try {
31+
var_dump(preg_match($regex_value, $subject));
32+
} catch (TypeError $e) {
33+
echo $e->getMessage(), "\n";
34+
}
2735
?>
2836
--EXPECTF--
2937
*** Testing preg_match() : error conditions ***
@@ -49,12 +57,8 @@ Warning: preg_match(): Unknown modifier 'F' in %spreg_match_error1.php on line %
4957
bool(false)
5058

5159
Arg value is Array
52-
53-
Warning: preg_match() expects parameter 1 to be string, array given in %spreg_match_error1.php on line %d
54-
bool(false)
60+
preg_match() expects parameter 1 to be string, array given
5561

5662
Arg value is /[a-zA-Z]/
5763
int(1)
58-
59-
Warning: preg_match() expects parameter 1 to be string, object given in %spreg_match_error1.php on line %d
60-
bool(false)
64+
preg_match() expects parameter 1 to be string, object given

ext/pcre/tests/preg_match_error2.phpt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,18 @@ $regex = '/[a-zA-Z]/';
1515
$input = array('this is a string', array('this is', 'a subarray'),);
1616
foreach($input as $value) {
1717
print "\nArg value is: $value\n";
18-
var_dump(preg_match($regex, $value));
18+
try {
19+
var_dump(preg_match($regex, $value));
20+
} catch (TypeError $e) {
21+
echo $e->getMessage(), "\n";
22+
}
1923
}
2024
$value = new stdclass(); //Object
21-
var_dump(preg_match($regex, $value));
25+
try {
26+
var_dump(preg_match($regex, $value));
27+
} catch (TypeError $e) {
28+
echo $e->getMessage(), "\n";
29+
}
2230
echo "Done";
2331
?>
2432
--EXPECTF--
@@ -28,10 +36,6 @@ Arg value is: this is a string
2836
int(1)
2937

3038
Arg value is: Array
31-
32-
Warning: preg_match() expects parameter 2 to be string, array given in %spreg_match_error2.php on line %d
33-
bool(false)
34-
35-
Warning: preg_match() expects parameter 2 to be string, object given in %spreg_match_error2.php on line %d
36-
bool(false)
39+
preg_match() expects parameter 2 to be string, array given
40+
preg_match() expects parameter 2 to be string, object given
3741
Done

ext/pcre/tests/preg_replace_callback3.phpt

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,14 @@ preg_replace_callback() 3
33
--FILE--
44
<?php
55

6-
var_dump(preg_replace_callback());
7-
var_dump(preg_replace_callback(1));
8-
var_dump(preg_replace_callback(1,2));
96
var_dump(preg_replace_callback(1,2,3));
107
var_dump(preg_replace_callback(1,2,3,4));
118
$a = 5;
129
var_dump(preg_replace_callback(1,2,3,4,$a));
13-
$a = "";
14-
var_dump(preg_replace_callback("","","","",$a));
15-
$a = array();
16-
var_dump(preg_replace_callback($a,$a,$a,$a,$a));
1710

1811
echo "Done\n";
1912
?>
2013
--EXPECTF--
21-
Warning: preg_replace_callback() expects at least 3 parameters, 0 given in %s on line %d
22-
NULL
23-
24-
Warning: preg_replace_callback() expects at least 3 parameters, 1 given in %s on line %d
25-
NULL
26-
27-
Warning: preg_replace_callback() expects at least 3 parameters, 2 given in %s on line %d
28-
NULL
29-
3014
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
3115
string(1) "3"
3216

@@ -35,10 +19,4 @@ string(1) "3"
3519

3620
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
3721
string(1) "3"
38-
39-
Warning: preg_replace_callback() expects parameter 4 to be int, string given in %s on line %d
40-
NULL
41-
42-
Warning: preg_replace_callback() expects parameter 4 to be int, array given in %s on line %d
43-
NULL
4422
Done

ext/pcre/tests/preg_replace_callback_array2.phpt

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,8 @@ preg_replace_callback_array() errors
33
--FILE--
44
<?php
55

6-
var_dump(preg_replace_callback_array());
7-
var_dump(preg_replace_callback_array(1));
8-
var_dump(preg_replace_callback_array(1,2));
9-
var_dump(preg_replace_callback_array(1,2,3));
10-
$a = 5;
11-
var_dump(preg_replace_callback_array(1,2,3,$a));
12-
$a = "";
13-
var_dump(preg_replace_callback_array(array("" => ""),"","",$a));
146
$a = array();
157
$b = "";
16-
var_dump(preg_replace_callback($a, $a, $a, $a, $b));
17-
var_dump($b);
18-
$b = "";
198
var_dump(preg_replace_callback_array(array("xx" => "s"), $a, -1, $b));
209
var_dump($b);
2110
function f() {
@@ -34,28 +23,6 @@ try {
3423
echo "Done\n";
3524
?>
3625
--EXPECTF--
37-
Warning: preg_replace_callback_array() expects at least 2 parameters, 0 given in %s on line %d
38-
NULL
39-
40-
Warning: preg_replace_callback_array() expects at least 2 parameters, 1 given in %s on line %d
41-
NULL
42-
43-
Warning: preg_replace_callback_array() expects parameter 1 to be array, int given in %s on line %d
44-
NULL
45-
46-
Warning: preg_replace_callback_array() expects parameter 1 to be array, int given in %s on line %d
47-
NULL
48-
49-
Warning: preg_replace_callback_array() expects parameter 1 to be array, int given in %s on line %d
50-
NULL
51-
52-
Warning: preg_replace_callback_array() expects parameter 3 to be int, string given in %s on line %d
53-
NULL
54-
55-
Warning: preg_replace_callback() expects parameter 4 to be int, array given in %s on line %d
56-
NULL
57-
string(0) ""
58-
5926
Warning: preg_replace_callback_array(): 's' is not a valid callback in %spreg_replace_callback_array2.php on line %d
6027
array(0) {
6128
}

ext/pcre/tests/preg_split_error1.phpt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,18 @@ $regex_array = array('abcdef', //Regex without delimiter
2020
$subject = '1 2 a 3 4 b 5 6';
2121
foreach($regex_array as $regex_value) {
2222
print "\nArg value is $regex_value\n";
23-
var_dump(preg_split($regex_value, $subject));
23+
try {
24+
var_dump(preg_split($regex_value, $subject));
25+
} catch (TypeError $e) {
26+
echo $e->getMessage(), "\n";
27+
}
2428
}
2529
$regex_value = new stdclass(); //Object
26-
var_dump(preg_split($regex_value, $subject));
30+
try {
31+
var_dump(preg_split($regex_value, $subject));
32+
} catch (TypeError $e) {
33+
echo $e->getMessage(), "\n";
34+
}
2735
?>
2836
--EXPECTF--
2937
*** Testing preg_split() : error conditions ***
@@ -49,9 +57,7 @@ Warning: preg_split(): Unknown modifier 'F' in %spreg_split_error1.php on line %
4957
bool(false)
5058

5159
Arg value is Array
52-
53-
Warning: preg_split() expects parameter 1 to be string, array given in %spreg_split_error1.php on line %d
54-
bool(false)
60+
preg_split() expects parameter 1 to be string, array given
5561

5662
Arg value is /[a-zA-Z]/
5763
array(3) {
@@ -62,6 +68,4 @@ array(3) {
6268
[2]=>
6369
string(4) " 5 6"
6470
}
65-
66-
Warning: preg_split() expects parameter 1 to be string, object given in %spreg_split_error1.php on line %d
67-
bool(false)
71+
preg_split() expects parameter 1 to be string, object given

0 commit comments

Comments
 (0)