xref: /PHP-8.2/ext/standard/tests/dir/bug72625.phpt (revision f8d79582)
1--TEST--
2Bug #72625 realpath() fails on very long argument.
3--SKIPIF--
4<?php
5if (substr(PHP_OS, 0, 3) != 'WIN') {
6  die("skip Valid only on Windows");
7}
8?>
9--FILE--
10<?php
11
12$base = sys_get_temp_dir() . "/" . md5(uniqid());
13while (strlen($base) < 260) {
14    $base = "$base/" . md5(uniqid());
15}
16
17$f0 = "$base/_test/documents/projects/myproject/vendor/name/library/classpath";
18$f1 = "$f0/../../../../../../../../_test/documents/projects/myproject/vendor/name/library/../../../../../../../_test/documents/projects/myproject/vendor/name/library/classpath";
19
20
21mkdir($f0, 0777, true);
22
23
24var_dump(
25    $f0,
26    file_exists($f0),
27    realpath($f0),
28    dirname($f0),
29
30    $f1,
31    file_exists($f1),
32    realpath($f1),
33    dirname($f1)
34);
35
36$tmp = $f0;
37while ($tmp > $base) {
38    rmdir($tmp);
39    $tmp = dirname($tmp);
40}
41
42?>
43--EXPECTF--
44string(%d) "%s/_test/documents/projects/myproject/vendor/name/library/classpath"
45bool(true)
46string(%d) "%s\_test\documents\projects\myproject\vendor\name\library\classpath"
47string(%d) "%s/_test/documents/projects/myproject/vendor/name/library"
48string(%d) "%s/_test/documents/projects/myproject/vendor/name/library/classpath/../../../../../../../../_test/documents/projects/myproject/vendor/name/library/../../../../../../../_test/documents/projects/myproject/vendor/name/library/classpath"
49bool(true)
50string(%d) "%s\_test\documents\projects\myproject\vendor\name\library\classpath"
51string(%d) "%s/_test/documents/projects/myproject/vendor/name/library"
52