Ejemplo n.º 1
0
 public static function init()
 {
     self::$flags = 0;
     self::$os_identifier_sha1 = sha1(phodevi::read_property('system', 'vendor-identifier'));
     self::$is_live_cd = 1 << 1;
     self::$no_network_communication = 1 << 2;
     self::$no_openbenchmarking_reporting = 1 << 3;
     self::$user_agreement_skip = 1 << 4;
     self::$skip_md5_checks = 1 << 5;
     self::$remove_test_on_completion = 1 << 6;
     self::$no_phodevi_cache = 1 << 7;
     self::$no_external_dependencies = 1 << 8;
     self::$upload_to_openbenchmarking = 1 << 9;
     switch (self::$os_identifier_sha1) {
         case 'b28d6a7148b34595c5b397dfcf5b12ac7932b3dc':
             // Moscow 2011-04 client
             self::$flags = self::$is_live_cd | self::$no_network_communication | self::$no_openbenchmarking_reporting | self::$user_agreement_skip | self::$skip_md5_checks | self::$remove_test_on_completion;
             break;
     }
     if (pts_client::read_env('NO_FILE_HASH_CHECKS') != false || pts_client::read_env('NO_MD5_CHECKS') != false) {
         self::$flags |= self::$skip_md5_checks;
     }
     if (pts_config::read_bool_config('PhoronixTestSuite/Options/Testing/RemoveTestInstallOnCompletion', 'FALSE')) {
         self::$flags |= self::$remove_test_on_completion;
     }
     if (pts_config::read_bool_config('PhoronixTestSuite/Options/Testing/AlwaysUploadResultsToOpenBenchmarking', 'FALSE')) {
         self::$flags |= self::$upload_to_openbenchmarking;
     }
     if (pts_client::read_env('NO_PHODEVI_CACHE') != false) {
         self::$flags |= self::$no_phodevi_cache;
     }
     if (pts_client::read_env('NO_EXTERNAL_DEPENDENCIES') != false || pts_client::read_env('SKIP_EXTERNAL_DEPENDENCIES') == 1) {
         // NO_EXTERNAL_DEPENDENCIES was deprecated in PTS 3.6 and replaced by more versatile SKIP_EXTERNAL_DEPENDENCIES
         self::$flags |= self::$no_external_dependencies;
     }
 }
Ejemplo n.º 2
0
 public static function user_agreement_check($command)
 {
     $pso = pts_storage_object::recover_from_file(PTS_CORE_STORAGE);
     if ($pso == false) {
         return false;
     }
     $config_md5 = $pso->read_object('user_agreement_cs');
     $current_md5 = md5_file(PTS_PATH . 'pts-core/user-agreement.txt');
     if (($config_md5 != $current_md5 || pts_config::read_user_config('PhoronixTestSuite/Options/OpenBenchmarking/AnonymousUsageReporting', 'UNKNOWN') == 'UNKNOWN') && !PTS_IS_DAEMONIZED_SERVER_PROCESS && getenv('PTS_SILENT_MODE') != 1 && $config_md5 != 'enterprise-agree') {
         $prompt_in_method = pts_client::check_command_for_function($command, 'pts_user_agreement_prompt');
         $user_agreement = file_get_contents(PTS_PATH . 'pts-core/user-agreement.txt');
         if ($prompt_in_method) {
             $user_agreement_return = call_user_func(array($command, 'pts_user_agreement_prompt'), $user_agreement);
             if (is_array($user_agreement_return)) {
                 if (count($user_agreement_return) == 3) {
                     list($agree, $usage_reporting) = $user_agreement_return;
                 } else {
                     $agree = array_shift($user_agreement_return);
                     $usage_reporting = -1;
                 }
             } else {
                 $agree = $user_agreement_return;
                 $usage_reporting = -1;
             }
         }
         if ($prompt_in_method == false || $usage_reporting == -1) {
             pts_client::$display->generic_heading('User Agreement');
             echo wordwrap($user_agreement, 65);
             $agree = pts_flags::user_agreement_skip() || pts_user_io::prompt_bool_input('Do you agree to these terms and wish to proceed', true);
             if (pts_flags::no_openbenchmarking_reporting()) {
                 $usage_reporting = false;
             } else {
                 $usage_reporting = $agree ? pts_user_io::prompt_bool_input('Enable anonymous usage / statistics reporting', true) : -1;
             }
         }
         if ($agree) {
             echo PHP_EOL;
             $pso->add_object('user_agreement_cs', $current_md5);
             $pso->save_to_file(PTS_CORE_STORAGE);
         } else {
             pts_client::exit_client('In order to run the Phoronix Test Suite, you must agree to the listed terms.');
         }
         pts_config::user_config_generate(array('PhoronixTestSuite/Options/OpenBenchmarking/AnonymousUsageReporting' => pts_config::bool_to_string($usage_reporting)));
     }
 }