/** * @param ProcessEvent $event */ public function stopOnFailure(ProcessEvent $event) { /** @var ScenarioProcess $process */ $process = $event->getProcess(); if ($process->withError()) { $this->parallelProcessRunner->stop(); $this->terminate(1); } }
/** * @param int $maxParallelProcess * @param mixed $processes * @param array $expectedResult * * @dataProvider providerStop */ public function testStop($maxParallelProcess, $processes, array $expectedResult) { $runner = new ParallelProcessRunner(); $runner->setMaxParallelProcess($maxParallelProcess); $runner->add($processes); $runner->getEventDispatcher()->addListener(ParallelProcessRunnerEventType::PROCESS_STOP_AFTER, function (ProcessEvent $event) use($runner) { if ($event->getProcess()->getOutput() == 'stop') { $runner->stop(); } }); $this->assertEquals($expectedResult, $this->getOutputArray($runner->run())); }