1
0
Fork 0

Use writeError for xdebug warning and fix running test suite with xdebug

pull/4621/head
Jordi Boggiano 2015-11-19 17:36:52 +00:00
parent d98b134dc3
commit cf6cd83335
2 changed files with 15 additions and 8 deletions

View File

@ -57,7 +57,7 @@ class Application extends BaseApplication
public function __construct()
{
static $shutdownRegistered = false;
if (function_exists('ini_set') && extension_loaded('xdebug')) {
ini_set('xdebug.show_exception_trace', false);
ini_set('xdebug.scream', false);
@ -66,13 +66,13 @@ class Application extends BaseApplication
if (function_exists('date_default_timezone_set') && function_exists('date_default_timezone_get')) {
date_default_timezone_set(@date_default_timezone_get());
}
if (!$shutdownRegistered) {
$shutdownRegistered = true;
register_shutdown_function(function() {
$lastError = error_get_last();
if ($lastError && $lastError['message'] &&
(strpos($lastError['message'], 'Allowed memory') !== false /*Zend PHP out of memory error*/ ||
strpos($lastError['message'], 'exceeded memory') !== false /*HHVM out of memory errors*/)) {
@ -110,10 +110,10 @@ class Application extends BaseApplication
if (PHP_VERSION_ID < 50302) {
$io->writeError('<warning>Composer only officially supports PHP 5.3.2 and above, you will most likely encounter problems with your PHP '.PHP_VERSION.', upgrading is strongly recommended.</warning>');
}
if (extension_loaded('xdebug')) {
$io->write('<warning>You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug</warning>');
}
$io->writeError('<warning>You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug</warning>');
}
if (defined('COMPOSER_DEV_WARNING_TIME')) {
$commandName = '';

View File

@ -28,7 +28,14 @@ class ApplicationTest extends TestCase
->method('getFirstArgument')
->will($this->returnValue('list'));
$outputMock->expects($this->once())
$index = 0;
if (extension_loaded('xdebug')) {
$outputMock->expects($this->at($index++))
->method("write")
->with($this->equalTo('<warning>You are running composer with xdebug enabled. This has a major impact on runtime performance. See https://getcomposer.org/xdebug</warning>'));
}
$outputMock->expects($this->at($index++))
->method("write")
->with($this->equalTo(sprintf('<warning>Warning: This development build of composer is over 60 days old. It is recommended to update it by running "%s self-update" to get the latest version.</warning>', $_SERVER['PHP_SELF'])));