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

Reply via email to