public static function merge_test_results_process(&$result_file_writer, &$files_to_combine, $pass_attributes = null) { $test_result_manager = new pts_result_file_merge_manager($pass_attributes); $has_written_suite_info = false; $result_files = array(); $result_merge_selects = array(); foreach ($files_to_combine as &$file) { if (is_object($file) && $file instanceof pts_result_merge_select) { $result_merge_select = $file; $this_result_file = $result_merge_select->get_result_file(); if ($this_result_file instanceof pts_result_file == false) { $this_result_file = new pts_result_file($this_result_file); } } else { if (is_object($file) && $file instanceof pts_result_file) { if (($t = $file->read_extra_attribute('rename_result_identifier')) != false) { // This code path is currently used by Phoromatic $result_merge_select = new pts_result_merge_select(null, null); $result_merge_select->rename_identifier($t); } else { $result_merge_select = null; } $this_result_file = $file; } else { $result_merge_select = new pts_result_merge_select($file, null); $this_result_file = new pts_result_file($result_merge_select->get_result_file()); } } if ($this_result_file->get_test_count() == 0) { // No reason to print the system information if there are no contained results continue; } array_push($result_files, $this_result_file); array_push($result_merge_selects, $result_merge_select); } if (!isset($pass_attributes['only_render_results_xml']) && ($result_file_count = count($result_files)) > 0) { for ($i = $result_file_count - 1; $i >= 0; $i--) { $new_title = isset($pass_attributes['new_result_file_title']) && !empty($pass_attributes['new_result_file_title']) ? $pass_attributes['new_result_file_title'] : null; $ret = $result_file_writer->add_result_file_meta_data($result_files[$i], null, $new_title, null); if ($ret) { break; } } } foreach ($result_files as $i => &$result_file) { if (!isset($pass_attributes['only_render_results_xml'])) { $result_file_writer->add_system_information_from_result_file($result_file, $result_merge_selects[$i]); } $r = $result_file->get_result_objects(); //$r = array_reverse($r); $test_result_manager->add_test_result_set($r, $result_merge_selects[$i]); } // Write the actual test results $result_file_writer->add_results_from_result_manager($test_result_manager); }
public static function run($r) { $result = $r[0]; $result_file = new pts_result_file($result); $result_file_identifiers = $result_file->get_system_identifiers(); $rename_identifier = pts_user_io::prompt_text_menu('Select the test run to rename', $result_file_identifiers); $rename_identifier_new = pts_user_io::prompt_user_input('Enter the new identifier'); $merge_selects = array(); foreach ($result_file_identifiers as $identifier) { $this_merge_select = new pts_result_merge_select($result, $identifier); if ($identifier == $rename_identifier && $rename_identifier != $rename_identifier_new) { $this_merge_select->rename_identifier($rename_identifier_new); } array_push($merge_selects, $this_merge_select); } foreach (array('test-logs', 'system-logs', 'installation-logs') as $dir_name) { if (is_dir(PTS_SAVE_RESULTS_PATH . $r[0] . '/' . $dir_name . '/' . $rename_identifier)) { rename(PTS_SAVE_RESULTS_PATH . $r[0] . '/' . $dir_name . '/' . $rename_identifier, PTS_SAVE_RESULTS_PATH . $r[0] . '/' . $dir_name . '/' . $rename_identifier_new); } } $extract_result = pts_merge::merge_test_results_array($merge_selects); pts_client::save_test_result($r[0] . '/composite.xml', $extract_result); pts_client::display_web_page(PTS_SAVE_RESULTS_PATH . $r[0] . '/index.html'); }
public function merge($result_merges_to_combine, $pass_attributes = 0) { if (!is_array($result_merges_to_combine) || empty($result_merges_to_combine)) { return false; } foreach ($result_merges_to_combine as $i => &$merge_select) { if (!$merge_select instanceof $merge_select) { $merge_select = new pts_result_merge_select($merge_select); } if (!is_file($merge_select->get_result_file())) { if (defined('PTS_SAVE_RESULTS_PATH') && is_file(PTS_SAVE_RESULTS_PATH . $merge_select->get_result_file() . '/composite.xml')) { $merge_select->set_result_file(PTS_SAVE_RESULTS_PATH . $merge_select->get_result_file() . '/composite.xml'); } else { unset($result_merges_to_combine[$i]); } } } if (empty($result_merges_to_combine)) { return false; } foreach ($result_merges_to_combine as &$merge_select) { $result_file = new pts_result_file($merge_select->get_result_file(), true); if ($merge_select->get_rename_identifier()) { $result_file->rename_run(null, $merge_select->get_rename_identifier()); } $this->add_to_result_file($result_file); unset($result_file); } }