public static function __post_test_run()
 {
     pts_module::remove_file('is_running');
     $screenshots = self::get_screenshots();
     foreach ($screenshots as $screenshot) {
         // Compress the PNGs a bit
         pts_image::compress_png_image($screenshot, 9);
     }
     return $screenshots;
 }
 private static function process_summary_results(&$sensor, &$test_run_manager)
 {
     $sensor_results = self::parse_monitor_log('logs/' . phodevi::sensor_object_identifier($sensor));
     pts_module::remove_file('logs/' . phodevi::sensor_object_identifier($sensor));
     if (count($sensor_results) > 2 && self::$monitor_test_count > 1) {
         $test_profile = new pts_test_profile();
         $test_result = new pts_test_result($test_profile);
         $test_result->test_profile->set_test_title(phodevi::sensor_object_name($sensor) . ' Monitor');
         $test_result->test_profile->set_identifier(null);
         $test_result->test_profile->set_version(null);
         $test_result->test_profile->set_result_proportion(null);
         $test_result->test_profile->set_display_format('LINE_GRAPH');
         $test_result->test_profile->set_result_scale(phodevi::read_sensor_object_unit($sensor));
         $test_result->set_used_arguments_description('Phoronix Test Suite System Monitoring');
         $test_result->set_used_arguments(phodevi::sensor_object_identifier($sensor));
         $test_result->test_result_buffer = new pts_test_result_buffer();
         $test_result->test_result_buffer->add_test_result(self::$result_identifier, implode(',', $sensor_results), implode(',', $sensor_results), implode(',', $sensor_results), implode(',', $sensor_results));
         $test_run_manager->result_file->add_result($test_result);
     }
 }
 public static function __event_results_process(&$test_run_manager)
 {
     if (count(self::$perf_per_watt_collection) > 2) {
         // Performance per watt overall
         $avg = array_sum(self::$perf_per_watt_collection) / count(self::$perf_per_watt_collection);
         $test_profile = new pts_test_profile();
         $test_result = new pts_test_result($test_profile);
         $test_result->test_profile->set_test_title('Meta Performance Per Watt');
         $test_result->test_profile->set_identifier(null);
         $test_result->test_profile->set_version(null);
         $test_result->test_profile->set_result_proportion(null);
         $test_result->test_profile->set_display_format('BAR_GRAPH');
         $test_result->test_profile->set_result_scale('Performance Per Watt');
         $test_result->test_profile->set_result_proportion('HIB');
         $test_result->set_used_arguments_description('Performance Per Watt');
         $test_result->set_used_arguments('Per-Per-Watt');
         $test_result->test_result_buffer = new pts_test_result_buffer();
         $test_result->test_result_buffer->add_test_result(self::$result_identifier, pts_math::set_precision($avg));
         $test_run_manager->result_file->add_result($test_result);
     }
     echo PHP_EOL . 'Finishing System Sensor Monitoring Process' . PHP_EOL;
     sleep(self::$sensor_monitoring_frequency * 4);
     foreach (self::$to_monitor as $sensor) {
         $sensor_results = self::parse_monitor_log('logs/' . phodevi::sensor_identifier($sensor));
         pts_module::remove_file('logs/' . phodevi::sensor_identifier($sensor));
         if (count($sensor_results) > 2 && self::$monitor_test_count > 1) {
             $test_profile = new pts_test_profile();
             $test_result = new pts_test_result($test_profile);
             $test_result->test_profile->set_test_title(phodevi::sensor_name($sensor) . ' Monitor');
             $test_result->test_profile->set_identifier(null);
             $test_result->test_profile->set_version(null);
             $test_result->test_profile->set_result_proportion(null);
             $test_result->test_profile->set_display_format('LINE_GRAPH');
             $test_result->test_profile->set_result_scale(phodevi::read_sensor_unit($sensor));
             $test_result->set_used_arguments_description('Phoronix Test Suite System Monitoring');
             $test_result->set_used_arguments(phodevi::sensor_identifier($sensor));
             $test_result->test_result_buffer = new pts_test_result_buffer();
             $test_result->test_result_buffer->add_test_result(self::$result_identifier, implode(',', $sensor_results), implode(',', $sensor_results), implode(',', $sensor_results), implode(',', $sensor_results));
             $test_run_manager->result_file->add_result($test_result);
         }
     }
 }
 public static function __event_results_process(&$test_run_manager)
 {
     echo PHP_EOL . 'Finishing System Sensor Monitoring Process' . PHP_EOL;
     sleep(self::$sensor_monitoring_frequency * 4);
     foreach (self::$to_monitor as $sensor) {
         $sensor_results = self::parse_monitor_log('logs/' . phodevi::sensor_identifier($sensor));
         pts_module::remove_file('logs/' . phodevi::sensor_identifier($sensor));
         if (count($sensor_results) > 2 && self::$monitor_test_count > 1) {
             $test_profile = new pts_test_profile();
             $test_result = new pts_test_result($test_profile);
             $test_result->test_profile->set_test_title(phodevi::sensor_name($sensor) . ' Monitor');
             $test_result->test_profile->set_identifier(null);
             $test_result->test_profile->set_version(null);
             $test_result->test_profile->set_result_proportion(null);
             $test_result->test_profile->set_display_format('LINE_GRAPH');
             $test_result->test_profile->set_result_scale(phodevi::read_sensor_unit($sensor));
             $test_result->set_used_arguments_description('Phoronix Test Suite System Monitoring');
             $test_result->set_used_arguments(phodevi::sensor_identifier($sensor));
             $test_run_manager->result_file_writer->add_result_from_result_object_with_value_string($test_result, implode(',', $sensor_results), implode(',', $sensor_results));
         }
     }
 }