mirror of
https://github.com/php/php-src.git
synced 2024-09-28 21:36:12 +00:00
- add test for #48746
This commit is contained in:
parent
2eaf8bf222
commit
a733fe2521
54
ext/standard/tests/file/windows_links/bug48746.phpt
Normal file
54
ext/standard/tests/file/windows_links/bug48746.phpt
Normal file
@ -0,0 +1,54 @@
|
||||
--TEST--
|
||||
Bug#48746 - Junction not working properly
|
||||
|
||||
--CREDIT--
|
||||
Venkat Raman Don (don.raman@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)
|
56
ext/standard/tests/file/windows_links/bug48746_1.phpt
Normal file
56
ext/standard/tests/file/windows_links/bug48746_1.phpt
Normal file
@ -0,0 +1,56 @@
|
||||
--TEST--
|
||||
Bug#48746 - Junction not working properly
|
||||
|
||||
--CREDIT--
|
||||
Venkat Raman Don (don.raman@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)
|
66
ext/standard/tests/file/windows_links/bug48746_2.phpt
Normal file
66
ext/standard/tests/file/windows_links/bug48746_2.phpt
Normal file
@ -0,0 +1,66 @@
|
||||
--TEST--
|
||||
Bug#48746 - Junction not working properly
|
||||
|
||||
--CREDIT--
|
||||
Venkat Raman Don (don.raman@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
|
||||
)
|
48
ext/standard/tests/file/windows_links/bug48746_3.phpt
Normal file
48
ext/standard/tests/file/windows_links/bug48746_3.phpt
Normal file
@ -0,0 +1,48 @@
|
||||
--TEST--
|
||||
Bug#48746 - Junction not working properly
|
||||
|
||||
--CREDIT--
|
||||
Venkat Raman Don (don.raman@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
|
||||
)
|
Loading…
Reference in New Issue
Block a user