Fix for power supply test when host is powered on
Change-Id: Ibf194b57243e413d4f422df82ba5e47a042a24df
Signed-off-by: Marissa Garza <garzam@us.ibm.com>
Signed-off-by: William Toth <wtoth@us.ibm.com>
diff --git a/lib/open_power_utils.robot b/lib/open_power_utils.robot
index fb10abf..d936379 100644
--- a/lib/open_power_utils.robot
+++ b/lib/open_power_utils.robot
@@ -78,13 +78,14 @@
${cpu_list}= Get Endpoint Paths
... ${HOST_INVENTORY_URI}system/chassis/motherboard/ cpu*
- :FOR ${endpoint_path} IN @{cpu_list}
- \ ${is_functional}= Read Object Attribute ${endpoint_path} Functional
- \ Continue For Loop If ${is_functional} == ${0}
- \ ${num}= Set Variable ${endpoint_path[-1]}
- \ ${occ_active}= Get OCC Active State ${OPENPOWER_CONTROL}occ${num}
- \ Should Be Equal ${occ_active} ${expected_occ_active}
- ... msg=OCC not in right state
+ FOR ${endpoint_path} IN @{cpu_list}
+ ${is_functional}= Read Object Attribute ${endpoint_path} Functional
+ Continue For Loop If ${is_functional} == ${0}
+ ${num}= Set Variable ${endpoint_path[-1]}
+ ${occ_active}= Get OCC Active State ${OPENPOWER_CONTROL}occ${num}
+ Should Be Equal ${occ_active} ${expected_occ_active}
+ ... msg=OCC not in right state
+ END
Get Sensors Aggregation Data
@@ -114,8 +115,9 @@
${resp}= Read Attribute ${object_base_uri_path} Values quiet=${1}
${power_sensors_value_list}= Create List
- :FOR ${entry} IN @{resp}
- \ Append To List ${power_sensors_value_list} ${entry[1]}
+ FOR ${entry} IN @{resp}
+ Append To List ${power_sensors_value_list} ${entry[1]}
+ END
[Return] ${power_sensors_value_list}
@@ -153,13 +155,10 @@
${power_supply_avg_list}= Create List
${power_supply_max_list}= Create List
- :FOR ${entry} IN @{content["data"]}
- \ ${status}=
- ... Run keyword And Return Status Should Contain ${entry} average
- \ Run Keyword If ${status} == ${False}
- ... Append To List ${power_supply_max_list} ${entry}
- ... ELSE
- ... Append To List ${power_supply_avg_list} ${entry}
+ FOR ${entry} IN @{content["data"]}
+ Run Keyword If 'average' in '${entry}' Append To List ${power_supply_avg_list} ${entry}
+ Run Keyword If 'maximum' in '${entry}' Append To List ${power_supply_max_list} ${entry}
+ END
[Return] ${power_supply_avg_list} ${power_supply_max_list}
diff --git a/tests/test_power_supply.robot b/tests/test_power_supply.robot
index 75879ad..f2c0e94 100644
--- a/tests/test_power_supply.robot
+++ b/tests/test_power_supply.robot
@@ -106,23 +106,29 @@
# power_paths A list of power paths (example list element
# "/org/open_power/sensors/aggregation/per_30s/ps0_input_power/average").
+ Reset 30s Aggregation Power Readings
+ # sleep for 3 minutes to get 6-7 readings.
+ Sleep 3m
+
# Check for "average" aggregation.
- :FOR ${power_path} IN @{power_paths[0]}
- \ ${averages}= Get Sensors Aggregation Data ${power_path}
- \ ${max} ${min}= Evaluate (max(@{averages}), min(@{averages}))
- \ Should Be True ${max} < ${upper_power_limit}
- ... msg=Wattage ${max} crossed ${upper_power_limit}.
- \ Should Be True ${min} >= ${lower_power_limit}
- ... msg=Wattage ${min} below ${lower_power_limit}.
+ FOR ${power_path} IN @{power_paths[0]}
+ ${averages}= Get Sensors Aggregation Data ${power_path}
+ ${max} ${min}= Evaluate (max(@{averages}), min(@{averages}))
+ Should Be True ${max} < ${upper_power_limit}
+ ... msg=Wattage ${max} crossed ${upper_power_limit}.
+ Should Be True ${min} >= ${lower_power_limit}
+ ... msg=Wattage ${min} below ${lower_power_limit}.
+ END
# Check for "maximum" aggregation.
- :FOR ${power_path} IN @{power_paths[1]}
- \ ${maximums}= Get Sensors Aggregation Data ${power_path}
- \ ${max} ${min}= Evaluate (max(@{maximums}), min(@{maximums}))
- \ Should Be True ${max} < ${upper_power_limit}
- ... msg=Wattage ${max} crossed ${upper_power_limit}.
- \ Should Be True ${min} >= ${lower_power_limit}
- ... msg=Wattage ${min} below ${lower_power_limit}.
+ FOR ${power_path} IN @{power_paths[1]}
+ ${maximums}= Get Sensors Aggregation Data ${power_path}
+ ${max} ${min}= Evaluate (max(@{maximums}), min(@{maximums}))
+ Should Be True ${max} < ${upper_power_limit}
+ ... msg=Wattage ${max} crossed ${upper_power_limit}.
+ Should Be True ${min} >= ${lower_power_limit}
+ ... msg=Wattage ${min} below ${lower_power_limit}.
+ END
# Every 30 seconds the power wattage data is updated.
Sleep ${power_data_collection_interval}s
@@ -141,16 +147,28 @@
Sleep ${power_data_collection_interval}s
# Check for "average" aggregation.
- :FOR ${power_path} IN @{power_paths[0]}
- \ ${averages}= Get Sensors Aggregation Data ${power_path}
- \ Should Be True ${averages[0]} < ${lower_power_limit}
- ... msg=Wattage ${averages[0]} more than ${lower_power_limit}.
+ FOR ${power_path} IN @{power_paths[0]}
+ ${averages}= Get Sensors Aggregation Data ${power_path}
+ Should Be True ${averages[0]} < ${lower_power_limit}
+ ... msg=Wattage ${averages[0]} more than ${lower_power_limit}.
+ END
# Check for "maximum" aggregation.
- :FOR ${power_path} IN @{power_paths[1]}
- \ ${maximums}= Get Sensors Aggregation Data ${power_path}
- \ Should Be True ${maximums[0]} < ${lower_power_limit}
- ... msg=Wattage ${maximums[0]} more than ${lower_power_limit}.
+ FOR ${power_path} IN @{power_paths[1]}
+ ${maximums}= Get Sensors Aggregation Data ${power_path}
+ Should Be True ${maximums[0]} < ${lower_power_limit}
+ ... msg=Wattage ${maximums[0]} more than ${lower_power_limit}.
+ END
+
+
+Reset 30s Aggregation Power Readings
+ [Documentation] Reset 30s Aggregation Power Readings to ensure readings
+ ... are collected after Power Supplies are done powering up.
+
+ BMC Execute Command /bin/systemctl restart power-supply-monitor@0.service
+ BMC Execute Command /bin/systemctl restart power-supply-monitor@1.service
+ # wait for services to restart.
+ Sleep 10s
Set Power Supply Present