$oReporter->paintGroupStart("Layer {$layer}", count($aTestFiles)); foreach ($aTestFiles as $subLayer => $aDirectories) { $oReporter->paintGroupStart("Sublayer {$subLayer}", count($aDirectories)); foreach ($aDirectories as $dirName => $aFiles) { $oReporter->paintGroupStart("Directory {$dirName} ({$testName})", count($aFiles)); foreach ($aFiles as $fileName) { $oReporter->paintCaseStart("File {$fileName} ({$testName})"); // Prepare the name of the test to display when running for ($counter = 0; $counter < count($GLOBALS['_MAX']['TEST']['groups']) - 1; $counter++) { if ($layer == $GLOBALS['_MAX']['TEST']['groups'][$counter]) { $layerDisplayName = $GLOBALS['_MAX']['TEST'][$GLOBALS['_MAX']['TEST']['groups'][$counter] . '_layers'][$subLayer][0]; } } preg_match('/^([^\\.]+)/', $fileName, $aMatches); $testDisplayName = ucfirst(strtolower($layer)) . '.' . $layerDisplayName . '.' . $aMatches[1]; $oReporter->paintMethodStart($testDisplayName); // Restore conf file to make sure each test runs with a clean one file_put_contents($testConfFile, $testConf); $returncode = -1; $output_lines = ''; $exec = "run.php --type={$layer} --level=file --layer={$subLayer} --folder={$dirName}" . " --file={$fileName} --format=text --host=test 2>&1"; exec("{$php} {$exec}", $output_lines, $returncode); $message = "{$fileName}\n" . join($output_lines, "\n"); switch ($returncode) { case 0: $oReporter->paintPass($message); break; default: $message = "Unexpected return code {$returncode}\n" . $message; case 1: $message = "Directory: " . dirname(__FILE__) . "\nFailed command: {$php} {$exec}\n" . $message;