From 348f11a86745623f6c18a45330160c894eb110d6 Mon Sep 17 00:00:00 2001 From: HypeMC Date: Sat, 25 May 2024 13:44:26 +0200 Subject: [PATCH] [PhpUnitBridge] Fix error handler triggered outside of tests --- .../Bridge/PhpUnit/DeprecationErrorHandler.php | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php index 05c67b7b37e6e..95312e2b3ce80 100644 --- a/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php +++ b/src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php @@ -368,22 +368,26 @@ private static function getPhpUnitErrorHandler() if ('PHPUnit\Util\ErrorHandler::handleError' === $eh) { return $eh; - } elseif (ErrorHandler::class === $eh) { - return function (int $errorNumber, string $errorString, string $errorFile, int $errorLine) { - ErrorHandler::instance()($errorNumber, $errorString, $errorFile, $errorLine); - - return true; - }; } foreach (debug_backtrace(\DEBUG_BACKTRACE_PROVIDE_OBJECT | \DEBUG_BACKTRACE_IGNORE_ARGS) as $frame) { - if (isset($frame['object']) && $frame['object'] instanceof TestResult) { + if (!isset($frame['object'])) { + continue; + } + + if ($frame['object'] instanceof TestResult) { return new $eh( $frame['object']->getConvertDeprecationsToExceptions(), $frame['object']->getConvertErrorsToExceptions(), $frame['object']->getConvertNoticesToExceptions(), $frame['object']->getConvertWarningsToExceptions() ); + } elseif (ErrorHandler::class === $eh && $frame['object'] instanceof TestCase) { + return function (int $errorNumber, string $errorString, string $errorFile, int $errorLine) { + ErrorHandler::instance()($errorNumber, $errorString, $errorFile, $errorLine); + + return true; + }; } }