diff options
author | Anatol Belski <ab@php.net> | 2017-12-14 16:17:37 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2017-12-14 16:17:37 +0100 |
commit | ed210c186abf440923b91c6bae04e9efda6caa10 (patch) | |
tree | 5fd1b99dc399580ba382260b821c7bd42e6b1def /ext/standard/tests/file | |
parent | 8c36588ee86cb2ccd5fe0b82130ec98829b2f012 (diff) | |
parent | 4c0af1fbd41761524682f59c96f2c49e0257298c (diff) | |
download | php-git-ed210c186abf440923b91c6bae04e9efda6caa10.tar.gz |
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1:
Fixed bug #75679 Path 260 character problem
Diffstat (limited to 'ext/standard/tests/file')
-rw-r--r-- | ext/standard/tests/file/bug75679.phpt | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/ext/standard/tests/file/bug75679.phpt b/ext/standard/tests/file/bug75679.phpt new file mode 100644 index 0000000000..af44565c45 --- /dev/null +++ b/ext/standard/tests/file/bug75679.phpt @@ -0,0 +1,66 @@ +--TEST-- +Bug #75679 Path 260 character problem +--FILE-- +<?php +$d = dirname(__FILE__); +$Files2Report = + [ + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_259_characters_long_', 100, '_') . '/', 1), 259, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_260_characters_long_', 100, '_') . '/', 1), 260, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_261_characters_long_', 100, '_') . '/', 1), 261, '_') => [], + ]; +foreach ($Files2Report as $file => &$Report) + { + $Report = ['strlen' => strlen ($file), 'result' => 'nok']; + + if (! is_dir (dirname ($file))) mkdir (dirname ($file), 0777, true); + if (copy (__FILE__, $file) && is_file ($file)) + { + $Report['result'] = 'ok'; + } + + print_r ($Report); + } + + +?> +==DONE== +--CLEAN-- +<?php +$d = dirname(__FILE__); +$Files2Report = + [ + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_259_characters_long_', 100, '_') . '/', 1), 259, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_260_characters_long_', 100, '_') . '/', 1), 260, '_') => [], + str_pad ($d . '/' . str_repeat (str_pad ('bug75679_path_261_characters_long_', 100, '_') . '/', 1), 261, '_') => [], + ]; +foreach ($Files2Report as $file => &$Report) +{ + if (is_file($file)) { + unlink($file); + } + + $d1 = dirname($file); + while ($d1 != $d) { + rmdir($d1); + $d1 = dirname($d1); + } +} +?> +--EXPECT-- +Array +( + [strlen] => 259 + [result] => ok +) +Array +( + [strlen] => 260 + [result] => ok +) +Array +( + [strlen] => 261 + [result] => ok +) +==DONE== |