Prevent fatal error on missing symlink() function in tests
The testsuite didn't run through for me because the php symlink() function was missing. It is only available on Windows Visa/Server 2008 or higher. This commit fixes the issue by checking if the method exists, and if not, marks the test as skipped because of a non-matching precondition.pull/3854/head
parent
829199c053
commit
03b634d114
|
@ -188,6 +188,7 @@ class FilesystemTest extends TestCase
|
|||
@mkdir($basepath . "/real", 0777, true);
|
||||
touch($basepath . "/real/FILE");
|
||||
|
||||
$this->skipTestIfSymlinkPhpFunctionIsMissing();
|
||||
$result = @symlink($basepath . "/real", $symlinked);
|
||||
|
||||
if (!$result) {
|
||||
|
@ -216,6 +217,7 @@ class FilesystemTest extends TestCase
|
|||
$symlinked = $basepath . "/linked";
|
||||
$symlinkedTrailingSlash = $symlinked . "/";
|
||||
|
||||
$this->skipTestIfSymlinkPhpFunctionIsMissing();
|
||||
$result = @symlink($basepath . "/real", $symlinked);
|
||||
|
||||
if (!$result) {
|
||||
|
@ -237,4 +239,11 @@ class FilesystemTest extends TestCase
|
|||
$this->assertFalse(file_exists($symlinkedTrailingSlash));
|
||||
$this->assertFalse(file_exists($symlinked));
|
||||
}
|
||||
|
||||
private function skipTestIfSymlinkPhpFunctionIsMissing()
|
||||
{
|
||||
if (!function_exists('symlink')) {
|
||||
$this->markTestSkipped('The php symlink() function for symbolic links is not available on this platform');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue