com php-src: Fix bug 61746 Failing tests in ext/standard/tests/ file/windows_links/*: ext/standard/tests/file/windows_l inks/bug48746.phpt
ext/standard/tests/file/window s_links/bug48746_1.phpt ext/standard/tests/ file/windows_links/bug48746_2.phpt ext/stan
dard/tests/file/windows_links/bug48746_3.phpt ext/standard/tests/file/windows_links/common.inc
| From: | Anatoliy Belsky | Date: | Tue, 08 May 2012 17:31:41 +0000 |
| Subject: | com php-src: Fix bug 61746 Failing tests in ext/standard/tests/ file/windows_links/*: ext/standard/tests/file/windows_l inks/bug48746.phpt ext/standard/tests/file/window s_links/bug48746_1.phpt ext/standard/tests/ file/windows_links/bug48746_2.phpt ext/stan dard/tests/file/windows_links/bug48746_3.phpt ext/standard/tests/file/windows_links/common.inc |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-69006@lists.php.net to get a copy of this message | ||
Commit: c12fdbde5fe1da3f5ddd3be70a807b46755ff118
Author: Matt Ficken <mattficken@php.net> Tue, 8 May 2012 19:31:41 +0200
Committer: Anatoliy Belsky <ab@php.net> Tue, 8 May 2012 19:31:41 +0200
Parents: 838b4b8ff7d78dfb0da99e0b17568558a85a1c2a
Branches: PHP-5.3 PHP-5.4 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c12fdbde5fe1da3f5ddd3be70a807b46755ff118
Log:
Fix bug 61746 Failing tests in ext/standard/tests/file/windows_links/*
Fixed that again for systems having their %SYSTEMROOT% not in
c:\windows
Bugs:
https://bugs.php.net/61746
Changed paths:
M ext/standard/tests/file/windows_links/bug48746.phpt
M ext/standard/tests/file/windows_links/bug48746_1.phpt
M ext/standard/tests/file/windows_links/bug48746_2.phpt
M ext/standard/tests/file/windows_links/bug48746_3.phpt
A ext/standard/tests/file/windows_links/common.inc
Diff:
diff --git a/ext/standard/tests/file/windows_links/bug48746.phpt
b/ext/standard/tests/file/windows_links/bug48746.phpt
index a47b7cb..55465ae 100644
--- a/ext/standard/tests/file/windows_links/bug48746.phpt
+++ b/ext/standard/tests/file/windows_links/bug48746.phpt
@@ -9,7 +9,8 @@ Venkat Raman Don (don.raman@microsoft.com)
if(substr(PHP_OS, 0, 3) != 'WIN' ) {
die('skip windows only test');
}
-$cmd = "mklink.exe /?";
+include_once __DIR__ . '/common.inc';
+$cmd = "mklink /?";
$ret = @exec($cmd, $output, $return_val);
if (count($output) == 0) {
die("mklink.exe not found in PATH");
@@ -17,7 +18,8 @@ if (count($output) == 0) {
?>
--FILE--
<?php
-$mountvol = "c:\\Windows\\System32\\mountvol.exe";
+include_once __DIR__ . '/common.inc';
+$mountvol = get_mountvol();
$old_dir = __DIR__;
$dirname = __DIR__ . "\\mnt\\test\\directory";
mkdir($dirname, 0700, true);
diff --git a/ext/standard/tests/file/windows_links/bug48746_1.phpt
b/ext/standard/tests/file/windows_links/bug48746_1.phpt
index 716c656..5d8e685 100644
--- a/ext/standard/tests/file/windows_links/bug48746_1.phpt
+++ b/ext/standard/tests/file/windows_links/bug48746_1.phpt
@@ -9,7 +9,8 @@ Venkat Raman Don (don.raman@microsoft.com)
if(substr(PHP_OS, 0, 3) != 'WIN' ) {
die('skip windows only test');
}
-$cmd = "mklink.exe /?";
+include_once __DIR__ . '/common.inc';
+$cmd = "mklink /?";
$ret = @exec($cmd, $output, $return_val);
if (count($output) == 0) {
die("mklink.exe not found in PATH");
@@ -17,7 +18,8 @@ if (count($output) == 0) {
?>
--FILE--
<?php
-$mountvol = "c:\\Windows\\System32\\mountvol.exe";
+include_once __DIR__ . '/common.inc';
+$mountvol = get_mountvol();
$old_dir = __DIR__;
$dirname = __DIR__ . "\\mnt\\test\\directory";
exec("mkdir " . $dirname, $output, $ret_val);
@@ -54,4 +56,4 @@ I am included.
I am included.
bool(true)
bool(true)
-bool(true)
+bool(true)
diff --git a/ext/standard/tests/file/windows_links/bug48746_2.phpt
b/ext/standard/tests/file/windows_links/bug48746_2.phpt
index 637152c..56924a5 100644
--- a/ext/standard/tests/file/windows_links/bug48746_2.phpt
+++ b/ext/standard/tests/file/windows_links/bug48746_2.phpt
@@ -9,15 +9,17 @@ Venkat Raman Don (don.raman@microsoft.com)
if(substr(PHP_OS, 0, 3) != 'WIN' ) {
die('skip windows only test');
}
+include_once __DIR__ . '/common.inc';
$ret = exec('mklink bug48746_tmp.lnk ' . __FILE__ .' 2>&1', $out);
if (strpos($ret, 'privilege')) {
die('skip. SeCreateSymbolicLinkPrivilege not enable for this user.');
}
-unlink('mklink bug48746_tmp.lnk');
+unlink('bug48746_tmp.lnk');
?>
--FILE--
<?php
-$mountvol = "c:\\Windows\\System32\\mountvol.exe";
+include_once __DIR__ . '/common.inc';
+$mountvol = get_mountvol();
$old_dir = __DIR__;
$dirname = __DIR__ . "\\mnt\\test\\directory";
exec("mkdir " . $dirname, $output, $ret_val);
@@ -64,4 +66,4 @@ Array
[1] => ..
[2] => a.php
[3] => b.php
-)
+)
diff --git a/ext/standard/tests/file/windows_links/bug48746_3.phpt
b/ext/standard/tests/file/windows_links/bug48746_3.phpt
index a0dcbdc..b88ab76 100644
--- a/ext/standard/tests/file/windows_links/bug48746_3.phpt
+++ b/ext/standard/tests/file/windows_links/bug48746_3.phpt
@@ -9,7 +9,8 @@ Venkat Raman Don (don.raman@microsoft.com)
if(substr(PHP_OS, 0, 3) != 'WIN' ) {
die('skip windows only test');
}
-$ret = exec('junction /? 2>&1', $out);
+include_once __DIR__ . '/common.inc';
+$ret = exec(get_junction().' /? 2>&1', $out);
if (strpos($out[0], 'recognized')) {
die('skip. junction.exe not found in PATH.');
}
@@ -17,11 +18,12 @@ if (strpos($out[0], 'recognized')) {
?>
--FILE--
<?php
+include_once __DIR__ . '/common.inc';
$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);
+exec(get_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";
@@ -45,4 +47,4 @@ Array
[1] => ..
[2] => a.php
[3] => b.php
-)
+)
diff --git a/ext/standard/tests/file/windows_links/common.inc
b/ext/standard/tests/file/windows_links/common.inc
new file mode 100644
index 0000000..2d4b47c
--- /dev/null
+++ b/ext/standard/tests/file/windows_links/common.inc
@@ -0,0 +1,23 @@
+<?php
+
+function get_sysroot() {
+ // usually c:\\windows, but not always
+ return exec('echo %SYSTEMROOT%');
+}
+
+function get_junction(){
+ // junction.exe isn't included with Windows
+ // its a sysinternals tool for working with filesystem links
+ // see: http://technet.microsoft.com/en-us/sysinternals/bb896768
+
+ // install somewhere that is on %path% or added to %path%
+ return "junction.exe";
+}
+
+function get_mountvol() {
+ $sysroot = get_sysroot();
+
+ return "$sysroot\\System32\\mountvol.exe";
+}
+
+?>