1
0
Fork 0

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
hakre 2015-03-19 14:42:13 +01:00
parent 829199c053
commit 03b634d114
1 changed files with 9 additions and 0 deletions

View File

@ -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');
}
}
}