8000 fix deprecation triggering test detection · symfony/symfony@3e35788 · GitHub
[go: up one dir, main page]

Skip to content

Commit 3e35788

Browse files
committed
fix deprecation triggering test detection
1 parent be9382a commit 3e35788

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

src/Symfony/Bridge/PhpUnit/DeprecationErrorHandler.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,16 @@ public static function register($mode = 0)
116116
}
117117

118118
if (isset($trace[$i]['object']) || isset($trace[$i]['class'])) {
119-
$class = isset($trace[$i]['object']) ? get_class($trace[$i]['object']) : $trace[$i]['class'];
120-
$method = $trace[$i]['function'];
119+
if (isset($trace[$i]['class']) && in_array($trace[$i]['class'], array('Symfony\Bridge\PhpUnit\SymfonyTestsListener', 'Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListener'), true)) {
120+
$parsedMsg = unserialize($msg);
121+
$msg = $parsedMsg['deprecation'];
122+
$class = $parsedMsg['class'];
123+
$method = $parsedMsg['method'];
124+
} else {
125+
$class = isset($trace[$i]['object']) ? get_class($trace[$i]['object']) : $trace[$i]['class'];
126+
$method = $trace[$i]['function'];
127+
}
128+
121129
$Test = $UtilPrefix.'Test';
122130

123131
if (0 !== error_reporting()) {
@@ -245,7 +253,14 @@ public static function collectDeprecations($outputFile)
245253
if (E_USER_DEPRECATED !== $type && E_DEPRECATED !== $type) {
246254
return $previousErrorHandler ? $previousErrorHandler($type, $msg, $file, $line, $context) : false;
247255
}
248-
$deprecations[] = array(error_reporting(), $msg);
256+
$trace = debug_backtrace(true);
257+
$i = count($trace);
258+
while (1 < $i && (!isset($trace[--$i]['class']) || ('ReflectionMethod' === $trace[$i]['class'] || 0 === strpos($trace[$i]['class'], 'PHPUnit_') || 0 === strpos($trace[$i]['class'], 'PHPUnit\\')))) {
259+
// No-op
260+
}
261+
$class = isset($trace[$i]['object']) ? get_class($trace[$i]['object']) : $trace[$i]['class'];
262+
$method = $trace[$i]['function'];
263+
$deprecations[] = array(error_reporting(), $msg, $class, $method);
249264
});
250265
register_shutdown_function(function () use ($outputFile, &$deprecations) {
251266
file_put_contents($outputFile, serialize($deprecations));

src/Symfony/Bridge/PhpUnit/Legacy/SymfonyTestsListenerTrait.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,9 @@ public function endTest($test, $time)
264264
unlink($this->runsInSeparateProcess);
265265
foreach ($deprecations ? unserialize($deprecations) : array() as $deprecation) {
266266
if ($deprecation[0]) {
267-
trigger_error($deprecation[1], E_USER_DEPRECATED);
267+
trigger_error(serialize(array('deprecation' => $deprecation[1], 'class' => $deprecation[2], 'method' => $deprecation[3])), E_USER_DEPRECATED);
268268
} else {
269-
@trigger_error($deprecation[1], E_USER_DEPRECATED);
269+
@trigger_error(serialize(array('deprecation' => $deprecation[1], 'class' => $deprecation[2], 'method' => $deprecation[3])), E_USER_DEPRECATED);
270270
}
271271
}
272272
$this->runsInSeparateProcess = false;

0 commit comments

Comments
 (0)
0