summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-12-14 16:16:50 +0100
committerAnatol Belski <ab@php.net>2017-12-14 16:16:50 +0100
commit4c0af1fbd41761524682f59c96f2c49e0257298c (patch)
tree83b5b8ecaa4aa8323686de12f097cd0997cb9100 /ext
parent580bae4a2c5997fbc0c7ef87304e8814c5576aeb (diff)
downloadphp-git-4c0af1fbd41761524682f59c96f2c49e0257298c.tar.gz
Fixed bug #75679 Path 260 character problem
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/tests/file/bug75679.phpt66
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==