feature #25997 Always show all deprecations except legacy ones when not weak (greg0ire)
This PR was merged into the 4.1-dev branch.
Discussion
----------
Always show all deprecations except legacy ones when not weak
When using any mode but the weak mode, you want your build to fail on some or
all deprecations, but it is still nice to be able to see what you could
fix without having to change modes.
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
<!--
- Bug fixes must be submitted against the lowest branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against the master branch.
- Replace this comment by a description of what your PR is solving.
-->
Commits
-------
9e37873860
Always show all deprecations except legacy ones
This commit is contained in:
commit
101a7953d2
@ -1,6 +1,12 @@
|
||||
CHANGELOG
|
||||
=========
|
||||
|
||||
4.1.0
|
||||
-----
|
||||
|
||||
* all deprecations but those from tests marked with `@group legacy` are always
|
||||
displayed when not in `weak` mode.
|
||||
|
||||
4.0.0
|
||||
-----
|
||||
|
||||
|
@ -110,8 +110,7 @@ class DeprecationErrorHandler
|
||||
|
||||
$trace = debug_backtrace(true);
|
||||
$group = 'other';
|
||||
$isVendor = false;
|
||||
$isWeak = DeprecationErrorHandler::MODE_WEAK === $mode || (DeprecationErrorHandler::MODE_WEAK_VENDORS === $mode && $isVendor = $inVendors($file));
|
||||
$isVendor = DeprecationErrorHandler::MODE_WEAK_VENDORS === $mode && $inVendors($file);
|
||||
|
||||
$i = count($trace);
|
||||
while (1 < $i && (!isset($trace[--$i]['class']) || ('ReflectionMethod' === $trace[$i]['class'] || 0 === strpos($trace[$i]['class'], 'PHPUnit_') || 0 === strpos($trace[$i]['class'], 'PHPUnit\\')))) {
|
||||
@ -128,7 +127,7 @@ class DeprecationErrorHandler
|
||||
// \Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerTrait::endTest()
|
||||
// then we need to use the serialized information to determine
|
||||
// if the error has been triggered from vendor code.
|
||||
$isWeak = DeprecationErrorHandler::MODE_WEAK === $mode || (DeprecationErrorHandler::MODE_WEAK_VENDORS === $mode && $isVendor = isset($parsedMsg['triggering_file']) && $inVendors($parsedMsg['triggering_file']));
|
||||
$isVendor = DeprecationErrorHandler::MODE_WEAK_VENDORS === $mode && isset($parsedMsg['triggering_file']) && $inVendors($parsedMsg['triggering_file']);
|
||||
} else {
|
||||
$class = isset($trace[$i]['object']) ? get_class($trace[$i]['object']) : $trace[$i]['class'];
|
||||
$method = $trace[$i]['function'];
|
||||
@ -145,7 +144,7 @@ class DeprecationErrorHandler
|
||||
|| in_array('legacy', $Test::getGroups($class, $method), true)
|
||||
) {
|
||||
$group = 'legacy';
|
||||
} elseif (DeprecationErrorHandler::MODE_WEAK_VENDORS === $mode && $isVendor) {
|
||||
} elseif ($isVendor) {
|
||||
$group = 'remaining vendor';
|
||||
} else {
|
||||
$group = 'remaining';
|
||||
@ -165,13 +164,13 @@ class DeprecationErrorHandler
|
||||
|
||||
exit(1);
|
||||
}
|
||||
if ('legacy' !== $group && !$isWeak) {
|
||||
if ('legacy' !== $group && DeprecationErrorHandler::MODE_WEAK !== $mode) {
|
||||
$ref = &$deprecations[$group][$msg]['count'];
|
||||
++$ref;
|
||||
$ref = &$deprecations[$group][$msg][$class.'::'.$method];
|
||||
++$ref;
|
||||
}
|
||||
} elseif (!$isWeak) {
|
||||
} elseif (DeprecationErrorHandler::MODE_WEAK !== $mode) {
|
||||
$ref = &$deprecations[$group][$msg]['count'];
|
||||
++$ref;
|
||||
}
|
||||
|
@ -37,4 +37,3 @@ Unsilenced deprecation notices (1)
|
||||
Legacy deprecation notices (1)
|
||||
|
||||
Other deprecation notices (1)
|
||||
|
||||
|
@ -21,3 +21,5 @@ eval("@trigger_error('who knows where I come from?', E_USER_DEPRECATED);")
|
||||
--EXPECTF--
|
||||
|
||||
Other deprecation notices (1)
|
||||
|
||||
1x: who knows where I come from?
|
||||
|
@ -23,3 +23,5 @@ include 'phar://deprecation.phar/deprecation.php';
|
||||
--EXPECTF--
|
||||
|
||||
Other deprecation notices (1)
|
||||
|
||||
1x: I come from… afar! :D
|
||||
|
@ -22,8 +22,19 @@ require __DIR__.'/fake_vendor/acme/lib/deprecation_riddled.php';
|
||||
--EXPECTF--
|
||||
Unsilenced deprecation notices (2)
|
||||
|
||||
1x: unsilenced foo deprecation
|
||||
1x in FooTestCase::testLegacyFoo
|
||||
|
||||
1x: unsilenced bar deprecation
|
||||
1x in FooTestCase::testNonLegacyBar
|
||||
|
||||
Remaining vendor deprecation notices (1)
|
||||
|
||||
1x: silenced bar deprecation
|
||||
1x in FooTestCase::testNonLegacyBar
|
||||
|
||||
Legacy deprecation notices (1)
|
||||
|
||||
Other deprecation notices (1)
|
||||
|
||||
1x: root deprecation
|
||||
|
Reference in New Issue
Block a user