pajoye Sat, 05 Sep 2009 18:10:31 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=288085
Log: - add test for #48746 Bug: http://bugs.php.net/48746 (Feedback) Unable to browse directories within Junction Points Changed paths: A php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/ A php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746.phpt A php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_1.phpt A php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_2.phpt A php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_3.phpt A php/php-src/trunk/ext/standard/tests/file/windows_links/ A php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746.phpt A php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_1.phpt A php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_2.phpt A php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_3.phpt
Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,54 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "mklink.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("mklink.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +$drive = substr(__DIR__, 0, 2); +$pathwithoutdrive = substr(__DIR__, 2); +$ret = exec("mountvol " . $drive . " /L", $output, $ret_val); +exec("mklink /j mounted_volume " . $ret, $output, $ret_val); +$fullpath = "mounted_volume" . $pathwithoutdrive; +exec("mklink /j mklink_junction directory", $output, $ret_val); +var_dump(file_exists("directory")); +var_dump(file_exists("mklink_junction")); +var_dump(file_exists("mounted_volume")); +var_dump(file_exists("$fullpath")); +var_dump(is_dir("mklink_junction")); +var_dump(is_dir("$fullpath")); +var_dump(is_readable("mklink_junction")); +var_dump(is_writeable("$fullpath")); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\mklink_junction"); +rmdir(__DIR__ . "\\mnt\\test\\mounted_volume"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) \ No newline at end of file Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_1.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_1.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_1.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,56 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "mklink.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("mklink.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +$drive = substr(__DIR__, 0, 2); +$pathwithoutdrive = substr(__DIR__, 2); +$ret = exec("mountvol " . $drive . " /L", $output, $ret_val); +exec("mklink /j mounted_volume " . $ret, $output, $ret_val); +$fullpath = "mounted_volume" . $pathwithoutdrive; +exec("mklink /j mklink_junction directory", $output, $ret_val); +file_put_contents("mklink_junction\\a.php", "<?php echo \"I am included.\n\" ?>"); +include_once "mklink_junction\\a.php"; +file_put_contents("$fullpath\\mnt\\test\\directory\\b.php", "<?php echo \"I am included.\n\" ?>"); +require "$fullpath\\mnt\\test\\directory\\b.php"; +file_put_contents("$fullpath\\mnt\\test\\mklink_junction\\c.php", "<?php echo \"I am included.\n\" ?>"); +require_once "$fullpath\\mnt\\test\\mklink_junction\\c.php"; +var_dump(is_file("mklink_junction\\a.php")); +var_dump(is_file("$fullpath\\mnt\\test\\directory\\b.php")); +var_dump(is_file("$fullpath\\mnt\\test\\mklink_junction\\c.php")); +unlink("$fullpath\\mnt\\test\\directory\\b.php"); +unlink("$fullpath\\mnt\\test\\mklink_junction\\c.php"); +unlink("mklink_junction\\a.php"); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\mklink_junction"); +rmdir(__DIR__ . "\\mnt\\test\\mounted_volume"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +I am included. +I am included. +I am included. +bool(true) +bool(true) +bool(true) \ No newline at end of file Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_2.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_2.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_2.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,66 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "mklink.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("mklink.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +$drive = substr(__DIR__, 0, 2); +$pathwithoutdrive = substr(__DIR__, 2); +$ret = exec("mountvol " . $drive . " /L", $output, $ret_val); +exec("mklink /j mounted_volume " . $ret, $output, $ret_val); +$fullpath = "mounted_volume" . $pathwithoutdrive; +exec("mklink /j mklink_junction directory", $output, $ret_val); +file_put_contents("mklink_junction\\a.php", "<?php echo \"I am included.\n\" ?>"); +file_put_contents("$fullpath\\mnt\\test\\directory\\b.php", "<?php echo \"I am included.\n\" ?>"); +print_r(scandir("mklink_junction")); +print_r(scandir("$fullpath\\mnt\\test\\directory")); +print_r(scandir("$fullpath\\mnt\\test\\mklink_junction")); +unlink("$fullpath\\mnt\\test\\directory\\b.php"); +unlink("mklink_junction\\a.php"); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\mklink_junction"); +rmdir(__DIR__ . "\\mnt\\test\\mounted_volume"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) \ No newline at end of file Added: php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_3.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_3.phpt (rev 0) +++ php/php-src/branches/PHP_5_3/ext/standard/tests/file/windows_links/bug48746_3.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,48 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "junction.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("junction.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +exec("junction junction directory", $output, $ret_val); +file_put_contents("junction\\a.php", "<?php echo \"I am included.\n\" ?>"); +file_put_contents("junction\\b.php", "<?php echo \"I am included.\n\" ?>"); +include "junction/a.php"; +require_once "junction\\b.php"; +print_r(scandir("junction")); +unlink("junction\\a.php"); +unlink("junction\\b.php"); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\junction"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +I am included. +I am included. +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) \ No newline at end of file Added: php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,54 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "mklink.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("mklink.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +$drive = substr(__DIR__, 0, 2); +$pathwithoutdrive = substr(__DIR__, 2); +$ret = exec("mountvol " . $drive . " /L", $output, $ret_val); +exec("mklink /j mounted_volume " . $ret, $output, $ret_val); +$fullpath = "mounted_volume" . $pathwithoutdrive; +exec("mklink /j mklink_junction directory", $output, $ret_val); +var_dump(file_exists("directory")); +var_dump(file_exists("mklink_junction")); +var_dump(file_exists("mounted_volume")); +var_dump(file_exists("$fullpath")); +var_dump(is_dir("mklink_junction")); +var_dump(is_dir("$fullpath")); +var_dump(is_readable("mklink_junction")); +var_dump(is_writeable("$fullpath")); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\mklink_junction"); +rmdir(__DIR__ . "\\mnt\\test\\mounted_volume"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) +bool(true) \ No newline at end of file Added: php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_1.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_1.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_1.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,56 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "mklink.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("mklink.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +$drive = substr(__DIR__, 0, 2); +$pathwithoutdrive = substr(__DIR__, 2); +$ret = exec("mountvol " . $drive . " /L", $output, $ret_val); +exec("mklink /j mounted_volume " . $ret, $output, $ret_val); +$fullpath = "mounted_volume" . $pathwithoutdrive; +exec("mklink /j mklink_junction directory", $output, $ret_val); +file_put_contents("mklink_junction\\a.php", "<?php echo \"I am included.\n\" ?>"); +include_once "mklink_junction\\a.php"; +file_put_contents("$fullpath\\mnt\\test\\directory\\b.php", "<?php echo \"I am included.\n\" ?>"); +require "$fullpath\\mnt\\test\\directory\\b.php"; +file_put_contents("$fullpath\\mnt\\test\\mklink_junction\\c.php", "<?php echo \"I am included.\n\" ?>"); +require_once "$fullpath\\mnt\\test\\mklink_junction\\c.php"; +var_dump(is_file("mklink_junction\\a.php")); +var_dump(is_file("$fullpath\\mnt\\test\\directory\\b.php")); +var_dump(is_file("$fullpath\\mnt\\test\\mklink_junction\\c.php")); +unlink("$fullpath\\mnt\\test\\directory\\b.php"); +unlink("$fullpath\\mnt\\test\\mklink_junction\\c.php"); +unlink("mklink_junction\\a.php"); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\mklink_junction"); +rmdir(__DIR__ . "\\mnt\\test\\mounted_volume"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +I am included. +I am included. +I am included. +bool(true) +bool(true) +bool(true) \ No newline at end of file Added: php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_2.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_2.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_2.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,66 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "mklink.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("mklink.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +$drive = substr(__DIR__, 0, 2); +$pathwithoutdrive = substr(__DIR__, 2); +$ret = exec("mountvol " . $drive . " /L", $output, $ret_val); +exec("mklink /j mounted_volume " . $ret, $output, $ret_val); +$fullpath = "mounted_volume" . $pathwithoutdrive; +exec("mklink /j mklink_junction directory", $output, $ret_val); +file_put_contents("mklink_junction\\a.php", "<?php echo \"I am included.\n\" ?>"); +file_put_contents("$fullpath\\mnt\\test\\directory\\b.php", "<?php echo \"I am included.\n\" ?>"); +print_r(scandir("mklink_junction")); +print_r(scandir("$fullpath\\mnt\\test\\directory")); +print_r(scandir("$fullpath\\mnt\\test\\mklink_junction")); +unlink("$fullpath\\mnt\\test\\directory\\b.php"); +unlink("mklink_junction\\a.php"); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\mklink_junction"); +rmdir(__DIR__ . "\\mnt\\test\\mounted_volume"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) \ No newline at end of file Added: php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_3.phpt =================================================================== --- php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_3.phpt (rev 0) +++ php/php-src/trunk/ext/standard/tests/file/windows_links/bug48746_3.phpt 2009-09-05 18:10:31 UTC (rev 288085) @@ -0,0 +1,48 @@ +--TEST-- +Bug#48746 - Junction not working properly + +--CREDIT-- +Venkat Raman Don (don.ra...@microsoft.com) + +--SKIPIF-- +<?php +$cmd = "junction.exe /?"; +$ret = @exec($cmd, $output, $return_val); +if (count($output) == 0) { + die("junction.exe not found in PATH"); +} +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +?> +--FILE-- +<?php +$old_dir = __DIR__; +$dirname = __DIR__ . "\\mnt\\test\\directory"; +exec("mkdir " . $dirname, $output, $ret_val); +chdir(__DIR__ . "\\mnt\\test"); +exec("junction junction directory", $output, $ret_val); +file_put_contents("junction\\a.php", "<?php echo \"I am included.\n\" ?>"); +file_put_contents("junction\\b.php", "<?php echo \"I am included.\n\" ?>"); +include "junction/a.php"; +require_once "junction\\b.php"; +print_r(scandir("junction")); +unlink("junction\\a.php"); +unlink("junction\\b.php"); +chdir($old_dir); +rmdir(__DIR__ . "\\mnt\\test\\directory"); +rmdir(__DIR__ . "\\mnt\\test\\junction"); +rmdir(__DIR__ . "\\mnt\\test"); +rmdir(__DIR__ . "\\mnt"); + +?> +--EXPECT-- +I am included. +I am included. +Array +( + [0] => . + [1] => .. + [2] => a.php + [3] => b.php +) \ No newline at end of file
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php