pts-cor: Few fixes

This commit is contained in:
Michael Larabel
2024-11-10 05:14:33 -06:00
parent 106ea700a8
commit 899246f23e
5 changed files with 90 additions and 25 deletions

View File

@@ -36,6 +36,8 @@ class remove_results_from_result_file implements pts_option_interface
$result_file = new pts_result_file($r[0]);
$remove_query = pts_user_io::prompt_user_input('Enter the title / arguments to search for to remove from this result file');
$select_results_only = false;
//$select_results_only = pts_user_io::prompt_user_input('Limit result removal to only select runs');
$remove_count = 0;
$table = array();
foreach($result_file->get_result_objects() as $id => $result)
@@ -43,7 +45,26 @@ class remove_results_from_result_file implements pts_option_interface
if(stripos($result->test_profile->get_title(), $remove_query) !== false || stripos($result->test_profile->get_result_scale(), $remove_query) !== false || stripos($result->get_arguments_description(), $remove_query) !== false)
{
$table[] = array($result->test_profile->get_title(), $result->get_arguments_description(), $result->test_profile->get_result_scale());
$result_file->remove_result_object_by_id($id);
if($select_results_only && !empty($select_results_only))
{
foreach($result->test_result_buffer as &$buffers)
{
if(empty($buffers))
continue;
foreach($buffers as &$buffer_item)
{
if(stripos($buffer_item->get_result_identifier(), $select_results_only) !== false)
{
$result->test_result_buffer->remove($buffer_item->get_result_identifier());
}
}
}
}
else
{
$result_file->remove_result_object_by_id($id);
}
$remove_count++;
}
}

View File

@@ -796,6 +796,12 @@ class phodevi_cpu extends phodevi_device_interface
case '0xd13':
$new_info .= ' Cortex-R52';
break;
case '0xd14':
$new_info .= ' Cortex-R82AE';
break;
case '0xd15':
$new_info .= ' Cortex-R82';
break;
case '0xd20':
$new_info .= ' Cortex-M23';
break;
@@ -871,6 +877,9 @@ class phodevi_cpu extends phodevi_device_interface
case '0x001':
$new_info .= ' A64FX';
break;
case '0x003':
$new_info .= ' MONAKA';
break;
}
}
else if($implementer == '0x48')

View File

@@ -229,21 +229,36 @@ class cpu_power extends phodevi_sensor
$watts = 0;
if(pts_client::executable_in_path('powermetrics'))
{
// Unfortunately needs sudo so for most uses /etc/sudoers :
// username ALL = (ALL) NOPASSWD: /usr/bin/powermetrics
$powermetrics = shell_exec("sudo -n powermetrics -n 1 -i 1 --samplers cpu_power 2>&1");
if(($x = strpos($powermetrics, 'Combined Power ')) !== false)
{
$powermetrics = substr($powermetrics, $x);
$powermetrics = substr($powermetrics, strpos($powermetrics, ': ') + 2);
if(($x = strpos($powermetrics, ' mW')) !== false)
{
$powermetrics = substr($powermetrics, 0, $x);
if(($x = strpos($powermetrics, 'Package Power: ')) !== false)
{
$powermetrics = substr($powermetrics, $x + strlen('Package Power: '));
if(($x = strpos($powermetrics, ' mW')) !== false)
{
$powermetrics = substr($powermetrics, 0, $x);
if(is_numeric($powermetrics) && $powermetrics > 0)
{
$watts = $powermetrics / 1000;
}
}
}
else if(($x = strpos($powermetrics, 'Package Power: ')) !== false)
{
$powermetrics = substr($powermetrics, $x + strlen('Package Power: '));
if(($x = strpos($powermetrics, ' mW')) !== false)
{
$powermetrics = substr($powermetrics, 0, $x);
if(is_numeric($powermetrics) && $powermetrics > 0)
{
$watts = $powermetrics / 1000;
}
}
}
if(is_numeric($powermetrics) && $powermetrics > 0)
{
$watts = $powermetrics / 1000;
}
}
}
}
return $watts;

View File

@@ -136,7 +136,7 @@ class pts_result_file_output
{
$csv_output = null;
$csv_output .= $result_file->get_title() . PHP_EOL . $result_file->get_description() . PHP_EOL . PHP_EOL;
$csv_output .= $delimiter . $result_file->get_title() . $delimiter . PHP_EOL . PHP_EOL;
$columns = array();
$hw = array();

View File

@@ -969,7 +969,7 @@ class pts_result_viewer_embed
if($system_count > 1)
{
$t .= '<div class="div_table_cell">Highlight<br />Result</div>
<div class="div_table_cell">Hide<br />Result</div>';
<div class="div_table_cell">Toggle/Hide<br />Result</div>';
}
$t .= '<div class="div_table_cell">Result<br />Identifier</div>';
@@ -991,9 +991,10 @@ class pts_result_viewer_embed
$hgv = explode(',', $hgv);
}
$rmm = self::check_request_for_var($request, 'rmm');
if(!is_array($rmm))
$rmm_is_array = is_array($rmm);
if(!$rmm_is_array)
{
$rmm = explode(',', $rmm);
$rmm .= ',';
}
$start_of_year = strtotime(date('Y-01-01'));
$test_run_times = $result_file->get_test_run_times();
@@ -1009,7 +1010,7 @@ class pts_result_viewer_embed
if($system_count > 1)
{
$t .= '<div class="div_table_cell"><input type="checkbox" name="hgv[]" value="' . $si . '"' . (is_array($hgv) && in_array($si, $hgv) ? ' checked="checked"' : null) . ' /></div>
<div class="div_table_cell"><input type="checkbox" name="rmm[]" value="' . $si . '"' . (is_array($rmm) && in_array($si, $rmm) ? ' checked="checked"' : null) . ' /></div>';
<div class="div_table_cell"><input type="checkbox" name="rmm[]" value="' . $si . '"' . (($rmm_is_array && in_array($si, $rmm)) || (!$rmm_is_array && strpos($rmm, $si . ',') !== false) ? ' checked="checked"' : null) . ' /></div>';
}
$t .= '<div class="div_table_cell"><strong>' . $si . '</strong></div>';
@@ -1041,8 +1042,8 @@ class pts_result_viewer_embed
$t .= '
<div class="div_table_row">
<div class="div_table_cell"> </div>
<div class="div_table_cell"><input type="checkbox" onclick="javascript:invert_hide_all_results_checkboxes();" /></div>
<div class="div_table_cell"><em>Invert Hiding All Results Option</em></div>';
<div class="div_table_cell"><input type="checkbox" name="rmmi" value="1"' . (self::check_request_for_var($request, 'rmmi') ? ' checked="checked"' : null) . ' /></div>
<div class="div_table_cell"><em>Invert Behavior (Only Show Selected Data)</em></div>';
if($has_system_logs)
{
@@ -1574,14 +1575,33 @@ class pts_result_viewer_embed
}
if(($rmm = self::check_request_for_var($request, 'rmm')))
{
if(!is_array($rmm))
if(self::check_request_for_var($request, 'rmmi'))
{
$rmm = explode(',', $rmm);
}
// Invert behavior
$rmm_is_array = is_array($rmm);
if(!$rmm_is_array)
{
$rmm .= ',';
}
foreach($rmm as $rm)
foreach($result_file->get_system_identifiers() as $si)
{
if(($rmm_is_array && !in_array($si, $rmm)) || (!$rmm_is_array && strpos($rmm, $si . ',') === false))
{
$result_file->remove_run($si);
}
}
}
else
{
$result_file->remove_run($rm);
if(!is_array($rmm))
{
$rmm = explode(',', $rmm);
}
foreach($rmm as $rm)
{
$result_file->remove_run($rm);
}
}
}
if(self::check_request_for_var($request, 'grs'))