function BuildTestTest::testPortMany
@covers ::findAvailablePort
      
    
File
- 
              core/
tests/ Drupal/ BuildTests/ Framework/ Tests/ BuildTestTest.php, line 209  
Class
- BuildTestTest
 - @coversDefaultClass \Drupal\BuildTests\Framework\BuildTestBase[[api-linebreak]] @group Build
 
Namespace
Drupal\BuildTests\Framework\TestsCode
public function testPortMany() : void {
  $iterator = (new Finder())->in($this->getDrupalRoot())
    ->ignoreDotFiles(FALSE)
    ->exclude([
    'sites/simpletest',
  ])
    ->path('/^.ht.router.php$/')
    ->getIterator();
  $this->copyCodebase($iterator);
  /** @var \Symfony\Component\Process\Process[] $processes */
  $processes = [];
  $count = 15;
  for ($i = 0; $i <= $count; $i++) {
    $port = $this->findAvailablePort();
    $this->assertArrayNotHasKey($port, $processes, 'Port ' . $port . ' was already in use by a process.');
    $processes[$port] = $this->instantiateServer($port);
    $this->assertNotEmpty($processes[$port]);
    $this->assertTrue($processes[$port]->isRunning(), 'Process on port ' . $port . ' is not still running.');
    $this->assertFalse($this->checkPortIsAvailable($port));
  }
  // Clean up after ourselves.
  foreach ($processes as $process) {
    $process->stop();
  }
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.