Browse Source

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

Jordi Boggiano 9 years ago
parent
commit
cf6cd83335
2 changed files with 15 additions and 8 deletions
  1. 7 7
      src/Composer/Console/Application.php
  2. 8 1
      tests/Composer/Test/ApplicationTest.php

+ 7 - 7
src/Composer/Console/Application.php

@@ -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 = '';

+ 8 - 1
tests/Composer/Test/ApplicationTest.php

@@ -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'])));