--- /dev/null
+--TEST--\r
+Bug#48746 - Junction not working properly\r
+\r
+--CREDIT--\r
+Venkat Raman Don (don.raman@microsoft.com)\r
+\r
+--SKIPIF--\r
+<?php\r
+$cmd = "mklink.exe /?";\r
+$ret = @exec($cmd, $output, $return_val);\r
+if (count($output) == 0) {\r
+ die("mklink.exe not found in PATH");\r
+}\r
+if(substr(PHP_OS, 0, 3) != 'WIN' ) {\r
+ die('skip windows only test');\r
+}\r
+?>\r
+--FILE--\r
+<?php\r
+$old_dir = __DIR__;\r
+$dirname = __DIR__ . "\\mnt\\test\\directory";\r
+exec("mkdir " . $dirname, $output, $ret_val);\r
+chdir(__DIR__ . "\\mnt\\test");\r
+$drive = substr(__DIR__, 0, 2);\r
+$pathwithoutdrive = substr(__DIR__, 2);\r
+$ret = exec("mountvol " . $drive . " /L", $output, $ret_val);\r
+exec("mklink /j mounted_volume " . $ret, $output, $ret_val);\r
+$fullpath = "mounted_volume" . $pathwithoutdrive;\r
+exec("mklink /j mklink_junction directory", $output, $ret_val);\r
+var_dump(file_exists("directory"));\r
+var_dump(file_exists("mklink_junction"));\r
+var_dump(file_exists("mounted_volume"));\r
+var_dump(file_exists("$fullpath"));\r
+var_dump(is_dir("mklink_junction"));\r
+var_dump(is_dir("$fullpath"));\r
+var_dump(is_readable("mklink_junction"));\r
+var_dump(is_writeable("$fullpath"));\r
+chdir($old_dir);\r
+rmdir(__DIR__ . "\\mnt\\test\\directory");\r
+rmdir(__DIR__ . "\\mnt\\test\\mklink_junction");\r
+rmdir(__DIR__ . "\\mnt\\test\\mounted_volume");\r
+rmdir(__DIR__ . "\\mnt\\test");\r
+rmdir(__DIR__ . "\\mnt");\r
+\r
+?>\r
+--EXPECT--\r
+bool(true)\r
+bool(true)\r
+bool(true)\r
+bool(true)\r
+bool(true)\r
+bool(true)\r
+bool(true)\r
+bool(true)
\ No newline at end of file
--- /dev/null
+--TEST--\r
+Bug#48746 - Junction not working properly\r
+\r
+--CREDIT--\r
+Venkat Raman Don (don.raman@microsoft.com)\r
+\r
+--SKIPIF--\r
+<?php\r
+$cmd = "mklink.exe /?";\r
+$ret = @exec($cmd, $output, $return_val);\r
+if (count($output) == 0) {\r
+ die("mklink.exe not found in PATH");\r
+}\r
+if(substr(PHP_OS, 0, 3) != 'WIN' ) {\r
+ die('skip windows only test');\r
+}\r
+?>\r
+--FILE--\r
+<?php\r
+$old_dir = __DIR__;\r
+$dirname = __DIR__ . "\\mnt\\test\\directory";\r
+exec("mkdir " . $dirname, $output, $ret_val);\r
+chdir(__DIR__ . "\\mnt\\test");\r
+$drive = substr(__DIR__, 0, 2);\r
+$pathwithoutdrive = substr(__DIR__, 2);\r
+$ret = exec("mountvol " . $drive . " /L", $output, $ret_val);\r
+exec("mklink /j mounted_volume " . $ret, $output, $ret_val);\r
+$fullpath = "mounted_volume" . $pathwithoutdrive;\r
+exec("mklink /j mklink_junction directory", $output, $ret_val);\r
+file_put_contents("mklink_junction\\a.php", "<?php echo \"I am included.\n\" ?>");\r
+include_once "mklink_junction\\a.php";\r
+file_put_contents("$fullpath\\mnt\\test\\directory\\b.php", "<?php echo \"I am included.\n\" ?>");\r
+require "$fullpath\\mnt\\test\\directory\\b.php";\r
+file_put_contents("$fullpath\\mnt\\test\\mklink_junction\\c.php", "<?php echo \"I am included.\n\" ?>");\r
+require_once "$fullpath\\mnt\\test\\mklink_junction\\c.php";\r
+var_dump(is_file("mklink_junction\\a.php"));\r
+var_dump(is_file("$fullpath\\mnt\\test\\directory\\b.php"));\r
+var_dump(is_file("$fullpath\\mnt\\test\\mklink_junction\\c.php"));\r
+unlink("$fullpath\\mnt\\test\\directory\\b.php");\r
+unlink("$fullpath\\mnt\\test\\mklink_junction\\c.php");\r
+unlink("mklink_junction\\a.php");\r
+chdir($old_dir);\r
+rmdir(__DIR__ . "\\mnt\\test\\directory");\r
+rmdir(__DIR__ . "\\mnt\\test\\mklink_junction");\r
+rmdir(__DIR__ . "\\mnt\\test\\mounted_volume");\r
+rmdir(__DIR__ . "\\mnt\\test");\r
+rmdir(__DIR__ . "\\mnt");\r
+\r
+?>\r
+--EXPECT--\r
+I am included.\r
+I am included.\r
+I am included.\r
+bool(true)\r
+bool(true)\r
+bool(true)
\ No newline at end of file
--- /dev/null
+--TEST--\r
+Bug#48746 - Junction not working properly\r
+\r
+--CREDIT--\r
+Venkat Raman Don (don.raman@microsoft.com)\r
+\r
+--SKIPIF--\r
+<?php\r
+$cmd = "mklink.exe /?";\r
+$ret = @exec($cmd, $output, $return_val);\r
+if (count($output) == 0) {\r
+ die("mklink.exe not found in PATH");\r
+}\r
+if(substr(PHP_OS, 0, 3) != 'WIN' ) {\r
+ die('skip windows only test');\r
+}\r
+?>\r
+--FILE--\r
+<?php\r
+$old_dir = __DIR__;\r
+$dirname = __DIR__ . "\\mnt\\test\\directory";\r
+exec("mkdir " . $dirname, $output, $ret_val);\r
+chdir(__DIR__ . "\\mnt\\test");\r
+$drive = substr(__DIR__, 0, 2);\r
+$pathwithoutdrive = substr(__DIR__, 2);\r
+$ret = exec("mountvol " . $drive . " /L", $output, $ret_val);\r
+exec("mklink /j mounted_volume " . $ret, $output, $ret_val);\r
+$fullpath = "mounted_volume" . $pathwithoutdrive;\r
+exec("mklink /j mklink_junction directory", $output, $ret_val);\r
+file_put_contents("mklink_junction\\a.php", "<?php echo \"I am included.\n\" ?>");\r
+file_put_contents("$fullpath\\mnt\\test\\directory\\b.php", "<?php echo \"I am included.\n\" ?>");\r
+print_r(scandir("mklink_junction"));\r
+print_r(scandir("$fullpath\\mnt\\test\\directory"));\r
+print_r(scandir("$fullpath\\mnt\\test\\mklink_junction"));\r
+unlink("$fullpath\\mnt\\test\\directory\\b.php");\r
+unlink("mklink_junction\\a.php");\r
+chdir($old_dir);\r
+rmdir(__DIR__ . "\\mnt\\test\\directory");\r
+rmdir(__DIR__ . "\\mnt\\test\\mklink_junction");\r
+rmdir(__DIR__ . "\\mnt\\test\\mounted_volume");\r
+rmdir(__DIR__ . "\\mnt\\test");\r
+rmdir(__DIR__ . "\\mnt");\r
+\r
+?>\r
+--EXPECT--\r
+Array\r
+(\r
+ [0] => .\r
+ [1] => ..\r
+ [2] => a.php\r
+ [3] => b.php\r
+)\r
+Array\r
+(\r
+ [0] => .\r
+ [1] => ..\r
+ [2] => a.php\r
+ [3] => b.php\r
+)\r
+Array\r
+(\r
+ [0] => .\r
+ [1] => ..\r
+ [2] => a.php\r
+ [3] => b.php\r
+)
\ No newline at end of file
--- /dev/null
+--TEST--\r
+Bug#48746 - Junction not working properly\r
+\r
+--CREDIT--\r
+Venkat Raman Don (don.raman@microsoft.com)\r
+\r
+--SKIPIF--\r
+<?php\r
+$cmd = "junction.exe /?";\r
+$ret = @exec($cmd, $output, $return_val);\r
+if (count($output) == 0) {\r
+ die("junction.exe not found in PATH");\r
+}\r
+if(substr(PHP_OS, 0, 3) != 'WIN' ) {\r
+ die('skip windows only test');\r
+}\r
+?>\r
+--FILE--\r
+<?php\r
+$old_dir = __DIR__;\r
+$dirname = __DIR__ . "\\mnt\\test\\directory";\r
+exec("mkdir " . $dirname, $output, $ret_val);\r
+chdir(__DIR__ . "\\mnt\\test");\r
+exec("junction junction directory", $output, $ret_val);\r
+file_put_contents("junction\\a.php", "<?php echo \"I am included.\n\" ?>");\r
+file_put_contents("junction\\b.php", "<?php echo \"I am included.\n\" ?>");\r
+include "junction/a.php";\r
+require_once "junction\\b.php";\r
+print_r(scandir("junction"));\r
+unlink("junction\\a.php");\r
+unlink("junction\\b.php");\r
+chdir($old_dir);\r
+rmdir(__DIR__ . "\\mnt\\test\\directory");\r
+rmdir(__DIR__ . "\\mnt\\test\\junction");\r
+rmdir(__DIR__ . "\\mnt\\test");\r
+rmdir(__DIR__ . "\\mnt");\r
+\r
+?>\r
+--EXPECT--\r
+I am included.\r
+I am included.\r
+Array\r
+(\r
+ [0] => .\r
+ [1] => ..\r
+ [2] => a.php\r
+ [3] => b.php\r
+)
\ No newline at end of file