Skip to content

Commit a7a2a93

Browse files
committed
[Filesystem] fix readlink for Windows
1 parent f0f0665 commit a7a2a93

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Diff for: Filesystem.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -416,14 +416,14 @@ public function readlink($path, $canonicalize = false)
416416
return null;
417417
}
418418

419-
if ('\\' === \DIRECTORY_SEPARATOR) {
419+
if ('\\' === \DIRECTORY_SEPARATOR && \PHP_VERSION_ID < 70410) {
420420
$path = readlink($path);
421421
}
422422

423423
return realpath($path);
424424
}
425425

426-
if ('\\' === \DIRECTORY_SEPARATOR) {
426+
if ('\\' === \DIRECTORY_SEPARATOR && \PHP_VERSION_ID < 70400) {
427427
return realpath($path);
428428
}
429429

Diff for: Tests/FilesystemTest.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ public function testRemoveCleansInvalidLinks()
376376

377377
// create symlink to nonexistent dir
378378
rmdir($basePath.'dir');
379-
$this->assertFalse('\\' === \DIRECTORY_SEPARATOR ? @readlink($basePath.'dir-link') : is_dir($basePath.'dir-link'));
379+
$this->assertFalse('\\' === \DIRECTORY_SEPARATOR && \PHP_VERSION_ID < 70400 ? @readlink($basePath.'dir-link') : is_dir($basePath.'dir-link'));
380380

381381
$this->filesystem->remove($basePath);
382382

@@ -1032,7 +1032,12 @@ public function testReadAbsoluteLink()
10321032
$this->filesystem->symlink($link1, $link2);
10331033

10341034
$this->assertEquals($file, $this->filesystem->readlink($link1));
1035-
$this->assertEquals($link1, $this->filesystem->readlink($link2));
1035+
1036+
if (!('\\' == \DIRECTORY_SEPARATOR && \PHP_MAJOR_VERSION === 7 && \PHP_MINOR_VERSION === 3)) {
1037+
// Skip for Windows with PHP 7.3.*
1038+
$this->assertEquals($link1, $this->filesystem->readlink($link2));
1039+
}
1040+
10361041
$this->assertEquals($file, $this->filesystem->readlink($link1, true));
10371042
$this->assertEquals($file, $this->filesystem->readlink($link2, true));
10381043
$this->assertEquals($file, $this->filesystem->readlink($file, true));

0 commit comments

Comments
 (0)