8000 Merge branch '5.1' into 5.x · symfony/symfony@7b62f09 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7b62f09

Browse files
committed
Merge branch '5.1' into 5.x
* 5.1: [Filesystem] Check if failed unlink was caused by permission denied fix APCu installation for the nightly build job skip Vulcain-based tests if the binary cannot be executed
2 parents e641738 + baf8c23 commit 7b62f09

File tree

4 files changed

+34
-3
lines changed

4 files changed

+34
-3
lines changed

.travis.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,15 +157,14 @@ before_install:
157157
fi
158158
if [[ $PHP = nightly ]]; then
159159
tfold ext.memcached tpecl memcached-3.1.5 memcached.so $INI
160-
tfold ext.apcu install_apcu_dev 9c36db45100d4d27ec33072f4be90f1f5a0108b7 $INI
161160
else
162-
tfold ext.apcu tpecl apcu-5.1.19 apcu.so $INI
163161
tfold ext.mongodb tpecl mongodb-1.6.16 mongodb.so $INI
164162
tfold ext.zookeeper tpecl zookeeper-0.7.2 zookeeper.so $INI
165163
tfold ext.amqp tpecl amqp-1.10.2 amqp.so $INI
166164
tfold ext.redis tpecl redis-5.2.2 redis.so $INI "no"
167165
fi
168166
167+
tfold ext.apcu tpecl apcu-5.1.19 apcu.so $INI
169168
tfold ext.igbinary tpecl igbinary-3.1.6 igbinary.so $INI
170169
done
171170
- |

src/Symfony/Component/Filesystem/Filesystem.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public function remove($files)
175175
if (!self::box('rmdir', $file) && file_exists($file)) {
176176
throw new IOException(sprintf('Failed to remove directory "%s": ', $file).self::$lastError);
177177
}
178-
} elseif (!self::box('unlink', $file) && file_exists($file)) {
178+
} elseif (!self::box('unlink', $file) && (false !== strpos(self::$lastError, 'Permission denied') || file_exists($file))) {
179179
throw new IOException(sprintf('Failed to remove file "%s": ', $file).self::$lastError);
180180
}
181181
}

src/Symfony/Component/Filesystem/Tests/FilesystemTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace Symfony\Component\Filesystem\Tests;
1313

14+
use Symfony\Component\Filesystem\Exception\IOException;
15+
1416
/**
1517
* Test class for Filesystem.
1618
*/
@@ -334,6 +336,28 @@ public function testRemoveIgnoresNonExistingFiles()
334336
$this->assertFileDoesNotExist($basePath.'dir');
335337
}
336338

339+
public function testRemoveThrowsExceptionOnPermissionDenied()
340+
{
341+
$this->markAsSkippedIfChmodIsMissing();
342+
343+
$basePath = $this->workspace.\DIRECTORY_SEPARATOR.'dir_permissions';
344+
mkdir($basePath);
345+
$file = $basePath.\DIRECTORY_SEPARATOR.'file';
346+
touch($file);
347+
chmod($basePath, 0400);
348+
349+
try {
350+
$this->filesystem->remove($file);
351+
$this->fail('Filesystem::remove() should throw an exception');
352+
} catch (IOException $e) {
353+
$this->assertStringContainsString('Failed to remove file "'.$file.'"', $e->getMessage());
354+
$this->assertStringContainsString('Permission denied', $e->getMessage());
355+
} finally {
356+
// Make sure we can clean up this file
357+
chmod($basePath, 0777);
358+
}
359+
}
360+
337361
public function testRemoveCleansInvalidLinks()
338362
{
339363
$this->markAsSkippedIfSymlinkIsMissing();

src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,14 @@ private static function startVulcain(HttpClientInterface $client)
302302
sleep('\\' === \DIRECTORY_SEPARATOR ? 10 : 1);
303303

304304
if (!$process->isRunning()) {
305+
if ('\\' !== \DIRECTORY_SEPARATOR && 127 === $process->getExitCode()) {
306+
self::markTestSkipped('vulcain binary is missing');
307+
}
308+
309+
if ('\\' !== \DIRECTORY_SEPARATOR && 126 === $process->getExitCode()) {
310+
self::markTestSkipped('vulcain binary is not executable');
311+
}
312+
305313
self::markTestSkipped((new ProcessFailedException($process))->getMessage());
306314
}
307315

0 commit comments

Comments
 (0)
0