public function init(TestDistributor $distributor)
 {
     if ($distributor->isTrackingMemory()) {
         $distributor->addListener(new HighMemoryTestListener($this->output));
     }
     $distributor->addListener(new LongTestListener($this->output));
 }
 public function onExit($status)
 {
     if ($this->pendingRequests->count() > 0) {
         $nextExpectedTest = $this->pendingRequests->dequeue();
         $this->distributor->testCompleted($this, TestResult::errorFromRequest($nextExpectedTest, "Worker{$this->id} died\n{$this->testErr}"));
     }
 }
 private function handleWriters(array $writers, TestDistributor $distributor)
 {
     foreach ($writers as $writer) {
         if (!strpos($writer, ':')) {
             throw new \InvalidArgumentException("Writers must be in the format format:filename");
         }
         list($formatter, $filename) = explode(':', $writer);
         $file = fopen($filename, 'w');
         $output = new StreamOutput($file);
         $distributor->addListener($this->getFormatter($formatter, $output));
     }
 }