diff options
author | Michael Larabel <michael@phx-laptop.(none)> | 2008-06-29 15:20:01 -0400 |
---|---|---|
committer | Michael Larabel <michael@phx-laptop.(none)> | 2008-08-03 11:49:17 -0400 |
commit | ec4649caf1cd38aff1335134f1f19af940522c7a (patch) | |
tree | 389640a8bf1a7a1f9831548d8b9a6df72c7c639a /pts-core/functions/pts-functions_modules.php | |
parent | b4df91f84fc6b2fc4d3e8b287e2faa4ae7113971 (diff) | |
download | phoronix-test-suite-upstream-ec4649caf1cd38aff1335134f1f19af940522c7a.tar.gz phoronix-test-suite-upstream-ec4649caf1cd38aff1335134f1f19af940522c7a.tar.xz phoronix-test-suite-upstream-ec4649caf1cd38aff1335134f1f19af940522c7a.zip |
Tons of updates to PTS module framework... Add Extensions tag to saved
results... updates to graphics_override... other work too
Diffstat (limited to 'pts-core/functions/pts-functions_modules.php')
-rw-r--r-- | pts-core/functions/pts-functions_modules.php | 76 |
1 files changed, 62 insertions, 14 deletions
diff --git a/pts-core/functions/pts-functions_modules.php b/pts-core/functions/pts-functions_modules.php index 966b151..e951ca4 100644 --- a/pts-core/functions/pts-functions_modules.php +++ b/pts-core/functions/pts-functions_modules.php @@ -22,47 +22,77 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -function pts_module_start_process(&$PTS_MODULES) +function pts_module_start_process() { - pts_load_modules($PTS_MODULES); + $GLOBALS["PTS_MODULES"] = array(); + $GLOBALS["PTS_MODULE_CURRENT"] = FALSE; + $GLOBALS["PTS_MODULE_VAR_STORE"] = array(); + + pts_load_modules(); pts_module_process("__startup"); register_shutdown_function("pts_module_process", "__shutdown"); } -function pts_auto_detect_modules(&$modules_list) +function pts_auto_detect_modules($load_here = FALSE) { $modules_assoc = array("MONITOR" => "system_monitor", "FORCE_AA" => "graphics_override", "FORCE_AF" => "graphics_override"); foreach($modules_assoc as $env_var => $module) - if(!in_array($module, $modules_list) && ($e = getenv($env_var)) != FALSE && !empty($e)) + if(!in_array($module, $GLOBALS["PTS_MODULES"]) && ($e = getenv($env_var)) != FALSE && !empty($e)) { if(defined("PTS_DEBUG_MODE")) echo "Attempting To Add Module: " . $module . "\n"; - array_push($modules_list, $module); + array_push($GLOBALS["PTS_MODULES"], $module); + + if($load_here) + pts_load_module($module); } } -function pts_load_modules(&$modules_list) +function pts_load_modules() { // Check for modules to load manually in PTS_MODULES if(($load_modules = getenv("PTS_MODULES")) !== FALSE) foreach(explode(",", $load_modules) as $module) - array_push($modules_list, trim($module)); + array_push($GLOBALS["PTS_MODULES"], trim($module)); // Detect modules to load automatically - pts_auto_detect_modules($modules_list); + pts_auto_detect_modules(); // Clean-up modules list - array_unique($modules_list); - for($i = 0; $i < count($modules_list); $i++) - if(!is_file(MODULE_DIR . $modules_list[$i] . ".php")) - unset($modules_list[$i]); + array_unique($GLOBALS["PTS_MODULES"]); + for($i = 0; $i < count($GLOBALS["PTS_MODULES"]); $i++) + if(!is_file(MODULE_DIR . $GLOBALS["PTS_MODULES"][$i] . ".php")) + unset($GLOBALS["PTS_MODULES"][$i]); // Reset counter $GLOBALS["PTS_MODULE_CURRENT"] = FALSE; // Load the modules - foreach($modules_list as $module) - @include(MODULE_DIR . $module . ".php"); + $module_store_list = array(); + foreach($GLOBALS["PTS_MODULES"] as $module) + { + pts_load_module($module); + + eval("\$module_store_vars = " . $module . "::\$module_store_vars;"); + + if(is_array($module_store_vars) && count($module_store_vars) > 0) + foreach($module_store_vars as $store_var) + if(!in_array($store_var, $module_store_list)) + array_push($module_store_list, $store_var); + } + + // Should any of the module options be saved to the results? + foreach($module_store_list as $var) + { + $var_value = getenv($var); + + if($var_value != FALSE && !empty($var_value)) + array_push($GLOBALS["PTS_MODULE_VAR_STORE"], $var . "=" . $var_value); + } +} +function pts_load_module($module) +{ + @include(MODULE_DIR . $module . ".php"); } function pts_module_process($process) { @@ -73,5 +103,23 @@ function pts_module_process($process) } $GLOBALS["PTS_MODULE_CURRENT"] = FALSE; } +function pts_module_process_extensions($extensions) +{ + if(!empty($extensions)) + { + $GLOBALS["MODULE_STORE"] = $extensions; + $extensions = explode(";", $extensions); + + foreach($extensions as $ev) + { + $ev_r = explode("=", $ev); + + if(getenv($ev_r[0]) == FALSE) + putenv($ev); + } + + pts_auto_detect_modules(true); + } +} ?> |