Skip to content

Commit d236d7c

Browse files
committed
Future compat
1 parent 542bc5d commit d236d7c

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

src/Extension.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use SebastianBergmann\CodeCoverage\Filter;
2020
use SebastianBergmann\CodeCoverage\NoCodeCoverageDriverAvailableException;
2121
use SebastianBergmann\CodeCoverage\NoCodeCoverageDriverWithPathCoverageSupportAvailableException;
22+
use SebastianBergmann\CodeCoverage\NoSupportedDriverAvailableException;
2223
use SebastianBergmann\FileIterator\Facade as FileIteratorFacade;
2324
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
2425
use Symfony\Component\Config\FileLocator;
@@ -233,7 +234,7 @@ public function process(ContainerBuilder $container): void
233234
$filterDefinition = $container->getDefinition(Filter::class);
234235
$codeCoverageDefinition->setFactory([new Reference(self::class), 'initCodeCoverage']);
235236
$codeCoverageDefinition->setArguments([$filterDefinition, $filterConfig, $branchPathConfig, $cacheDir, $output]);
236-
} catch (NoCodeCoverageDriverAvailableException|XdebugNotEnabledException|XdebugNotAvailableException $e) {
237+
} catch (NoSupportedDriverAvailableException|NoCodeCoverageDriverAvailableException|XdebugNotEnabledException|XdebugNotAvailableException $e) {
237238
$output->writeln("<comment>{$e->getMessage()}</comment>");
238239
$canCollectCodeCoverage = false;
239240
}
@@ -279,7 +280,7 @@ public function initCodeCoverage(Filter $filter, array $filterConfig, ?bool $bra
279280
if ($branchPathConfig !== false) {
280281
try {
281282
$driver = $selector->forLineAndPathCoverage($filter);
282-
} catch (NoCodeCoverageDriverWithPathCoverageSupportAvailableException|XdebugNotAvailableException|XdebugNotEnabledException $e) {
283+
} catch (NoSupportedDriverAvailableException|NoCodeCoverageDriverWithPathCoverageSupportAvailableException|XdebugNotAvailableException|XdebugNotEnabledException $e) {
283284
// fallback driver is already set
284285
if ($branchPathConfig === true) { // only warn if explicitly enabled
285286
$output->writeln(sprintf('<info>%s does not support collecting branch and path data</info>', $driver->nameAndVersion()));

tests/ExtensionTest.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
use ReflectionClass;
1818
use SebastianBergmann\CodeCoverage\CodeCoverage;
1919
use SebastianBergmann\CodeCoverage\Driver\Driver;
20+
use SebastianBergmann\CodeCoverage\Driver\Granularity;
2021
use SebastianBergmann\CodeCoverage\Driver\Selector;
2122
use SebastianBergmann\CodeCoverage\Driver\Xdebug2NotEnabledException;
2223
use SebastianBergmann\CodeCoverage\Driver\Xdebug3NotEnabledException;
2324
use SebastianBergmann\CodeCoverage\Filter;
2425
use SebastianBergmann\CodeCoverage\NoCodeCoverageDriverAvailableException;
26+
use SebastianBergmann\CodeCoverage\NoSupportedDriverAvailableException;
2527
use Symfony\Component\Config\Definition\NodeInterface;
2628
use Symfony\Component\Console\Input\InputInterface;
2729
use Symfony\Component\Console\Output\OutputInterface;
@@ -30,6 +32,7 @@
3032

3133
use function dirname;
3234
use function sys_get_temp_dir;
35+
use function class_exists;
3336

3437
class ExtensionTest extends TestCase
3538
{
@@ -73,7 +76,7 @@ public function testContainerBuildsIncludingCoveredFiles(): void
7376
try {
7477
$selector = new Selector();
7578
$selector->forLineCoverage(new Filter());
76-
} catch (NoCodeCoverageDriverAvailableException|Xdebug2NotEnabledException|Xdebug3NotEnabledException $e) {
79+
} catch (NoSupportedDriverAvailableException|NoCodeCoverageDriverAvailableException|Xdebug2NotEnabledException|Xdebug3NotEnabledException $e) {
7780
$this->markTestSkipped('Requires code coverage enabled');
7881
}
7982

@@ -129,7 +132,7 @@ public function testContainerBuildsExcludingCoveredFiles(): void
129132
try {
130133
$selector = new Selector();
131134
$selector->forLineCoverage(new Filter());
132-
} catch (NoCodeCoverageDriverAvailableException|Xdebug2NotEnabledException|Xdebug3NotEnabledException $e) {
135+
} catch (NoSupportedDriverAvailableException|NoCodeCoverageDriverAvailableException|Xdebug2NotEnabledException|Xdebug3NotEnabledException $e) {
133136
$this->markTestSkipped('Requires code coverage enabled');
134137
}
135138

@@ -279,7 +282,11 @@ public function testContainerBuildsWithCoverageUnavailable(): void
279282
);
280283

281284
$extension = $this->createPartialMock(Extension::class, ['initCodeCoverage']);
282-
$extension->method('initCodeCoverage')->willThrowException(new NoCodeCoverageDriverAvailableException());
285+
if (class_exists(NoSupportedDriverAvailableException::class)) {
286+
$extension->method('initCodeCoverage')->willThrowException(new NoSupportedDriverAvailableException(Granularity::Line));
287+
} else {
288+
$extension->method('initCodeCoverage')->willThrowException(new NoCodeCoverageDriverAvailableException());
289+
}
283290

284291
$extension->process($container);
285292

0 commit comments

Comments
 (0)