Added Testcase for Get Chassis Capabilities.
Two new testcase:
1) Verify_Get_Chassis_Capabilities - use dbus oject to verify the values
dbus object url variable declared in the variables section.
2) Verify_Get_Chassis_Capabilities_With_Invalid_Data_Length
Tested:
Ran robot ipmi/test_ipmi_chassis.robot
Change-Id: Id7e04a79b4ecddb2ddfb2092c3133d20a535912b
Signed-off-by: Nagarjun B <nagarjunb@ami.com>
diff --git a/data/ipmi_raw_cmd_table.py b/data/ipmi_raw_cmd_table.py
index 38ccc1f..66e7d5e 100644
--- a/data/ipmi_raw_cmd_table.py
+++ b/data/ipmi_raw_cmd_table.py
@@ -607,4 +607,11 @@
"0x0a 0x12",
],
},
+ "Chassis Capabilities": {
+ "Get": [
+ # raw command, invalid data length
+ "0x00 0x00",
+ "0x00 0x00 0x01",
+ ]
+ },
}
diff --git a/ipmi/test_ipmi_chassis.robot b/ipmi/test_ipmi_chassis.robot
index 1c4280f..1c9f030 100644
--- a/ipmi/test_ipmi_chassis.robot
+++ b/ipmi/test_ipmi_chassis.robot
@@ -4,6 +4,7 @@
Resource ../lib/ipmi_client.robot
Resource ../lib/openbmc_ffdc.robot
Resource ../lib/boot_utils.robot
+Resource ../lib/bmc_dbus.robot
Library ../lib/ipmi_utils.py
Variables ../data/ipmi_raw_cmd_table.py
@@ -11,10 +12,14 @@
Suite Teardown Redfish.Logout
Test Teardown Test Teardown Execution
+
*** Variables ***
# Timeout value in minutes. Default 3 minutes.
-${IPMI_POWEROFF_WAIT_TIMEOUT} 3
+${IPMI_POWEROFF_WAIT_TIMEOUT} 3
+${busctl_settings} xyz.openbmc_project.Settings
+${chassis_capabilities_dbus_URL} /xyz/openbmc_project/Control/ChassisCapabilities
+
*** Test Cases ***
@@ -114,6 +119,37 @@
previous
+Verify Get Chassis Capabilities
+ [Documentation] Verify get chassis capabilities IPMI cmd with valid data length and verify
+ ... its response comparing with busctl command.
+ [Tags] Verify_Get_Chassis_Capabilities
+ [Teardown] FFDC On Test Case Fail
+
+ ${ipmi_resp}= Run External IPMI Raw Command
+ ... ${IPMI_RAW_CMD['Chassis Capabilities']['Get'][0]}
+
+ ${ipmi_resp}= Split String ${ipmi_resp}
+ ${busctl_cmd}= Catenate ${BUSCTL_INTROSPECT_COMMAND} ${busctl_settings}
+ ... ${chassis_capabilities_dbus_URL}
+
+ ${busctl_resp}= BMC Execute Command sh --login -c "${busctl_cmd}"
+
+ Verify Chassis Capabilities Response ${ipmi_resp[0]} ${busctl_resp[0]} CapabilitiesFlags
+ Verify Chassis Capabilities Response ${ipmi_resp[1]} ${busctl_resp[0]} FRUDeviceAddress
+ Verify Chassis Capabilities Response ${ipmi_resp[2]} ${busctl_resp[0]} SDRDeviceAddress
+ Verify Chassis Capabilities Response ${ipmi_resp[3]} ${busctl_resp[0]} SELDeviceAddress
+ Verify Chassis Capabilities Response ${ipmi_resp[4]} ${busctl_resp[0]} SMDeviceAddress
+ Verify Chassis Capabilities Response ${ipmi_resp[5]} ${busctl_resp[0]} BridgeDeviceAddress
+
+
+Verify Get Chassis Capabilities With Invalid Data Length
+ [Documentation] Verify get chassis capabilities IPMI command with invalid data length
+ [Tags] Verify_Get_Chassis_Capabilities_With_Invalid_Data_Length
+ [Teardown] FFDC On Test Case Fail
+
+ Verify Invalid IPMI Command ${IPMI_RAW_CMD['Chassis Capabilities']['Get'][1]} 0xc7
+
+
*** Keywords ***
Set Chassis Power Policy Via IPMI And Verify
@@ -164,6 +200,18 @@
Should Be Equal As Strings ${last_power_event[3]} 1
+Verify Chassis Capabilities Response
+ [Documentation] Will compare the ipmi response with thh busctl response for given property.
+ [Arguments] ${ipmi_response} ${busctl_response} ${property}
+
+ ${ipmi_response}= Convert To Integer ${ipmi_response} 16
+
+ ${busctl_value}= Get Regexp Matches ${busctl_response}
+ ... \\.${property}\\s+property\\s+\\w\\s+(\\d+)\\s+ 1
+
+ Should Be Equal As Integers ${ipmi_response} ${busctl_value[0]}
+
+
Test Setup Execution
[Documentation] Do test setup tasks.