Merge branch '3.4' into 4.1
* 3.4: [Console] Move back root exception to stack trace in verbose mode
This commit is contained in:
commit
c16d0d98fe
@ -793,6 +793,13 @@ class Application
|
|||||||
// exception related properties
|
// exception related properties
|
||||||
$trace = $e->getTrace();
|
$trace = $e->getTrace();
|
||||||
|
|
||||||
|
array_unshift($trace, array(
|
||||||
|
'function' => '',
|
||||||
|
'file' => $e->getFile() ?: 'n/a',
|
||||||
|
'line' => $e->getLine() ?: 'n/a',
|
||||||
|
'args' => array(),
|
||||||
|
));
|
||||||
|
|
||||||
for ($i = 0, $count = \count($trace); $i < $count; ++$i) {
|
for ($i = 0, $count = \count($trace); $i < $count; ++$i) {
|
||||||
$class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
|
$class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
|
||||||
$type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
|
$type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
|
||||||
|
@ -824,6 +824,20 @@ class ApplicationTest extends TestCase
|
|||||||
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_linebreaks.txt', $tester->getDisplay(true), '->renderException() keep multiple line breaks');
|
$this->assertStringMatchesFormatFile(self::$fixturesPath.'/application_renderexception_linebreaks.txt', $tester->getDisplay(true), '->renderException() keep multiple line breaks');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRenderExceptionStackTraceContainsRootException()
|
||||||
|
{
|
||||||
|
$application = new Application();
|
||||||
|
$application->setAutoExit(false);
|
||||||
|
$application->register('foo')->setCode(function () {
|
||||||
|
throw new \Exception('Verbose exception');
|
||||||
|
});
|
||||||
|
|
||||||
|
$tester = new ApplicationTester($application);
|
||||||
|
$tester->run(array('command' => 'foo'), array('decorated' => false, 'verbosity' => Output::VERBOSITY_VERBOSE));
|
||||||
|
|
||||||
|
$this->assertContains(sprintf('() at %s:', __FILE__), $tester->getDisplay());
|
||||||
|
}
|
||||||
|
|
||||||
public function testRun()
|
public function testRun()
|
||||||
{
|
{
|
||||||
$application = new Application();
|
$application = new Application();
|
||||||
|
Reference in New Issue
Block a user