From 2b8ad7dc2a3e42a02263a1f33bf11f9d8e0eb5e7 Mon Sep 17 00:00:00 2001 From: johnstevenson Date: Tue, 27 Dec 2016 18:44:20 +0000 Subject: [PATCH] Clear xdebug version if restart fails, fixes #5995 --- src/Composer/XdebugHandler.php | 5 +++++ tests/Composer/Test/XdebugHandlerTest.php | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/Composer/XdebugHandler.php b/src/Composer/XdebugHandler.php index fa766122f..35581acf6 100644 --- a/src/Composer/XdebugHandler.php +++ b/src/Composer/XdebugHandler.php @@ -79,6 +79,11 @@ class XdebugHandler putenv('PHP_INI_SCAN_DIR'); } } + + // Clear version if the restart failed to disable xdebug + if ($this->loaded) { + putenv(self::ENV_VERSION); + } } } diff --git a/tests/Composer/Test/XdebugHandlerTest.php b/tests/Composer/Test/XdebugHandlerTest.php index 3dd1e9f53..addfe8da0 100644 --- a/tests/Composer/Test/XdebugHandlerTest.php +++ b/tests/Composer/Test/XdebugHandlerTest.php @@ -113,6 +113,12 @@ class XdebugHandlerTest extends \PHPUnit_Framework_TestCase $xdebug = new XdebugHandlerMock($loaded); $xdebug->check(); $this->assertEquals($xdebug->testVersion, getenv(XdebugHandlerMock::ENV_VERSION)); + + // Mimic successful restart + $loaded = false; + $xdebug = new XdebugHandlerMock($loaded); + $xdebug->check(); + $this->assertEquals($xdebug->testVersion, getenv(XdebugHandlerMock::ENV_VERSION)); } public function testEnvVersionWhenNotLoaded() @@ -124,6 +130,19 @@ class XdebugHandlerTest extends \PHPUnit_Framework_TestCase $this->assertEquals(false, getenv(XdebugHandlerMock::ENV_VERSION)); } + public function testEnvVersionWhenRestartFails() + { + $loaded = true; + + $xdebug = new XdebugHandlerMock($loaded); + $xdebug->check(); + + // Mimic failed restart + $xdebug = new XdebugHandlerMock($loaded); + $xdebug->check(); + $this->assertEquals(false, getenv(XdebugHandlerMock::ENV_VERSION)); + } + public static function setUpBeforeClass() { // Save current state