[PhpUnitBridge] Replace "weak-verbose" by "deprecations upper bound" mode
This commit is contained in:
parent
e18a42af49
commit
58cd3ee4bc
@ -19,15 +19,29 @@ namespace Symfony\Bridge\PhpUnit;
|
|||||||
class DeprecationErrorHandler
|
class DeprecationErrorHandler
|
||||||
{
|
{
|
||||||
const MODE_WEAK = 'weak';
|
const MODE_WEAK = 'weak';
|
||||||
const MODE_WEAK_VERBOSE = 'weak-verbose';
|
|
||||||
|
|
||||||
private static $isRegistered = false;
|
private static $isRegistered = false;
|
||||||
|
|
||||||
public static function register($mode = false)
|
/**
|
||||||
|
* Registers and configures the deprecation handler.
|
||||||
|
*
|
||||||
|
* The following reporting modes are supported:
|
||||||
|
* - use "weak" to hide the deprecation report but keep a global count;
|
||||||
|
* - use "/some-regexp/" to stop the test suite whenever a deprecation
|
||||||
|
* message matches the given regular expression;
|
||||||
|
* - use a number to define the upper bound of allowed deprecations,
|
||||||
|
* making the test suite fail whenever more notices are trigerred.
|
||||||
|
*
|
||||||
|
* @param int|string|false $mode The reporting mode. Defaults to not allowing any deprecations.
|
||||||
|
*/
|
||||||
|
public static function register($mode = 0)
|
||||||
{
|
{
|
||||||
if (self::$isRegistered) {
|
if (self::$isRegistered) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (self::MODE_WEAK !== $mode && (!isset($mode[0]) || '/' !== $mode[0])) {
|
||||||
|
$mode = preg_match('/^[1-9][0-9]*$/', $mode) ? (int) $mode : 0;
|
||||||
|
}
|
||||||
$deprecations = array(
|
$deprecations = array(
|
||||||
'unsilencedCount' => 0,
|
'unsilencedCount' => 0,
|
||||||
'remainingCount' => 0,
|
'remainingCount' => 0,
|
||||||
@ -147,7 +161,7 @@ class DeprecationErrorHandler
|
|||||||
if (!empty($notices)) {
|
if (!empty($notices)) {
|
||||||
echo "\n";
|
echo "\n";
|
||||||
}
|
}
|
||||||
if (DeprecationErrorHandler::MODE_WEAK !== $mode && DeprecationErrorHandler::MODE_WEAK_VERBOSE !== $mode && ($deprecations['unsilenced'] || $deprecations['remaining'] || $deprecations['other'])) {
|
if (DeprecationErrorHandler::MODE_WEAK !== $mode && $mode < $deprecations['unsilencedCount'] + $deprecations['remainingCount'] + $deprecations['otherCount']) {
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -12,11 +12,11 @@ It comes with the following features:
|
|||||||
* display the stack trace of a deprecation on-demand.
|
* display the stack trace of a deprecation on-demand.
|
||||||
|
|
||||||
By default any non-legacy-tagged or any non-@-silenced deprecation notices will
|
By default any non-legacy-tagged or any non-@-silenced deprecation notices will
|
||||||
make tests fail.
|
make tests fail. This can be changed by setting the `SYMFONY_DEPRECATIONS_HELPER`
|
||||||
This can be changed by setting the `SYMFONY_DEPRECATIONS_HELPER` environment
|
environment variable to the maximum number of deprecations that are allowed to be
|
||||||
variable to `weak` or `weak-verbose`. This will make the bridge ignore
|
triggered before making the test suite fail. Alternatively, setting it to `weak`
|
||||||
deprecation notices and is useful to projects that must use deprecated interfaces
|
will make the bridge ignore any deprecation notices and is useful to projects
|
||||||
for backward compatibility reasons.
|
that must use deprecated interfaces for backward compatibility reasons.
|
||||||
|
|
||||||
A summary of deprecation notices is displayed at the end of the test suite:
|
A summary of deprecation notices is displayed at the end of the test suite:
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user