|  | *** Settings *** | 
|  |  | 
|  | Documentation    Module to test dcmi get capabilities functionality. | 
|  | Resource         ../../lib/ipmi_client.robot | 
|  |  | 
|  | Test Tags       DCMI_Get_Capabilities | 
|  |  | 
|  | *** Variables *** | 
|  |  | 
|  | @{slave_address_list}  Slave address of device: 0h (8bits)(Satellite/External controller) | 
|  | ...                    Slave address of device: 20h (BMC) | 
|  |  | 
|  | *** Test Cases *** | 
|  |  | 
|  | Verify Get DCMI Capabilities | 
|  | [Documentation]  Verify get DCMI capabilities command output. | 
|  | [Tags]  Verify_Get_DCMI_Capabilities | 
|  | ${cmd_output}=  Run IPMI Standard Command  dcmi discover | 
|  |  | 
|  | @{supported_capabilities}=  Create List | 
|  | # Supported DCMI capabilities: | 
|  | ...  Mandatory platform capabilities | 
|  | ...  Optional platform capabilities | 
|  | ...  Power management available | 
|  | ...  Managebility access capabilities | 
|  | ...  In-band KCS channel available | 
|  | # Mandatory platform attributes: | 
|  | ...  200 SEL entries | 
|  | ...  SEL automatic rollover is enabled | 
|  | # Optional Platform Attributes: | 
|  | ...  Channel number is 0h (Primary BMC) | 
|  | ...  Device revision is 0 | 
|  | # Manageability Access Attributes: | 
|  | ...  Primary LAN channel number: ${CHANNEL_NUMBER} is available | 
|  | ...  Secondary LAN channel is not available for OOB | 
|  | ...  No serial channel is available | 
|  |  | 
|  | FOR  ${capability}  IN  @{supported_capabilities} | 
|  | Run Keyword And Continue On Failure  Should Contain  ${cmd_output}  ${capability}  ignore_case=True | 
|  | ...  msg=Supported DCMI capabilities not present. | 
|  | END | 
|  |  | 
|  | FOR  ${slave_address}  IN  @{slave_address_list} | 
|  | ${slave_address_status}=  Run Keyword And Return Status | 
|  | ...  Should Contain  ${cmd_output}  ${slave_address}  ignore_case=True | 
|  | IF  ${slave_address_status} == True  BREAK | 
|  | END | 
|  |  | 
|  | IF  ${slave_address_status} == False | 
|  | Fail  msg=Slave address is showing wrongly. | 
|  | END | 
|  |  | 
|  | ${output}=  Get Lines Containing String  ${cmd_output}  Slave address of device: | 
|  | ${slave_address_status_1}=  Run Keyword And Return Status | 
|  | ...  Should Be Equal  ${output.strip()}  ${slave_address_list[1]}  ignore_case=True | 
|  | ${output_1}=  Get Lines Containing String  ${cmd_output}   Channel number is | 
|  | IF  ${slave_address_status_1} == True | 
|  | Should Be Equal  ${output_1.strip()}   ${supported_capabilities[7]} | 
|  | ELSE | 
|  | Should Match Regexp  ${output.strip()}  [1-9]+h | 
|  | END |