summaryrefslogtreecommitdiffstats
path: root/pts-core/functions/pts-functions_modules.php
diff options
context:
space:
mode:
authorMichael Larabel <michael@phx-laptop.(none)>2008-06-29 15:20:01 -0400
committerMichael Larabel <michael@phx-laptop.(none)>2008-08-03 11:49:17 -0400
commitec4649caf1cd38aff1335134f1f19af940522c7a (patch)
tree389640a8bf1a7a1f9831548d8b9a6df72c7c639a /pts-core/functions/pts-functions_modules.php
parentb4df91f84fc6b2fc4d3e8b287e2faa4ae7113971 (diff)
downloadphoronix-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.php76
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);
+ }
+}
?>