/**
  * Tests running a background process.
  *
  * @covers Cocur\BackgroundProcess\BackgroundProcess::__construct()
  * @covers Cocur\BackgroundProcess\BackgroundProcess::run()
  * @covers Cocur\BackgroundProcess\BackgroundProcess::isRunning()
  * @covers Cocur\BackgroundProcess\BackgroundProcess::getPid()
  * @covers Cocur\BackgroundProcess\BackgroundProcess::stop()
  */
 public function testRun()
 {
     $process = new BackgroundProcess('sleep 5');
     $this->assertFalse($process->isRunning(), 'process should not run');
     $process->run();
     $this->assertNotNull($process->getPid(), 'process should have a pid');
     $this->assertTrue($process->isRunning(), 'process should run');
     $this->assertTrue($process->stop(), 'stop process');
     $this->assertFalse($process->isRunning(), 'processes should not run anymore');
     $this->assertFalse($process->stop(), 'cannot stop process that is not running');
 }
 /**
  * @test
  * @covers Cocur\BackgroundProcess\BackgroundProcess::stop()
  * @covers Cocur\BackgroundProcess\BackgroundProcess::getOS()
  */
 public function stopShouldStopRunningProcess()
 {
     if (preg_match('/^WIN/', PHP_OS)) {
         $this->markTestSkipped('Cocur\\BackgroundProcess\\BackgroundProcess::stop() is not supported on Windows.');
         return;
     }
     $process = new BackgroundProcess('sleep 5');
     $process->run();
     $this->assertTrue($process->stop());
     $this->assertFalse($process->isRunning());
 }