mirror of
https://github.com/composer/composer
synced 2025-05-09 00:22:53 +00:00
Implemented PoolOptimizer
This commit is contained in:
parent
7eca450d9b
commit
34183f49f9
30 changed files with 1492 additions and 18 deletions
|
@ -36,6 +36,7 @@ use Composer\Package\Locker;
|
|||
use Composer\Test\Mock\FactoryMock;
|
||||
use Composer\Test\Mock\InstalledFilesystemRepositoryMock;
|
||||
use Composer\Test\Mock\InstallationManagerMock;
|
||||
use Composer\Util\Platform;
|
||||
use Symfony\Component\Console\Input\StringInput;
|
||||
use Symfony\Component\Console\Output\StreamOutput;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
@ -56,6 +57,8 @@ class InstallerTest extends TestCase
|
|||
|
||||
public function tearDown()
|
||||
{
|
||||
Platform::clearEnv('COMPOSER_POOL_OPTIMIZER');
|
||||
|
||||
chdir($this->prevCwd);
|
||||
if (isset($this->tempComposerHome) && is_dir($this->tempComposerHome)) {
|
||||
$fs = new Filesystem;
|
||||
|
@ -228,12 +231,15 @@ class InstallerTest extends TestCase
|
|||
* @param mixed[]|false $expectLock
|
||||
* @param ?mixed[] $expectInstalled
|
||||
* @param ?string $expectOutput
|
||||
* @param ?string $expectOutputOptimized
|
||||
* @param string $expect
|
||||
* @param int|string $expectResult
|
||||
*/
|
||||
public function testSlowIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult)
|
||||
public function testSlowIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expectOutputOptimized, $expect, $expectResult)
|
||||
{
|
||||
return $this->testIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult);
|
||||
Platform::putEnv('COMPOSER_POOL_OPTIMIZER', '0');
|
||||
|
||||
$this->doTestIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -248,10 +254,56 @@ class InstallerTest extends TestCase
|
|||
* @param mixed[]|false $expectLock
|
||||
* @param ?mixed[] $expectInstalled
|
||||
* @param ?string $expectOutput
|
||||
* @param ?string $expectOutputOptimized
|
||||
* @param string $expect
|
||||
* @param int|string $expectResult
|
||||
*/
|
||||
public function testIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult)
|
||||
public function testIntegrationWithPoolOptimizer($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expectOutputOptimized, $expect, $expectResult)
|
||||
{
|
||||
Platform::putEnv('COMPOSER_POOL_OPTIMIZER', '1');
|
||||
|
||||
$this->doTestIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutputOptimized ?: $expectOutput, $expect, $expectResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideIntegrationTests
|
||||
* @param string $file
|
||||
* @param string $message
|
||||
* @param ?string $condition
|
||||
* @param Config $composerConfig
|
||||
* @param ?mixed[] $lock
|
||||
* @param ?mixed[] $installed
|
||||
* @param string $run
|
||||
* @param mixed[]|false $expectLock
|
||||
* @param ?mixed[] $expectInstalled
|
||||
* @param ?string $expectOutput
|
||||
* @param ?string $expectOutputOptimized
|
||||
* @param string $expect
|
||||
* @param int|string $expectResult
|
||||
*/
|
||||
public function testIntegrationWithRawPool($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expectOutputOptimized, $expect, $expectResult)
|
||||
{
|
||||
Platform::putEnv('COMPOSER_POOL_OPTIMIZER', '0');
|
||||
|
||||
$this->doTestIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $file
|
||||
* @param string $message
|
||||
* @param ?string $condition
|
||||
* @param Config $composerConfig
|
||||
* @param ?mixed[] $lock
|
||||
* @param ?mixed[] $installed
|
||||
* @param string $run
|
||||
* @param mixed[]|false $expectLock
|
||||
* @param ?mixed[] $expectInstalled
|
||||
* @param ?string $expectOutput
|
||||
* @param string $expect
|
||||
* @param int|string $expectResult
|
||||
* @return void
|
||||
*/
|
||||
private function doTestIntegration($file, $message, $condition, $composerConfig, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult)
|
||||
{
|
||||
if ($condition) {
|
||||
eval('$res = '.$condition.';');
|
||||
|
@ -518,6 +570,7 @@ class InstallerTest extends TestCase
|
|||
$expectInstalled = JsonFile::parseJson($testData['EXPECT-INSTALLED']);
|
||||
}
|
||||
$expectOutput = isset($testData['EXPECT-OUTPUT']) ? $testData['EXPECT-OUTPUT'] : null;
|
||||
$expectOutputOptimized = isset($testData['EXPECT-OUTPUT-OPTIMIZED']) ? $testData['EXPECT-OUTPUT-OPTIMIZED'] : null;
|
||||
$expect = $testData['EXPECT'];
|
||||
if (!empty($testData['EXPECT-EXCEPTION'])) {
|
||||
$expectResult = $testData['EXPECT-EXCEPTION'];
|
||||
|
@ -533,7 +586,7 @@ class InstallerTest extends TestCase
|
|||
die(sprintf('Test "%s" is not valid: '.$e->getMessage(), str_replace($fixturesDir.'/', '', $file)));
|
||||
}
|
||||
|
||||
$tests[basename($file)] = array(str_replace($fixturesDir.'/', '', $file), $message, $condition, $composer, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expect, $expectResult);
|
||||
$tests[basename($file)] = array(str_replace($fixturesDir.'/', '', $file), $message, $condition, $composer, $lock, $installed, $run, $expectLock, $expectInstalled, $expectOutput, $expectOutputOptimized, $expect, $expectResult);
|
||||
}
|
||||
|
||||
return $tests;
|
||||
|
@ -557,6 +610,7 @@ class InstallerTest extends TestCase
|
|||
'EXPECT-LOCK' => false,
|
||||
'EXPECT-INSTALLED' => false,
|
||||
'EXPECT-OUTPUT' => false,
|
||||
'EXPECT-OUTPUT-OPTIMIZED' => false,
|
||||
'EXPECT-EXIT-CODE' => false,
|
||||
'EXPECT-EXCEPTION' => false,
|
||||
'EXPECT' => true,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue