Skip to content

Commit 55a3e5b

Browse files
committed
Promote some warnings to Errors in Zend basic functions
Closes GH-5325
1 parent 9ec7265 commit 55a3e5b

21 files changed

+323
-228
lines changed

Zend/tests/002.phpt

Lines changed: 70 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,53 @@ func_get_arg() tests
44
<?php
55

66
function test1() {
7-
var_dump(func_get_arg(-10));
8-
var_dump(func_get_arg(0));
9-
var_dump(func_get_arg(1));
7+
try {
8+
var_dump(func_get_arg(-10));
9+
} catch (\ValueError $e) {
10+
echo $e->getMessage() . \PHP_EOL;
11+
}
12+
13+
try {
14+
var_dump(func_get_arg(0));
15+
} catch (\Error $e) {
16+
echo $e->getMessage() . \PHP_EOL;
17+
}
18+
try {
19+
var_dump(func_get_arg(1));
20+
} catch (\Error $e) {
21+
echo $e->getMessage() . \PHP_EOL;
22+
}
1023
}
1124

1225
function test2($a) {
13-
var_dump(func_get_arg(0));
14-
var_dump(func_get_arg(1));
26+
try {
27+
var_dump(func_get_arg(0));
28+
} catch (\Error $e) {
29+
echo $e->getMessage() . \PHP_EOL;
30+
}
31+
try {
32+
var_dump(func_get_arg(1));
33+
} catch (\Error $e) {
34+
echo $e->getMessage() . \PHP_EOL;
35+
}
1536
}
1637

1738
function test3($a, $b) {
18-
var_dump(func_get_arg(0));
19-
var_dump(func_get_arg(1));
20-
var_dump(func_get_arg(2));
39+
try {
40+
var_dump(func_get_arg(0));
41+
} catch (\Error $e) {
42+
echo $e->getMessage() . \PHP_EOL;
43+
}
44+
try {
45+
var_dump(func_get_arg(1));
46+
} catch (\Error $e) {
47+
echo $e->getMessage() . \PHP_EOL;
48+
}
49+
try {
50+
var_dump(func_get_arg(2));
51+
} catch (\Error $e) {
52+
echo $e->getMessage() . \PHP_EOL;
53+
}
2154
}
2255

2356
test1();
@@ -40,62 +73,49 @@ call_user_func("test3", 1, 2);
4073

4174
class test {
4275
static function test1($a) {
43-
var_dump(func_get_arg(0));
44-
var_dump(func_get_arg(1));
76+
try {
77+
var_dump(func_get_arg(0));
78+
} catch (\Error $e) {
79+
echo $e->getMessage() . \PHP_EOL;
80+
}
81+
try {
82+
var_dump(func_get_arg(1));
83+
} catch (\Error $e) {
84+
echo $e->getMessage() . \PHP_EOL;
85+
}
4586
}
4687
}
4788

4889
test::test1(1);
49-
var_dump(func_get_arg(1));
90+
try {
91+
var_dump(func_get_arg(1));
92+
} catch (\Error $e) {
93+
echo $e->getMessage() . \PHP_EOL;
94+
}
5095

5196
echo "Done\n";
5297
?>
5398
--EXPECTF--
54-
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
55-
bool(false)
56-
57-
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
58-
bool(false)
59-
60-
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
61-
bool(false)
62-
63-
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
64-
bool(false)
99+
func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
100+
func_get_arg(): Argument 0 not passed to function
101+
func_get_arg(): Argument 1 not passed to function
102+
func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
65103
int(10)
66-
67-
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
68-
bool(false)
104+
func_get_arg(): Argument 1 not passed to function
69105
int(1)
70-
71-
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
72-
bool(false)
106+
func_get_arg(): Argument 1 not passed to function
73107
Exception: Too few arguments to function test2(), 0 passed in %s002.php on line %d and exactly 1 expected
74108
int(1)
75109
int(2)
76-
77-
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
78-
bool(false)
79-
80-
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
81-
bool(false)
82-
83-
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
84-
bool(false)
85-
86-
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
87-
bool(false)
88-
Exception: Too few arguments to function test3(), 1 passed in %s002.php on line %d and exactly 2 expected
110+
func_get_arg(): Argument 2 not passed to function
111+
func_get_arg(): Argument #1 ($arg_num) must be greater than or equal to 0
112+
func_get_arg(): Argument 0 not passed to function
113+
func_get_arg(): Argument 1 not passed to function
114+
Exception: Too few arguments to function test3(), 1 passed in %s on line %d and exactly 2 expected
89115
int(1)
90116
int(2)
91-
92-
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
93-
bool(false)
117+
func_get_arg(): Argument 2 not passed to function
94118
int(1)
95-
96-
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
97-
bool(false)
98-
99-
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
100-
bool(false)
119+
func_get_arg(): Argument 1 not passed to function
120+
func_get_arg() cannot be called from the global scope
101121
Done

Zend/tests/003.phpt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,13 @@ class test {
4040
}
4141

4242
test::test1(1);
43-
var_dump(func_get_args());
4443

45-
echo "Done\n";
44+
try {
45+
var_dump(func_get_args());
46+
} catch (\Error $e) {
47+
echo $e->getMessage() . \PHP_EOL;
48+
}
49+
4650
?>
4751
--EXPECTF--
4852
array(0) {
@@ -75,7 +79,4 @@ array(1) {
7579
[0]=>
7680
int(1)
7781
}
78-
79-
Warning: func_get_args(): Called from the global scope - no function context in %s on line %d
80-
bool(false)
81-
Done
82+
func_get_args() cannot be called from the global scope

Zend/tests/004.phpt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@ strncmp() tests
44
<?php
55

66
var_dump(strncmp("", "", 100));
7-
var_dump(strncmp("aef", "dfsgbdf", -1));
7+
try {
8+
var_dump(strncmp("aef", "dfsgbdf", -1));
9+
} catch (\ValueError $e) {
10+
echo $e->getMessage() . \PHP_EOL;
11+
}
812
var_dump(strncmp("fghjkl", "qwer", 0));
913
var_dump(strncmp("qwerty", "qwerty123", 6));
1014
var_dump(strncmp("qwerty", "qwerty123", 7));
1115

12-
echo "Done\n";
1316
?>
14-
--EXPECTF--
17+
--EXPECT--
1518
int(0)
16-
17-
Warning: Length must be greater than or equal to 0 in %s on line %d
18-
bool(false)
19+
strncmp(): Argument #3 ($len) must be greater than or equal to 0
1920
int(0)
2021
int(0)
2122
int(-1)
22-
Done

Zend/tests/006.phpt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ strncasecmp() tests
33
--FILE--
44
<?php
55

6-
var_dump(strncasecmp("", "", -1));
6+
try {
7+
var_dump(strncasecmp("", "", -1));
8+
} catch (\ValueError $e) {
9+
echo $e->getMessage() . \PHP_EOL;
10+
}
11+
712
var_dump(strncasecmp("aef", "dfsgbdf", 0));
813
var_dump(strncasecmp("aef", "dfsgbdf", 10));
914
var_dump(strncasecmp("qwe", "qwer", 3));
@@ -12,16 +17,13 @@ var_dump(strncasecmp("qwErtY", "qwer", 7));
1217
var_dump(strncasecmp("q123", "Q123", 3));
1318
var_dump(strncasecmp("01", "01", 1000));
1419

15-
echo "Done\n";
1620
?>
17-
--EXPECTF--
18-
Warning: Length must be greater than or equal to 0 in %s on line %d
19-
bool(false)
21+
--EXPECT--
22+
strncasecmp(): Argument #3 ($len) must be greater than or equal to 0
2023
int(0)
2124
int(-3)
2225
int(0)
2326
int(0)
2427
int(2)
2528
int(0)
2629
int(0)
27-
Done

Zend/tests/011.phpt

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,40 @@ var_dump(property_exists($foo,"pp2"));
3939
var_dump(property_exists($foo,"pp3"));
4040
var_dump(property_exists($foo,"nonexistent"));
4141
var_dump(property_exists($foo,""));
42-
var_dump(property_exists(array(),"test"));
43-
var_dump(property_exists(1,"test"));
44-
var_dump(property_exists(true,"test"));
42+
43+
try {
44+
var_dump(property_exists(array(), "test"));
45+
} catch (\TypeError $e) {
46+
echo $e->getMessage() . \PHP_EOL;
47+
}
48+
try {
49+
var_dump(property_exists(1, "test"));
50+
} catch (\TypeError $e) {
51+
echo $e->getMessage() . \PHP_EOL;
52+
}
53+
try {
54+
var_dump(property_exists(3.14, "test"));
55+
} catch (\TypeError $e) {
56+
echo $e->getMessage() . \PHP_EOL;
57+
}
58+
try {
59+
var_dump(property_exists(true, "test"));
60+
} catch (\TypeError $e) {
61+
echo $e->getMessage() . \PHP_EOL;
62+
}
63+
try {
64+
var_dump(property_exists(null, "test"));
65+
} catch (\TypeError $e) {
66+
echo $e->getMessage() . \PHP_EOL;
67+
}
4568

4669
$foo->bar();
4770

4871
$bar = new bar;
4972
$bar->test();
5073

51-
echo "Done\n";
5274
?>
53-
--EXPECTF--
75+
--EXPECT--
5476
bool(true)
5577
bool(true)
5678
bool(true)
@@ -64,19 +86,14 @@ bool(true)
6486
bool(true)
6587
bool(false)
6688
bool(false)
67-
68-
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
69-
NULL
70-
71-
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
72-
NULL
73-
74-
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
75-
NULL
89+
property_exists(): Argument #1 ($object_or_class) must be of type object|string, array given
90+
property_exists(): Argument #1 ($object_or_class) must be of type object|string, int given
91+
property_exists(): Argument #1 ($object_or_class) must be of type object|string, float given
92+
property_exists(): Argument #1 ($object_or_class) must be of type object|string, bool given
93+
property_exists(): Argument #1 ($object_or_class) must be of type object|string, null given
7694
bool(true)
7795
bool(true)
7896
bool(true)
7997
bool(true)
8098
bool(true)
8199
bool(true)
82-
Done

Zend/tests/015.phpt

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,30 @@ trigger_error() tests
44
<?php
55

66
var_dump(trigger_error("error"));
7-
var_dump(trigger_error("error", -1));
8-
var_dump(trigger_error("error", 0));
7+
8+
try {
9+
var_dump(trigger_error("error", -1));
10+
} catch (\ValueError $e) {
11+
echo $e->getMessage() . \PHP_EOL;
12+
}
13+
try {
14+
var_dump(trigger_error("error", 0));
15+
} catch (\ValueError $e) {
16+
echo $e->getMessage() . \PHP_EOL;
17+
}
18+
919
var_dump(trigger_error("error", E_USER_WARNING));
1020
var_dump(trigger_error("error", E_USER_DEPRECATED));
1121

12-
echo "Done\n";
1322
?>
1423
--EXPECTF--
1524
Notice: error in %s on line %d
1625
bool(true)
17-
18-
Warning: Invalid error type specified in %s on line %d
19-
bool(false)
20-
21-
Warning: Invalid error type specified in %s on line %d
22-
bool(false)
26+
trigger_error(): Argument #2 ($error_type) must be one of E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, or E_USER_DEPRECATED
27+
trigger_error(): Argument #2 ($error_type) must be one of E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, or E_USER_DEPRECATED
2328

2429
Warning: error in %s on line %d
2530
bool(true)
2631

2732
Deprecated: error in %s on line %d
2833
bool(true)
29-
Done

Zend/tests/020.phpt

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@ func_get_arg() invalid usage
33
--FILE--
44
<?php
55

6-
var_dump(func_get_arg(1));
6+
try {
7+
var_dump(func_get_arg(1));
8+
} catch (\Error $e) {
9+
echo $e->getMessage() . \PHP_EOL;
10+
}
711

812
function bar() {
913
var_dump(func_get_arg(1));
@@ -13,14 +17,13 @@ function foo() {
1317
bar(func_get_arg(1));
1418
}
1519

16-
foo(1,2);
20+
try {
21+
foo(1,2);
22+
} catch (\Error $e) {
23+
echo $e->getMessage() . \PHP_EOL;
24+
}
1725

18-
echo "Done\n";
1926
?>
20-
--EXPECTF--
21-
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
22-
bool(false)
23-
24-
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
25-
bool(false)
26-
Done
27+
--EXPECT--
28+
func_get_arg() cannot be called from the global scope
29+
func_get_arg(): Argument 1 not passed to function

0 commit comments

Comments
 (0)