diff --git a/spec/Suite/Suite.spec.php b/spec/Suite/Suite.spec.php index ad875947..a6a05785 100644 --- a/spec/Suite/Suite.spec.php +++ b/spec/Suite/Suite.spec.php @@ -1586,9 +1586,19 @@ public function __call($method, $params = []) }); - it('ignores supressed errors', function () { + it('respects the error_reporting() level', function () { + + $closure = function () { + trigger_error('deprecated', E_USER_DEPRECATED); + }; + + error_reporting(E_ALL ^ E_USER_DEPRECATED); + expect($closure)->not->toThrow(); + error_reporting(E_ALL); - skipIf(PHP_MAJOR_VERSION >= 8); + }); + + it('ignores supressed errors', function () { $closure = function () { $failing = function () { diff --git a/src/Suite.php b/src/Suite.php index 56757c28..bd32e793 100644 --- a/src/Suite.php +++ b/src/Suite.php @@ -146,7 +146,7 @@ protected function _errorHandler($enable, $options = []) return restore_error_handler(); } $handler = function ($code, $message, $file, $line = 0, $args = []) { - if (error_reporting() === 0) { + if (!(error_reporting() & $code)) { return; } $trace = debug_backtrace();