diff options
author | George Peter Banyard <girgias@php.net> | 2019-08-22 11:58:57 +0200 |
---|---|---|
committer | George Peter Banyard <girgias@php.net> | 2019-08-22 21:44:01 +0200 |
commit | fe44e1637a683de9414e155f034bab993dd8aee3 (patch) | |
tree | 30bd01577b1fa35859fbd1a81385117239b77c58 /ext/standard | |
parent | 698491d98a8d34e1d531a36f5dba30fc424b826f (diff) | |
download | php-git-fe44e1637a683de9414e155f034bab993dd8aee3.tar.gz |
Promote warnings to errors in dirname()
Diffstat (limited to 'ext/standard')
-rw-r--r-- | ext/standard/string.c | 4 | ||||
-rw-r--r-- | ext/standard/tests/strings/dirname_error.phpt | 10 | ||||
-rw-r--r-- | ext/standard/tests/strings/dirname_multi.phpt | 9 | ||||
-rw-r--r-- | ext/standard/tests/strings/dirname_multi_win.phpt | 13 |
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) "\" |