Prevent cache gc from happening during test suite runs, and add output so it is clear why it is blocking for a bit

main
Jordi Boggiano 3 years ago
parent a23f8a3d6c
commit b751156e1c
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC

@ -16,6 +16,7 @@
> >
<php> <php>
<env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/> <env name="SYMFONY_DEPRECATIONS_HELPER" value="weak"/>
<env name="COMPOSER_TEST_SUITE" value="1"/>
</php> </php>
<testsuites> <testsuites>
<testsuite name="Composer Test Suite"> <testsuite name="Composer Test Suite">

@ -24,7 +24,7 @@ use Symfony\Component\Finder\Finder;
*/ */
class Cache class Cache
{ {
private static $cacheCollected = false; private static $cacheCollected = null;
private $io; private $io;
private $root; private $root;
private $enabled = true; private $enabled = true;
@ -191,7 +191,20 @@ class Cache
public function gcIsNecessary() public function gcIsNecessary()
{ {
return (!self::$cacheCollected && !mt_rand(0, 50)); if (self::$cacheCollected) {
return false;
}
self::$cacheCollected = true;
if (getenv('COMPOSER_TEST_SUITE')) {
return false;
}
if (PHP_VERSION_ID > 70000) {
return !random_int(0, 50);
}
return !mt_rand(0, 50);
} }
public function remove($file) public function remove($file)

@ -84,6 +84,7 @@ class FileDownloader implements DownloaderInterface, ChangeReportInterface
$this->filesystem = $filesystem ?: new Filesystem($this->process); $this->filesystem = $filesystem ?: new Filesystem($this->process);
if ($this->cache && $this->cache->gcIsNecessary()) { if ($this->cache && $this->cache->gcIsNecessary()) {
$this->io->writeError('Running cache garbage collection', true, IOInterface::VERY_VERBOSE);
$this->cache->gc($config->get('cache-files-ttl'), $config->get('cache-files-maxsize')); $this->cache->gc($config->get('cache-files-ttl'), $config->get('cache-files-maxsize'));
} }
} }

Loading…
Cancel
Save