public function auto_generate_results_identifier() { // If the save result identifier is empty, try to come up with something based upon the tests being run. $results_identifier = null; $subsystem_r = array(); $subsystems_to_test = $this->subsystems_under_test(); if (!$this->is_new_result_file) { $result_file_intent = pts_result_file_analyzer::analyze_result_file_intent($this->result_file); if (is_array($result_file_intent) && $result_file_intent[0] != 'Unknown') { array_unshift($subsystems_to_test, $result_file_intent[0]); } } foreach ($subsystems_to_test as $subsystem) { $components = pts_result_file_analyzer::system_component_string_to_array(phodevi::system_hardware(true) . ', ' . phodevi::system_software(true)); if ($subsystem != null && isset($components[$subsystem])) { $subsystem_name = pts_strings::trim_search_query($components[$subsystem]); if (phodevi::is_vendor_string($subsystem_name) && !in_array($subsystem_name, $subsystem_r)) { array_push($subsystem_r, $subsystem_name); } if (isset($subsystem_r[2]) || isset($subsystem_name[19])) { break; } } } if (isset($subsystem_r[0])) { $results_identifier = implode(' - ', $subsystem_r); } if (empty($results_identifier) && !$this->batch_mode) { $results_identifier = phodevi::read_property('cpu', 'model') . ' - ' . phodevi::read_property('gpu', 'model') . ' - ' . phodevi::read_property('motherboard', 'identifier'); } if (strlen($results_identifier) > 55) { $results_identifier = substr($results_identifier, 0, 54); $results_identifier = substr($results_identifier, 0, strrpos($results_identifier, ' ')); } if (empty($results_identifier)) { $results_identifier = date('Y-m-d H:i'); } $this->results_identifier = $results_identifier; return $results_identifier; }
protected static function system_component_to_format(&$system_info, &$to_array, $component_types, $allow_trim_extra = false) { foreach ($component_types as $component_type) { if (isset($system_info[$component_type])) { $value = pts_strings::trim_search_query($system_info[$component_type]); if ($value != null) { if ($allow_trim_extra && !isset($to_array[2])) { $value_r = explode(' ', str_replace('-', ' ', $value)); array_pop($value_r); array_push($to_array, $component_type . ':' . implode(' ', $value_r)); } array_push($to_array, $component_type . ':' . $value); } } } }
public static function pci_devices() { $pci_devices = array(); if (phodevi::is_linux() && isset(phodevi::$vfs->lspci)) { $lspci = phodevi::$vfs->lspci; $lspci = explode("\n\n", $lspci); foreach ($lspci as $o => &$lspci_section) { $lspci_section = explode("\n", $lspci_section); $formatted_section = array(); foreach ($lspci_section as $i => &$line) { $line = explode(':', $line); if (count($line) == 2 && in_array($line[0], array('Class', 'Vendor', 'Device', 'Driver', 'Rev', 'Module'))) { $line[1] = trim($line[1]); if (($c = strrpos($line[1], ' [')) !== false) { $id = substr($line[1], $c + 2); $id = '0x' . substr($id, 0, strpos($id, ']')); switch ($line[0]) { case 'Vendor': $formatted_section['VendorID'] = $id; break; case 'Device': $formatted_section['DeviceID'] = $id; break; } $line[1] = substr($line[1], 0, $c); } if ($line[0] == 'Class') { switch ($line[1]) { case 'Ethernet controller': case 'Network controller': $line[1] = 'Network'; break; case 'VGA compatible controller': $line[1] = 'GPU'; break; case 'Audio device': case 'Multimedia audio controller': $line[1] = 'Audio'; break; // case 'RAM memory': // case 'Host bridge': // $line[1] = 'Chipset'; // break; // case 'RAM memory': // case 'Host bridge': // $line[1] = 'Chipset'; // break; default: $line[1] = null; break; } } else { if ($line[0] == 'Device' || $line[0] == 'Vendor') { $line[1] = pts_strings::trim_search_query(pts_strings::strip_string($line[1])); $line[1] = pts_strings::keep_in_string($line[1], pts_strings::CHAR_LETTER | pts_strings::CHAR_NUMERIC | pts_strings::CHAR_DECIMAL | pts_strings::CHAR_SPACE | pts_strings::CHAR_DASH | pts_strings::CHAR_UNDERSCORE | pts_strings::CHAR_COLON | pts_strings::CHAR_COMMA); } } $formatted_section[$line[0]] = $line[1]; } } if (count($formatted_section) > 0 && $formatted_section['Class'] != null) { array_push($pci_devices, $formatted_section); } } } return $pci_devices; }