print_msg(sprintf('missing dependency %s', $dependency), $verbose, __FILE__, __LINE__, TRUE); } exit(1); } else { if (!BlockStorageTest::validateFio($options)) { print_msg(sprintf('fio version 2.* is required'), $verbose, __FILE__, __LINE__, TRUE); exit(1); } } } print_msg(sprintf('Starting block storage tests [%s] using targets [%s] and %ds timeout', implode(', ', $options['test']), implode(', ', $options['target']), $options['timeout']), $verbose, __FILE__, __LINE__); ini_set('max_execution_time', $options['timeout']); $exitCode = 0; $controllers = array(); foreach ($options['test'] as $test) { if ($controller =& BlockStorageTest::getTestController($test, $options)) { print_msg(sprintf('Starting %s block storage test', strtoupper($test)), $verbose, __FILE__, __LINE__); // purge targets if (isset($options['nopurge']) && $options['nopurge']) { print_msg(sprintf('Target purge skipped due to use of --nopurge'), $verbose, __FILE__, __LINE__); } else { if (!$controller->purge()) { $exitCode = 1; print_msg(sprintf('Testing aborted because test targets could not be purged and --nopurge argument was not specified'), $verbose, __FILE__, __LINE__, TRUE); break; } else { print_msg(sprintf('Target purge successful - continuing testing'), $verbose, __FILE__, __LINE__); } } // workload independent pre-conditioning $controller->start();