本文整理汇总了PHP中phodevi::system_uptime方法的典型用法代码示例。如果您正苦于以下问题:PHP phodevi::system_uptime方法的具体用法?PHP phodevi::system_uptime怎么用?PHP phodevi::system_uptime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类phodevi
的用法示例。
在下文中一共展示了phodevi::system_uptime方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: restore_cache
public function restore_cache($storage_dir = null, $client_version = null)
{
$restore_cache = null;
if (($this->storage_dir == $storage_dir || $storage_dir == null) && $this->client_version == $client_version) {
if ($this->phodevi_time > time() - phodevi::system_uptime()) {
if (md5(serialize($this->phodevi_cache)) == $this->phodevi_cs) {
$restore_cache = $this->phodevi_cache;
}
}
}
return $restore_cache;
}
示例2: run_matisk
//.........这里部分代码省略.........
pts_file_io::mkdir(pts_module::save_dir() . $ini['workload']['save_name']);
}
$spent_context_file = pts_module::save_dir() . $ini['workload']['save_name'] . '.spent-contexts';
if (!is_file($spent_context_file)) {
touch($spent_context_file);
} else {
// If recovering from an existing run, don't rerun contexts that were already executed
$spent_contexts = pts_file_io::file_get_contents($spent_context_file);
$spent_contexts = explode(PHP_EOL, $spent_contexts);
foreach ($spent_contexts as $sc) {
if (($key = array_search($sc, $ini['set_context']['context'])) !== false) {
unset($ini['set_context']['context'][$key]);
}
}
}
if ($ini['set_context']['reboot_support'] && phodevi::is_linux()) {
// In case a set-context involves a reboot, auto-recover
$xdg_config_home = is_dir('/etc/xdg/autostart') && is_writable('/etc/xdg/autostart') ? '/etc/xdg/autostart' : pts_client::read_env('XDG_CONFIG_HOME');
if ($xdg_config_home == false) {
$xdg_config_home = pts_client::user_home_directory() . '.config';
}
if ($xdg_config_home != false && is_dir($xdg_config_home)) {
$autostart_dir = $xdg_config_home . '/autostart/';
pts_file_io::mkdir($xdg_config_home . '/autostart/');
}
file_put_contents($xdg_config_home . '/autostart/phoronix-test-suite-matisk.desktop', '
[Desktop Entry]
Name=Phoronix Test Suite Matisk Recovery
GenericName=Phoronix Test Suite
Comment=Matisk Auto-Recovery Support
Exec=gnome-terminal -e \'phoronix-test-suite matisk ' . $args[0] . '\'
Icon=phoronix-test-suite
Type=Application
Encoding=UTF-8
Categories=System;Monitor;');
}
if ($ini['installation']['block_phodevi_caching']) {
// Block Phodevi caching if changing out system components and there is a chance one of the strings of changed contexts might be cached (e.g. OpenGL user-space driver)
phodevi::$allow_phodevi_caching = false;
}
if (phodevi::system_uptime() < 60) {
echo PHP_EOL . 'Sleeping 45 seconds while waiting for the system to settle...' . PHP_EOL;
sleep(45);
}
self::$ini = $ini;
$total_context_count = count(self::$ini['set_context']['context']);
while (($context = array_shift(self::$ini['set_context']['context'])) !== null) {
echo PHP_EOL . ($total_context_count - count(self::$ini['set_context']['context'])) . ' of ' . $total_context_count . ' in test execution queue [' . $context . ']' . PHP_EOL . PHP_EOL;
self::$context = $context;
if (pts_strings::string_bool(self::$ini['installation']['install_check']) || $ini['set_context']['pre_install'] != null) {
self::process_user_config_external_hook_process('pre_install');
$force_install = false;
$no_prompts = true;
if (pts_strings::string_bool(self::$ini['installation']['force_install'])) {
$force_install = true;
}
if (self::$ini['installation']['external_download_cache'] != null) {
pts_test_install_manager::add_external_download_cache(self::$ini['installation']['external_download_cache']);
}
// Do the actual test installation
pts_test_installer::standard_install(self::$ini['workload']['suite'], $force_install, $no_prompts);
self::process_user_config_external_hook_process('post_install');
}
$batch_mode = false;
$auto_mode = true;
$test_run_manager = new pts_test_run_manager($batch_mode, $auto_mode);
if ($test_run_manager->initial_checks(self::$ini['workload']['suite']) == false) {
return false;
}
if (self::$skip_test_set == false) {
self::process_user_config_external_hook_process('pre_run');
// Load the tests to run
if ($test_run_manager->load_tests_to_run(self::$ini['workload']['suite']) == false) {
return false;
}
// Save results?
$result_identifier = $ini['workload']['result_identifier'];
if ($result_identifier == null) {
$result_identifier = '$MATISK_CONTEXT';
}
// Allow $MATIISK_CONTEXT as a valid user variable to pass it...
$result_identifier = str_replace('$MATISK_CONTEXT', self::$context, $result_identifier);
$test_run_manager->set_save_name(self::$ini['workload']['save_name']);
$test_run_manager->set_results_identifier($result_identifier);
$test_run_manager->set_description(self::$ini['workload']['description']);
// Don't upload results unless it's the last in queue where the context count is now 0
$test_run_manager->auto_upload_to_openbenchmarking(count(self::$ini['set_context']['context']) == 0 && self::$ini['general']['upload_to_openbenchmarking']);
// Run the actual tests
$test_run_manager->pre_execution_process();
$test_run_manager->call_test_runs();
$test_run_manager->post_execution_process();
}
self::$skip_test_set = false;
file_put_contents($spent_context_file, self::$context . PHP_EOL, FILE_APPEND);
pts_file_io::unlink(pts_module::save_dir() . self::$context . '.last-call');
self::process_user_config_external_hook_process('post_run');
}
unlink($spent_context_file);
isset($xdg_config_home) && pts_file_io::unlink($xdg_config_home . '/autostart/phoronix-test-suite-matisk.desktop');
}
示例3: run_connection
public static function run_connection($args)
{
if (pts_client::create_lock(PTS_USER_PATH . 'phoromatic_lock') == false) {
trigger_error('Phoromatic is already running.', E_USER_ERROR);
return false;
}
define('PHOROMATIC_PROCESS', true);
if (pts_client::$pts_logger == false) {
pts_client::$pts_logger = new pts_logger();
}
pts_client::$pts_logger->log(pts_title(true) . ' [' . PTS_CORE_VERSION . '] starting Phoromatic client');
if (phodevi::system_uptime() < 60) {
echo 'PHOROMATIC: Sleeping for 60 seconds as system freshly started.' . PHP_EOL;
pts_client::$pts_logger->log('Sleeping for 60 seconds as system freshly started');
sleep(60);
}
$server_setup = self::setup_server_addressing($args);
//$http_comm = new phoromatic_client_comm_http();
if (!$server_setup) {
if (PTS_IS_DAEMONIZED_SERVER_PROCESS) {
if (pts_client::executable_in_path('reboot')) {
shell_exec('reboot');
sleep(5);
}
}
return false;
}
$times_failed = 0;
$has_success = false;
$do_exit = false;
$just_started = true;
self::setup_system_environment();
pts_client::$pts_logger->log('SYSTEM HARDWARE: ' . phodevi::system_hardware(true));
pts_client::$pts_logger->log('SYSTEM SOFTWARE: ' . phodevi::system_software(true));
while ($do_exit == false) {
$server_response = phoromatic::upload_to_remote_server(array('r' => 'start'));
if ($server_response == false) {
$times_failed++;
pts_client::$pts_logger->log('Server response failed');
if ($times_failed >= 2) {
trigger_error('Communication with server failed.', E_USER_ERROR);
if (PTS_IS_DAEMONIZED_SERVER_PROCESS == false && $times_failed > 5) {
return false;
} else {
if (PTS_IS_DAEMONIZED_SERVER_PROCESS && $times_failed > 10) {
if (pts_client::executable_in_path('reboot')) {
shell_exec('reboot');
sleep(5);
}
}
}
}
} else {
if (substr($server_response, 0, 1) == '[') {
// Likely a notice/warning from server
echo PHP_EOL . substr($server_response, 0, strpos($server_response, PHP_EOL)) . PHP_EOL;
} else {
if (substr($server_response, 0, 1) == '{') {
$times_failed = 0;
$json = json_decode($server_response, true);
if ($has_success == false) {
$has_success = true;
pts_module::save_file('last-phoromatic-server', self::$server_address . ':' . self::$server_http_port . '/' . self::$account_id);
}
if ($json != null) {
if (isset($json['phoromatic']['error']) && !empty($json['phoromatic']['error'])) {
trigger_error($json['phoromatic']['error'], E_USER_ERROR);
}
if (isset($json['phoromatic']['response']) && !empty($json['phoromatic']['response'])) {
echo PHP_EOL . $json['phoromatic']['response'] . PHP_EOL;
}
}
if ($just_started) {
if (PTS_IS_DAEMONIZED_SERVER_PROCESS) {
$pid = pcntl_fork();
if ($pid == 0) {
// Start the tick thread
self::tick_thread();
}
}
$just_started = false;
}
if (isset($json['phoromatic']['pre_set_sys_env_vars']) && !empty($json['phoromatic']['pre_set_sys_env_vars'])) {
// pre_set_sys_env_vars was added during PTS 5.8 development
// Sets environment variables on client as specified via the Phoromatic Server's systems page
foreach (explode(';', $json['phoromatic']['pre_set_sys_env_vars']) as $i => $v_string) {
$var = explode('=', $v_string);
if (count($var) == 2) {
putenv($var[0] . '=' . $var[1]);
}
}
}
switch (isset($json['phoromatic']['task']) ? $json['phoromatic']['task'] : null) {
case 'install':
phoromatic::update_system_status('Installing Tests');
pts_suite_nye_XmlReader::set_temporary_suite('pre-seed', $json['phoromatic']['test_suite']);
pts_test_installer::standard_install('pre-seed');
break;
case 'benchmark':
// Make sure all latest tests are available
//.........这里部分代码省略.........
示例4: recover_from_file
public static function recover_from_file($read_from_file)
{
$restore_obj = false;
if (is_file($read_from_file)) {
$restore = unserialize(base64_decode(file_get_contents($read_from_file)));
if ($restore instanceof pts_storage_object) {
if (($restore->get_span_versions() || $restore->get_pts_version() == PTS_CORE_VERSION) && md5(serialize($restore->get_objects())) == $restore->get_object_checksum()) {
if ($restore->get_span_reboots() == false) {
$continue_loading = $restore->get_creation_time() > time() - phodevi::system_uptime();
} else {
$continue_loading = true;
}
if ($continue_loading) {
$restore_obj = $restore;
}
}
}
}
return $restore_obj;
}