diff options
Diffstat (limited to 'ext/standard/tests/file/windows_mb_path/test_long_path_mkdir.phpt')
-rw-r--r-- | ext/standard/tests/file/windows_mb_path/test_long_path_mkdir.phpt | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/ext/standard/tests/file/windows_mb_path/test_long_path_mkdir.phpt b/ext/standard/tests/file/windows_mb_path/test_long_path_mkdir.phpt new file mode 100644 index 0000000000..2453538190 --- /dev/null +++ b/ext/standard/tests/file/windows_mb_path/test_long_path_mkdir.phpt @@ -0,0 +1,60 @@ +--TEST-- +Mkdir with path length < 260 and > 248 has be a long path +--SKIPIF-- +<?php +include dirname(__FILE__) . DIRECTORY_SEPARATOR . "util.inc"; + +skip_if_not_win(); + +$start = realpath(dirname(__FILE__)); +if (strlen($start) > 260 || strlen($start) > 248) { + die("skip the starting path length is unsuitable for this test"); +} + +?> +--FILE-- +<?php + +$p = ""; +$s = str_repeat('a', 50); +$how_many = 32; + +for ($i = 0; $i < $how_many; $i++) { + $p .= "$s\\"; +} + +$start = realpath(dirname(__FILE__)); +if (strlen($start) <= 248) { + // create the exact length + $start = $start . "\\" . str_repeat('a', 251 - strlen($start) - 1); +} + +var_dump($start); +$p = $start . "\\" . $p; + +var_dump($p); +var_dump(mkdir($p, 0777, true)); +var_dump(file_exists($p)); + +$p7 = $p . "hello.txt"; + +var_dump(file_put_contents($p7, "hello")); +var_dump(file_get_contents($p7)); + +// cleanup +unlink($p7); +for ($i = 0; $i < $how_many; $i++) { + $p0 = substr($p, 0, strlen($p) - $i*51); + rmdir($p0); +} + +?> +===DONE=== +--EXPECTF-- +string(251) "%s" +string(1884) "%s" +bool(true) +bool(true) +int(5) +string(5) "hello" +===DONE=== |