summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorGeorge Peter Banyard <girgias@php.net>2019-08-22 11:58:57 +0200
committerGeorge Peter Banyard <girgias@php.net>2019-08-22 21:44:01 +0200
commitfe44e1637a683de9414e155f034bab993dd8aee3 (patch)
tree30bd01577b1fa35859fbd1a81385117239b77c58 /ext
parent698491d98a8d34e1d531a36f5dba30fc424b826f (diff)
downloadphp-git-fe44e1637a683de9414e155f034bab993dd8aee3.tar.gz
Promote warnings to errors in dirname()
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/string.c4
-rw-r--r--ext/standard/tests/strings/dirname_error.phpt10
-rw-r--r--ext/standard/tests/strings/dirname_multi.phpt9
-rw-r--r--ext/standard/tests/strings/dirname_multi_win.phpt13
4 files changed, 23 insertions, 13 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index c98ee49d49..ec43ddf702 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -1619,7 +1619,7 @@ PHPAPI size_t php_dirname(char *path, size_t len)
}
/* }}} */
-/* {{{ proto string|null dirname(string path[, int levels])
+/* {{{ proto string dirname(string path[, int levels])
Returns the directory name component of the path */
PHP_FUNCTION(dirname)
{
@@ -1644,7 +1644,7 @@ PHP_FUNCTION(dirname)
ZSTR_LEN(ret) = zend_dirname(ZSTR_VAL(ret), str_len);
#endif
} else if (levels < 1) {
- php_error_docref(NULL, E_WARNING, "Invalid argument, levels must be >= 1");
+ zend_throw_error(NULL, "Invalid argument, levels must be >= 1");
zend_string_efree(ret);
return;
} else {
diff --git a/ext/standard/tests/strings/dirname_error.phpt b/ext/standard/tests/strings/dirname_error.phpt
index 79fac30029..daf4e2cb0a 100644
--- a/ext/standard/tests/strings/dirname_error.phpt
+++ b/ext/standard/tests/strings/dirname_error.phpt
@@ -8,13 +8,15 @@ Test dirname() function : error conditions
echo "*** Testing error conditions ***\n";
// Bad arg
-var_dump( dirname("/var/tmp/bar.gz", 0) );
+try {
+ dirname("/var/tmp/bar.gz", 0);
+} catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+}
echo "Done\n";
?>
--EXPECTF--
*** Testing error conditions ***
-
-Warning: dirname(): Invalid argument, levels must be >= 1 in %s on line %d
-NULL
+Invalid argument, levels must be >= 1
Done
diff --git a/ext/standard/tests/strings/dirname_multi.phpt b/ext/standard/tests/strings/dirname_multi.phpt
index febbd0c293..f95bf16d2a 100644
--- a/ext/standard/tests/strings/dirname_multi.phpt
+++ b/ext/standard/tests/strings/dirname_multi.phpt
@@ -11,14 +11,17 @@ if((substr(PHP_OS, 0, 3) == "WIN"))
Description: Returns directory name component of path.
*/
for ($i=0 ; $i<5 ; $i++) {
- var_dump(dirname("/foo/bar/baz", $i));
+ try {
+ var_dump(dirname("/foo/bar/baz", $i));
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
}
var_dump(dirname("/foo/bar/baz", PHP_INT_MAX));
?>
Done
--EXPECTF--
-Warning: dirname(): Invalid argument, levels must be >= 1 in %sdirname_multi.php on line %d
-NULL
+Invalid argument, levels must be >= 1
string(8) "/foo/bar"
string(4) "/foo"
string(1) "/"
diff --git a/ext/standard/tests/strings/dirname_multi_win.phpt b/ext/standard/tests/strings/dirname_multi_win.phpt
index 4fed5895e6..9dc0c05c59 100644
--- a/ext/standard/tests/strings/dirname_multi_win.phpt
+++ b/ext/standard/tests/strings/dirname_multi_win.phpt
@@ -10,17 +10,22 @@ if((substr(PHP_OS, 0, 3) != "WIN"))
/* Prototype: string dirname ( string $path [, int nb]);
Description: Returns directory name component of path.
*/
+
for ($i=0 ; $i<5 ; $i++) {
- var_dump(dirname("/foo/bar/baz", $i));
+ try {
+ var_dump(dirname("/foo/bar/baz", $i));
+ } catch (\Error $e) {
+ echo $e->getMessage() . "\n";
+ }
}
+
var_dump(dirname("/foo/bar/baz", PHP_INT_MAX));
var_dump(dirname("g:/foo/bar/baz", PHP_INT_MAX));
var_dump(dirname("g:foo/bar/baz", PHP_INT_MAX));
?>
Done
---EXPECTF--
-Warning: dirname(): Invalid argument, levels must be >= 1 in %sdirname_multi_win.php on line %d
-NULL
+--EXPECT--
+Invalid argument, levels must be >= 1
string(8) "/foo/bar"
string(4) "/foo"
string(1) "\"