Modern DOM library written in PHP for HTML documents
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.4 KiB

#!/usr/bin/env php
<?php
/**
* @license MIT
* Copyright 2022 Dustin Wilson, et al.
* See LICENSE and AUTHORS files for details
*/
$dir = ini_get('extension_dir');
$php = escapeshellarg(\PHP_BINARY);
$code = escapeshellarg(__DIR__ . '/lib');
array_shift($argv);
foreach ($argv as $k => $v) {
if (in_array($v, ['--coverage', '--coverage-html'])) {
$argv[$k] = '--coverage-html tests/coverage';
}
}
$cmd = [
$php,
'-d opcache.enable_cli=0',
];
$pcovLoaded = extension_loaded('pcov');
$xdebugLoaded = extension_loaded('xdebug');
if (!$pcovLoaded && !$xdebugLoaded) {
$extDir = ini_get('extension_dir');
if (!extension_loaded('pcov') && file_exists("$extDir/pcov.so")) {
$cmd[] = '-d zend_extension=pcov.so';
$pcovLoaded = true;
} elseif (!extension_loaded('xdebug') && file_exists("$extDir/xdebug.so")) {
$cmd[] = '-d zend_extension=xdebug.so';
$xdebugLoaded = true;
}
}
if ($pcovLoaded) {
$cmd[] = '-d pcov.enabled=1';
$cmd[] = "-d pcov.directory=$code";
} elseif ($xdebugLoaded) {
$cmd[] = '-d xdebug.mode=coverage,develop,trace';
} else {
fwrite(\STDERR, "Either the pcov or xdebug extension is required to run tests.\n");
exit(1);
}
$cmd = implode(' ', [
...$cmd,
escapeshellarg(__DIR__ . '/vendor/bin/phpunit'),
'--configuration tests/phpunit.xml',
...$argv,
'--display-deprecations'
]);
passthru($cmd);