Test baseboard temperature via IPMI.
Resolves openbmc/openbmc-test-automation#1249
Change-Id: Ibe194f3bbc0c91b99cde494c477532decdcd4fb4
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/tests/ipmi/test_general_ipmi.robot b/tests/ipmi/test_general_ipmi.robot
index 6c40b76..5a344b8 100644
--- a/tests/ipmi/test_general_ipmi.robot
+++ b/tests/ipmi/test_general_ipmi.robot
@@ -286,6 +286,45 @@
... msg=Power reading above allowed threshold ${allowed_power_diff}.
+Test Baseboard Temperature Via IPMI
+ [Documentation] Test baseboard temperature via IPMI and verify using REST.
+ [Tags] Test_Baseboard_Temperature_Via_IPMI
+
+ # Example of IPMI dcmi get_temp_reading output:
+ # Entity ID Entity Instance Temp. Readings
+ # Inlet air temperature(40h) 1 +19 C
+ # CPU temperature sensors(41h) 5 +51 C
+ # CPU temperature sensors(41h) 6 +50 C
+ # CPU temperature sensors(41h) 7 +50 C
+ # CPU temperature sensors(41h) 8 +50 C
+ # CPU temperature sensors(41h) 9 +50 C
+ # CPU temperature sensors(41h) 10 +48 C
+ # CPU temperature sensors(41h) 11 +49 C
+ # CPU temperature sensors(41h) 12 +47 C
+ # CPU temperature sensors(41h) 8 +50 C
+ # CPU temperature sensors(41h) 16 +51 C
+ # CPU temperature sensors(41h) 24 +50 C
+ # CPU temperature sensors(41h) 32 +43 C
+ # CPU temperature sensors(41h) 40 +43 C
+ # Baseboard temperature sensors(42h) 1 +35 C
+
+ ${temp_reading}= Run IPMI Standard Command dcmi get_temp_reading -N 10
+ ${baseboard_temp_line}=
+ ... Get Lines Containing String ${temp_reading}
+ ... Baseboard temperature case-insensitive=True
+
+ ${baseboard_temp_ipmi}= Fetch From Right ${baseboard_temp_line} +
+ ${baseboard_temp_ipmi}= Remove String ${baseboard_temp_ipmi} ${SPACE}C
+
+ ${baseboard_temp_rest}= Read Attribute
+ ... /xyz/openbmc_project/sensors/temperature/pcie Value
+ ${baseboard_temp_rest}= Evaluate ${baseboard_temp_rest}/1000
+
+ Should Be True
+ ... ${baseboard_temp_rest} - ${baseboard_temp_ipmi} <= ${allowed_temp_diff}
+ ... msg=Baseboard temperature above allowed threshold ${allowed_temp_diff}.
+
+
*** Keywords ***
Set Management Controller ID String