xref: /openbmc/openbmc-test-automation/ipmi/dcmi/test_dcmi_get_capabilities.robot (revision aaf7d1c99b7165d3167ad4ed4f8a7cbc3bb845da)
1ec44d618Sganesanb*** Settings ***
2ec44d618Sganesanb
3*aaf7d1c9SGeorge KeishingDocumentation    Module to test dcmi get capabilities functionality.
4ec44d618SganesanbResource         ../../lib/ipmi_client.robot
5ec44d618Sganesanb
66fb70d98SMatt FischerTest Tags       DCMI_Get_Capabilities
787dc442cSGeorge Keishing
81965a49eSganesanb*** Variables ***
987dc442cSGeorge Keishing
101965a49eSganesanb@{slave_address_list}  Slave address of device: 0h (8bits)(Satellite/External controller)
111965a49eSganesanb...                    Slave address of device: 20h (BMC)
121965a49eSganesanb
13ec44d618Sganesanb*** Test Cases ***
14ec44d618Sganesanb
15ec44d618SganesanbVerify Get DCMI Capabilities
16ec44d618Sganesanb    [Documentation]  Verify get DCMI capabilities command output.
17ec44d618Sganesanb    [Tags]  Verify_Get_DCMI_Capabilities
18ec44d618Sganesanb    ${cmd_output}=  Run IPMI Standard Command  dcmi discover
19ec44d618Sganesanb
20ec44d618Sganesanb    @{supported_capabilities}=  Create List
21ec44d618Sganesanb    # Supported DCMI capabilities:
22*aaf7d1c9SGeorge Keishing    ...  Mandatory platform capabilities
23*aaf7d1c9SGeorge Keishing    ...  Optional platform capabilities
24ec44d618Sganesanb    ...  Power management available
25*aaf7d1c9SGeorge Keishing    ...  Managebility access capabilities
26ec44d618Sganesanb    ...  In-band KCS channel available
27ec44d618Sganesanb    # Mandatory platform attributes:
28ec44d618Sganesanb    ...  200 SEL entries
29ec44d618Sganesanb    ...  SEL automatic rollover is enabled
30ec44d618Sganesanb    # Optional Platform Attributes:
31ec44d618Sganesanb    ...  Channel number is 0h (Primary BMC)
32ec44d618Sganesanb    ...  Device revision is 0
33ec44d618Sganesanb    # Manageability Access Attributes:
341965a49eSganesanb    ...  Primary LAN channel number: ${CHANNEL_NUMBER} is available
35ec44d618Sganesanb    ...  Secondary LAN channel is not available for OOB
36ec44d618Sganesanb    ...  No serial channel is available
37ec44d618Sganesanb
38ec44d618Sganesanb    FOR  ${capability}  IN  @{supported_capabilities}
39ec44d618Sganesanb      Run Keyword And Continue On Failure  Should Contain  ${cmd_output}  ${capability}  ignore_case=True
40ec44d618Sganesanb      ...  msg=Supported DCMI capabilities not present.
41ec44d618Sganesanb    END
421965a49eSganesanb
431965a49eSganesanb    FOR  ${slave_address}  IN  @{slave_address_list}
441965a49eSganesanb      ${slave_address_status}=  Run Keyword And Return Status
451965a49eSganesanb      ...  Should Contain  ${cmd_output}  ${slave_address}  ignore_case=True
461965a49eSganesanb      Exit For Loop IF  ${slave_address_status} == True
471965a49eSganesanb    END
481965a49eSganesanb
491965a49eSganesanb    Run Keyword IF  ${slave_address_status} == False  Fail  msg=Slave address is showing wrongly.
503c619b1cSmanimozhik
513c619b1cSmanimozhik    ${output}=  Get Lines Containing String  ${cmd_output}  Slave address of device:
523c619b1cSmanimozhik    ${slave_address_status_1}=  Run Keyword And Return Status
533c619b1cSmanimozhik    ...  Should Be Equal  ${output.strip()}  ${slave_address_list[1]}  ignore_case=True
543c619b1cSmanimozhik    ${output_1}=  Get Lines Containing String  ${cmd_output}   Channel number is
553c619b1cSmanimozhik    Run Keyword IF  ${slave_address_status_1} == True
563c619b1cSmanimozhik    ...    Should Be Equal  ${output_1.strip()}   ${supported_capabilities[7]}
573c619b1cSmanimozhik    ...  ELSE  Should Match Regexp  ${output.strip()}  [1-9]+h
58