public function __construct($identifier) { if (PTS_IS_CLIENT) { $ob_identifier = pts_openbenchmarking::evaluate_string_to_qualifier($identifier, true, 'suite'); if ($ob_identifier != false) { $identifier = $ob_identifier; } } $this->identifier = $identifier; $this->xml_parser = new pts_suite_nye_XmlReader($identifier); }
public function __construct($read = null, $normal_init = true) { $this->overrides = array(); $this->tp_extends = null; if ($normal_init == false) { $this->identifier = $read; return; } if (!isset($read[200]) && strpos($read, '<?xml version="1.0"?>') === false) { if (PTS_IS_CLIENT && (!defined('PTS_TEST_PROFILE_PATH') || !is_file(PTS_TEST_PROFILE_PATH . $read . '/test-definition.xml'))) { $read = pts_openbenchmarking::evaluate_string_to_qualifier($read, true, 'test'); if ($read == false && pts_openbenchmarking::openbenchmarking_has_refreshed() == false) { // Test profile might be brand new, so refresh repository and then check // pts_openbenchmarking::refresh_repository_lists(null, true); $read = pts_openbenchmarking::evaluate_string_to_qualifier($read, true, 'test'); } } } if (!isset($read[64])) { // Passed is not an identifier since it's too long $this->identifier = $read; } if (!isset($read[512]) && !is_file($read)) { if (defined('PTS_TEST_PROFILE_PATH') && is_file(PTS_TEST_PROFILE_PATH . $read . '/test-definition.xml')) { $read = PTS_TEST_PROFILE_PATH . $read . '/test-definition.xml'; } else { if (substr($read, -4) == '.zip' && is_file($read)) { $zip = new ZipArchive(); if ($zip->open($read) === true) { $read = $zip->getFromName('test-definition.xml'); $zip->close(); } } } } //$xml_options = 0; //if(defined('LIBXML_COMPACT')) //{ $xml_options = LIBXML_COMPACT | LIBXML_PARSEHUGE; //} if (is_file($read)) { $this->file_location = $read; $this->xml = simplexml_load_file($read, 'SimpleXMLElement', $xml_options); } else { $this->raw_xml = $read; if (strpos($read, '<') !== false) { $this->xml = simplexml_load_string($read, 'SimpleXMLElement', $xml_options); } } }
public function __construct($identifier = null) { if (strpos($identifier, '<?xml version="1.0"?>') === false) { if (PTS_IS_CLIENT && (!defined('PTS_TEST_PROFILE_PATH') || !is_file(PTS_TEST_PROFILE_PATH . $identifier . '/test-definition.xml'))) { $identifier = pts_openbenchmarking::evaluate_string_to_qualifier($identifier, true, 'test'); if ($identifier == false && pts_openbenchmarking::openbenchmarking_has_refreshed() == false) { // Test profile might be brand new, so refresh repository and then check // pts_openbenchmarking::refresh_repository_lists(null, true); $identifier = pts_openbenchmarking::evaluate_string_to_qualifier($identifier, true, 'test'); } } } $this->xml_parser = new pts_test_nye_XmlReader($identifier); if (!isset($identifier[64])) { // Passed is not an identifier since it's too long $this->identifier = $identifier; } }
public function add_to_suite_from_reader(&$xml_reader) { $test_names = $xml_reader->getXMLArrayValues('PhoronixTestSuite/Execute/Test'); $sub_arguments = $xml_reader->getXMLArrayValues('PhoronixTestSuite/Execute/Arguments'); $sub_arguments_description = $xml_reader->getXMLArrayValues('PhoronixTestSuite/Execute/Description'); $sub_modes = $xml_reader->getXMLArrayValues('PhoronixTestSuite/Execute/Mode'); $override_test_options = $xml_reader->getXMLArrayValues('PhoronixTestSuite/Execute/OverrideTestOptions'); for ($i = 0; $i < count($test_names); $i++) { $identifier = pts_openbenchmarking::evaluate_string_to_qualifier($test_names[$i]); if (empty($identifier)) { echo PHP_EOL . $test_names[$i] . ' fails.' . PHP_EOL; exit; } $identifier = substr($identifier, 0, strrpos($identifier, '-')); // strip the version for now $this->add_to_suite($identifier, $sub_arguments[$i], $sub_arguments_description[$i], $sub_modes[$i], $override_test_options[$i]); } }
public static function is_test_profile($identifier) { $identifier = pts_openbenchmarking::evaluate_string_to_qualifier($identifier, true, 'test'); return $identifier != false && is_file(PTS_TEST_PROFILE_PATH . $identifier . '/test-definition.xml') ? $identifier : false; }
public static function is_suite($identifier) { $identifier = pts_openbenchmarking::evaluate_string_to_qualifier($identifier, true, 'suite'); return is_file(PTS_TEST_SUITE_PATH . $identifier . '/suite-definition.xml'); }
public function handleXmlZeroTagFallback($xml_tag, $fallback_value) { // Cascading Test Profiles for finding a tag within an XML file being extended by another XML file if ($xml_tag == 'PhoronixTestSuite/TestProfile/Extends' || $this->block_test_extension_support) { // Otherwise we'd have an infinite loop return $fallback_value; } $test_extends = $this->getXmlValue('PhoronixTestSuite/TestProfile/Extends'); if (!empty($test_extends) && PTS_IS_CLIENT) { $test_extends = pts_openbenchmarking::evaluate_string_to_qualifier($test_extends, true, 'test'); $test_below_parser = new pts_test_nye_XmlReader($test_extends); $test_below_tag = $test_below_parser->getXMLValue($xml_tag); if (!empty($test_below_tag)) { $fallback_value = $test_below_tag; } } return $fallback_value; }