Add support for extension-specific tests

pull/94/head
Michele Locati 2019-12-27 10:17:59 +01:00
parent 3285412cc7
commit f98082b83c
No known key found for this signature in database
GPG Key ID: 98B7CE2E7234E28B
1 changed files with 24 additions and 2 deletions

View File

@ -5,6 +5,12 @@ $numTestedExtensions = 0;
$nameMap = array( $nameMap = array(
'opcache' => 'Zend OPcache', 'opcache' => 'Zend OPcache',
); );
$testsDir = __DIR__ . '/tests';
function runTest($testFile)
{
return include $testFile;
}
for ($index = 1, $count = isset($argv) ? count($argv) : 0; $index < $count; $index++) { for ($index = 1, $count = isset($argv) ? count($argv) : 0; $index < $count; $index++) {
$numTestedExtensions++; $numTestedExtensions++;
$rcThis = 1; $rcThis = 1;
@ -18,11 +24,27 @@ for ($index = 1, $count = isset($argv) ? count($argv) : 0; $index < $count; $ind
} }
if (!extension_loaded($extension)) { if (!extension_loaded($extension)) {
fprintf(STDERR, sprintf("Extension not loaded: %s\n", $extension)); fprintf(STDERR, sprintf("Extension not loaded: %s\n", $extension));
} else {
$testFile = "${testsDir}/${extension}.php";
if (is_file($testFile)) {
try {
if (runTest($testFile) === true) {
fprintf(STDOUT, sprintf("Extension tested successfully: %s\n", $extension));
$rcThis = 0;
} else {
fprintf(STDERR, sprintf("Extension test failed: %s\n", $extension));
}
} catch (Exception $x) {
fprintf(STDERR, sprintf("Extension test failed: %s (%s)\n", $extension, $x->getMessage()));
} catch (Throwable $x) {
fprintf(STDERR, sprintf("Extension test failed: %s (%s)\n", $extension, $x->getMessage()));
}
} else { } else {
fprintf(STDOUT, sprintf("Extension correctly loaded: %s\n", $extension)); fprintf(STDOUT, sprintf("Extension correctly loaded: %s\n", $extension));
$rcThis = 0; $rcThis = 0;
} }
} }
}
if ($rcThis !== 0) { if ($rcThis !== 0) {
$rc = $rcThis; $rc = $rcThis;
} }