public static function run($r) { echo PHP_EOL . 'OpenBenchmarking.org Repositories:' . PHP_EOL . PHP_EOL; foreach (pts_openbenchmarking::linked_repositories() as $repo) { if ($repo == 'local') { // Skip local since it's a fake repository continue; } $repo_index = pts_openbenchmarking::read_repository_index($repo); $generated_time = date('F d H:i', $repo_index['main']['generated']); $tab = ' '; foreach (array('tests', 'suites') as $t) { echo PHP_EOL . str_repeat('=', 40) . PHP_EOL . strtoupper($repo . ' ' . $t) . PHP_EOL . 'Generated: ' . $generated_time . PHP_EOL . str_repeat('=', 40) . PHP_EOL . PHP_EOL; foreach ($repo_index[$t] as $identifier => $test) { echo 'Identifier: ' . $identifier . PHP_EOL; foreach ($test as $i => $j) { echo sprintf('%-22ls', $i) . ': '; if (is_array($j)) { echo implode(', ', $j); } else { echo $j; } echo PHP_EOL; } echo PHP_EOL; } } } }
public static function available_virtual_suites() { $virtual_suites = array(); $possible_identifiers = array_merge(array('all', 'installed'), array_map('strtolower', self::available_operating_systems()), array_map('strtolower', pts_types::subsystem_targets()), array_map('strtolower', pts_types::test_profile_software_types())); foreach (pts_openbenchmarking::linked_repositories() as $repo) { $repo_identifiers = array_merge($possible_identifiers, self::tags_in_repo($repo)); foreach ($repo_identifiers as $id) { $virt_suite = $repo . '/' . $id; if (self::is_virtual_suite($virt_suite)) { $virtual_suite = pts_types::identifier_to_object($virt_suite); if ($virtual_suite instanceof pts_virtual_test_suite) { array_push($virtual_suites, $virtual_suite); } } } } return $virtual_suites; }
public static function run($r) { echo PHP_EOL . 'Linked OpenBenchmarking.org Repositories:' . PHP_EOL . PHP_EOL; foreach (pts_openbenchmarking::linked_repositories() as $repo) { if ($repo == 'local') { // Skip local since it's a fake repository continue; } $repo_index = pts_openbenchmarking::read_repository_index($repo); $test_count = count($repo_index['tests']); $suite_count = count($repo_index['suites']); $generated_time = date('F d H:i', $repo_index['main']['generated']); echo sprintf(' REPO: %-20ls WEB: %-35ls' . PHP_EOL, $repo, 'http://openbenchmarking.org/user/' . $repo); echo sprintf(' LAST GENERATED: %-3ls' . PHP_EOL, $generated_time); echo sprintf(' TEST COUNT: %-3ls SUITE COUNT: %-3ls' . PHP_EOL, $test_count, $suite_count); echo PHP_EOL; } }
public static function run($r) { pts_client::$display->generic_heading('Recently Updated OpenBenchmarking.org Tests'); $recently_updated = array(); foreach (pts_openbenchmarking::linked_repositories() as $repo) { if ($repo == 'local') { // Skip local since it's a fake repository continue; } $repo_index = pts_openbenchmarking::read_repository_index($repo); $changes[$repo] = pts_openbenchmarking_client::fetch_repository_changelog($repo); if (isset($repo_index['tests']) && is_array($repo_index['tests'])) { foreach (array_keys($repo_index['tests']) as $identifier) { if ($repo_index['tests'][$identifier]['last_updated'] > time() - 90 * 86400) { $recently_updated[$repo . '/' . $identifier] = $repo_index['tests'][$identifier]; } } } } if (count($recently_updated) > 0) { // sort by date uasort($recently_updated, array('openbenchmarking_changes', 'compare_time_stamps')); // so that tests are shown from newest to oldest $recently_updated = array_reverse($recently_updated); $longest_identifier_length = array_keys($recently_updated); $longest_identifier_length = strlen(pts_strings::find_longest_string($longest_identifier_length)) + 1; foreach ($recently_updated as $test_profile => $repo_data) { echo sprintf('%-' . $longest_identifier_length . 'ls - %-35ls', $test_profile, $repo_data['title']) . PHP_EOL; $br = explode('/', $test_profile); if (isset($changes[$br[0]]['tests'][$br[1]]['changes'])) { foreach ($changes[$br[0]]['tests'][$br[1]]['changes'] as $test_profile_version => $data) { echo 'v' . $test_profile_version . ' [' . date('d M Y', $data['last_updated']) . ']' . PHP_EOL; echo ' - ' . $data['commit_description'] . PHP_EOL; } } else { echo 'Last Updated: ' . date('d F Y', $repo_data['last_updated']) . PHP_EOL; } echo PHP_EOL; // $repo_data['test_type'] } } else { echo PHP_EOL . 'No updated tests were found.' . PHP_EOL; } }
public static function tests_available() { $test_count = 0; foreach (pts_openbenchmarking::linked_repositories() as $repo) { $repo_index = pts_openbenchmarking::read_repository_index($repo); if (isset($repo_index['tests']) && is_array($repo_index['tests'])) { $test_count += count($repo_index['tests']); } } return $test_count; }
public static function invalid_command_helper($passed_args) { $showed_recent_results = self::recently_saved_results(); if (!empty($passed_args)) { $arg_soundex = soundex($passed_args); $similar_tests = array(); foreach (pts_openbenchmarking::linked_repositories() as $repo) { $repo_index = pts_openbenchmarking::read_repository_index($repo); foreach (array('tests', 'suites') as $type) { if (isset($repo_index[$type]) && is_array($repo_index[$type])) { foreach (array_keys($repo_index[$type]) as $identifier) { if (soundex($identifier) == $arg_soundex) { array_push($similar_tests, array('- ' . $repo . '/' . $identifier, ' [' . ucwords(substr($type, 0, -1)) . ']')); } } } } } foreach (pts_client::saved_test_results() as $result) { if (soundex($result) == $arg_soundex) { array_push($similar_tests, array('- ' . $result, ' [Test Result]')); } } if (count($similar_tests) > 0) { echo 'Possible Suggestions:' . PHP_EOL; if (isset($similar_tests[12])) { // lots of tests... trim it down $similar_tests = array_rand($similar_tests, 12); } echo pts_user_io::display_text_table($similar_tests) . PHP_EOL . PHP_EOL; } } if ($showed_recent_results == false) { echo 'See available tests to run by visiting OpenBenchmarking.org or running:' . PHP_EOL . PHP_EOL; echo ' phoronix-test-suite list-tests' . PHP_EOL . PHP_EOL; echo 'Tests can be installed by running:' . PHP_EOL . PHP_EOL; echo ' phoronix-test-suite install <test-name>' . PHP_EOL; } }