Merge branch '2.7' into 2.8
* 2.7: [Cache] Fix dumping SplDoublyLinkedList iter mode [Console] fixed PHP7 Errors when not using Dispatcher
This commit is contained in:
commit
cffa826146
@ -846,7 +846,13 @@ class Application
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (null === $this->dispatcher) {
|
if (null === $this->dispatcher) {
|
||||||
return $command->run($input, $output);
|
try {
|
||||||
|
return $command->run($input, $output);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
throw new FatalThrowableError($e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// bind before the console.command event, so the listeners have access to input options/arguments
|
// bind before the console.command event, so the listeners have access to input options/arguments
|
||||||
|
@ -955,6 +955,24 @@ class ApplicationTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertContains('before.foo.caught.after.', $tester->getDisplay());
|
$this->assertContains('before.foo.caught.after.', $tester->getDisplay());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRunWithError()
|
||||||
|
{
|
||||||
|
$this->setExpectedException('Exception', 'dymerr');
|
||||||
|
|
||||||
|
$application = new Application();
|
||||||
|
$application->setAutoExit(false);
|
||||||
|
$application->setCatchExceptions(false);
|
||||||
|
|
||||||
|
$application->register('dym')->setCode(function (InputInterface $input, OutputInterface $output) {
|
||||||
|
$output->write('dym.');
|
||||||
|
|
||||||
|
throw new \Error('dymerr');
|
||||||
|
});
|
||||||
|
|
||||||
|
$tester = new ApplicationTester($application);
|
||||||
|
$tester->run(array('command' => 'dym'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @expectedException \LogicException
|
* @expectedException \LogicException
|
||||||
* @expectedExceptionMessage caught
|
* @expectedExceptionMessage caught
|
||||||
|
@ -71,7 +71,7 @@ class SplCaster
|
|||||||
$c->setIteratorMode(\SplDoublyLinkedList::IT_MODE_KEEP | $mode & ~\SplDoublyLinkedList::IT_MODE_DELETE);
|
$c->setIteratorMode(\SplDoublyLinkedList::IT_MODE_KEEP | $mode & ~\SplDoublyLinkedList::IT_MODE_DELETE);
|
||||||
|
|
||||||
$a += array(
|
$a += array(
|
||||||
$prefix.'mode' => new ConstStub((($mode & \SplDoublyLinkedList::IT_MODE_LIFO) ? 'IT_MODE_LIFO' : 'IT_MODE_FIFO').' | '.(($mode & \SplDoublyLinkedList::IT_MODE_KEEP) ? 'IT_MODE_KEEP' : 'IT_MODE_DELETE'), $mode),
|
$prefix.'mode' => new ConstStub((($mode & \SplDoublyLinkedList::IT_MODE_LIFO) ? 'IT_MODE_LIFO' : 'IT_MODE_FIFO').' | '.(($mode & \SplDoublyLinkedList::IT_MODE_DELETE) ? 'IT_MODE_DELETE' : 'IT_MODE_KEEP'), $mode),
|
||||||
$prefix.'dllist' => iterator_to_array($c),
|
$prefix.'dllist' => iterator_to_array($c),
|
||||||
);
|
);
|
||||||
$c->setIteratorMode($mode);
|
$c->setIteratorMode($mode);
|
||||||
|
@ -115,4 +115,30 @@ SplFileObject {
|
|||||||
EOTXT;
|
EOTXT;
|
||||||
$this->assertDumpMatchesFormat($dump, $var);
|
$this->assertDumpMatchesFormat($dump, $var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider provideCastSplDoublyLinkedList
|
||||||
|
*/
|
||||||
|
public function testCastSplDoublyLinkedList($modeValue, $modeDump)
|
||||||
|
{
|
||||||
|
$var = new \SplDoublyLinkedList();
|
||||||
|
$var->setIteratorMode($modeValue);
|
||||||
|
$dump = <<<EOTXT
|
||||||
|
SplDoublyLinkedList {
|
||||||
|
%Amode: $modeDump
|
||||||
|
dllist: []
|
||||||
|
}
|
||||||
|
EOTXT;
|
||||||
|
$this->assertDumpMatchesFormat($dump, $var);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function provideCastSplDoublyLinkedList()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'),
|
||||||
|
array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'),
|
||||||
|
array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'),
|
||||||
|
array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user