| *** Settings *** |
| Documentation Test IPMI sensor IDs. |
| |
| Resource ../../lib/rest_client.robot |
| Resource ../../lib/ipmi_client.robot |
| Resource ../../lib/openbmc_ffdc.robot |
| Resource ../../lib/state_manager.robot |
| Library ../../data/model.py |
| Resource ../../lib/boot_utils.robot |
| Resource ../../lib/utils.robot |
| |
| Test Setup Open Connection And Log In |
| Test Teardown Test Teardown Execution |
| |
| *** Test Cases *** |
| |
| DIMM Present And Not Present |
| [Documentation] Verify the IPMI sensor for DIMM3 present and not present. |
| [Tags] DIMM_Present_And_Not_Present |
| |
| # Set the dimm3 Present to 1 |
| Run IPMI Command |
| ... 0x04 0x30 0xac 0xa9 0x00 0x40 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/dimm3 Present ${1} |
| |
| # Set the dimm3 Present to 0 |
| Run IPMI Command |
| ... 0x04 0x30 0xac 0xa9 0xff 0x00 0x00 0x40 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/dimm3 Present ${0} |
| |
| |
| DIMM Functional And Not Functional |
| [Documentation] Verify that the DIMM3 is functional. |
| [Tags] DIMM_Functional_And_Not_Functional |
| |
| # Set the dimm3 Functional to 0 |
| Run IPMI Command |
| ... 0x04 0x30 0xac 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/dimm3 |
| ... Functional ${0} |
| # Set the dimm3 Functional to 1 |
| Run IPMI Command |
| ... 0x04 0x30 0xac 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/dimm3 |
| ... Functional ${1} |
| |
| |
| CPU Present |
| [Documentation] Verify the IPMI sensor for CPU present. |
| |
| # sensor_id component |
| 0x5a cpu0 |
| |
| [Template] Check Present Bit |
| [Tags] CPU_Present |
| |
| |
| CPU Not Present |
| [Documentation] Verify the IPMI sensor for CPU not present. |
| |
| # sensor_id component |
| 0x5a cpu0 |
| |
| [Template] Check Not Present Bit |
| [Tags] CPU_Not_Present |
| |
| |
| CPU Functional |
| [Documentation] Verify the IPMI sensor for CPU functional. |
| |
| # sensor_id component |
| 0x5a cpu0 |
| |
| [Template] Check Functional Bit |
| [Tags] CPU_Functional |
| |
| |
| CPU Not Functional |
| [Documentation] Verify the IPMI sensor for CPU not functional. |
| |
| # sensor_id component |
| 0x5a cpu0 |
| |
| [Template] Check Not Functional Bit |
| [Tags] CPU_Not_Functional |
| |
| |
| GPU Present |
| [Documentation] Verify the IPMI sensor for GPU present. |
| |
| # sensor_id component |
| 0xC5 gv100card0 |
| |
| [Template] Check Present Bit |
| [Tags] GPU_Present |
| |
| |
| GPU Not Present |
| [Documentation] Verify the IPMI sensor for GPU not present. |
| |
| # sensor_id component |
| 0xC5 gv100card0 |
| |
| [Template] Check Not Present Bit |
| [Tags] GPU_Not_Present |
| |
| |
| GPU Functional |
| [Documentation] Verify the IPMI sensor GPU for functional. |
| |
| # sensor_id component |
| 0xC5 gv100card0 |
| |
| [Template] Check Functional Bit |
| [Tags] GPU_Functional |
| |
| |
| GPU Not Functional |
| [Documentation] Verify the IPMI sensor GPU for not functional. |
| |
| # sensor_id component |
| 0xC5 gv100card0 |
| |
| [Template] Check Not Functional Bit |
| [Tags] GPU_Not_Functional |
| |
| |
| Core Present |
| [Documentation] Verify the IPMI sensor for core present. |
| |
| # sensor_id component |
| 0x1e cpu0/core4 |
| |
| [Template] Check Present Bit |
| [Tags] Core_Present |
| |
| |
| Core Not Present |
| [Documentation] Verify the IPMI sensor for core not present. |
| |
| # sensor_id component |
| 0x1e cpu0/core4 |
| |
| [Template] Check Not Present Bit |
| [Tags] Core_Not_Present |
| |
| |
| Core Functional |
| [Documentation] Verify the IPMI sensor for core functional. |
| |
| # sensor_id component |
| 0x1e cpu0/core4 |
| |
| [Template] Check Functional Bit |
| [Tags] Core_Functional |
| |
| |
| Core Not Functional |
| [Documentation] Verify the IPMI sensor for core not functional. |
| |
| # sensor_id component |
| 0x1e cpu0/core4 |
| |
| [Template] Check Not Functional Bit |
| [Tags] Core_Not_Functional |
| |
| |
| # Operating System State Test Cases. |
| |
| Set BootProgress To OSStart And Verify |
| [Documentation] Set BootProgress To OSStart and verify. |
| |
| # BootProgressID BootProgress |
| 0x13 ${OS_BOOT_START} |
| |
| [Template] Check BootProgress |
| [Tags] Set_BootProgress_To_OSStart_And_Verify |
| |
| |
| Set OperatingSystemState To CBoot And Verify |
| [Documentation] Set Operating System State to "CBoot" |
| ... and verify using REST. |
| |
| # OperatingSystemStateID OperatingSystemState |
| 0x02 ${OS_BOOT_CBoot} |
| |
| [Template] Check OperatingSystemState |
| [Tags] Set_OperatingSystemState_To_CBoot_And_Verify |
| |
| |
| Set OperatingSystemState To PXEBoot And Verify |
| [Documentation] Set Operating System State to "PXEBoot" |
| ... and verify using REST. |
| |
| # OperatingSystemStateID OperatingSystemState |
| 0x05 ${OS_BOOT_PXE} |
| |
| [Template] Check OperatingSystemState |
| [Tags] Set_OperatingSystemState_To_PXEBoot_And_Verify |
| |
| |
| Set OperatingSystemState To BootComplete And Verify |
| [Documentation] Set Operating System State to "BootComplete" |
| ... and verify using REST. |
| |
| # OperatingSystemStateID OperatingSystemState |
| 0x40 ${OS_BOOT_COMPLETE} |
| |
| [Template] Check OperatingSystemState |
| [Tags] Set_OperatingSystemState_To_BootComplete_And_Verify |
| |
| |
| Set OperatingSystemState To CDROMBoot And Verify |
| [Documentation] Set Operating System State to "CDROMBoot" |
| ... and verify using REST. |
| |
| # OperatingSystemStateID OperatingSystemState |
| 0x10 ${OS_BOOT_CDROM} |
| |
| [Template] Check OperatingSystemState |
| [Tags] Set_OperatingSystemState_To_CDROMBoot_And_Verify |
| |
| |
| Set OperatingSystemState To ROMBoot And Verify |
| [Documentation] Set Operating System State to "ROMBoot" |
| ... and verify using REST. |
| |
| # OperatingSystemStateID OperatingSystemState |
| 0x20 ${OS_BOOT_ROM} |
| |
| [Template] Check OperatingSystemState |
| [Tags] Set_OperatingSystemState_To_ROMBoot_And_Verify |
| |
| |
| Set OperatingSystemState To DiagBoot And Verify |
| [Documentation] Set Operating System State to "DiagBoot" |
| ... and verify using REST. |
| |
| # OperatingSystemStateID OperatingSystemState |
| 0x08 ${OS_BOOT_DiagBoot} |
| |
| [Template] Check OperatingSystemState |
| [Tags] Set_OperatingSystemState_To_DiagBoot_And_Verify |
| |
| |
| # Boot Progress Test Cases. |
| |
| Set BootProgress To MemoryInit And Verify |
| [Documentation] Set BootProgress to "MemoryInit" and verify. |
| |
| # BootProgressID BootProgress |
| 0x01 ${OS_BOOT_MEM} |
| |
| [Template] Check BootProgress |
| [Tags] Set_BootProgress_To_MemoryInit_And_Verify |
| |
| |
| Set BootProgress To MotherboardInit And Verify |
| [Documentation] Set BootProgress to "MotherboardInit" and verify. |
| |
| # BootProgressID BootProgress |
| 0x14 ${OS_BOOT_MOTHERBOARD} |
| |
| [Template] Check BootProgress |
| [Tags] Set_BootProgress_To_MotherboardInit_And_Verify |
| |
| |
| Set BootProgress To SecondaryProcInit And Verify |
| [Documentation] Set BootProgress to "SecondaryProcInit" and verify. |
| |
| # BootProgressID BootProgress |
| 0x03 ${OS_BOOT_SECPCI} |
| |
| [Template] Check BootProgress |
| [Tags] Set_BootProgress_To_SecondaryProcInit_And_Verify |
| |
| |
| Set BootProgress To PCIinit And Verify |
| [Documentation] Set BootProgress to "PCIinit" and verify. |
| |
| #BootProgressID BootProgress |
| 0x07 ${OS_BOOT_PCI} |
| |
| [Template] Check BootProgress |
| [Tags] Set_BootProgress_To_PCIinit_And_Verify |
| |
| |
| Set BootProgress To Unspecified And Verify |
| [Documentation] Set BootProgress to "Unspecified" and verify. |
| |
| # BootProgressID BootProgress |
| 0x00 ${OS_BOOT_OFF} |
| |
| [Template] Check BootProgress |
| [Tags] Set_BootProgress_To_Unspecified_And_Verify |
| |
| |
| TPM Enable and Disable |
| [Documentation] Enable and disable TPM. |
| [Tags] TPM_Enable_and_Disable |
| |
| # Set the TPMEnable to 0 |
| Run IPMI Command |
| ... 0x04 0x30 0xD7 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute ${CONTROL_URI}/host0/TPMEnable TPMEnable ${0} |
| |
| # Set the TPMEnable to 1 |
| Run IPMI Command |
| ... 0x04 0x30 0xD7 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute ${CONTROL_URI}/host0/TPMEnable TPMEnable ${1} |
| |
| |
| Autoreboot Enable and Disable |
| [Documentation] Enable and disable Autoreboot. |
| [Tags] Autoreboot_Enable_and_Disable |
| |
| # Set the TPMEnable to 0 |
| Run IPMI Command |
| ... 0x04 0x30 0xDA 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute ${CONTROL_URI}/host0/auto_reboot AutoReboot ${0} |
| |
| # Set the TPMEnable to 1 |
| Run IPMI Command |
| ... 0x04 0x30 0xDA 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute ${CONTROL_URI}/host0/auto_reboot AutoReboot ${1} |
| |
| |
| OccActive Enable And Disable |
| [Documentation] OCC Active Enable And Disable. |
| [Tags] OCC_Active_Enable_And_Disable |
| |
| # Set the OccActive to 1 |
| Run IPMI Command |
| ... 0x04 0x30 0x08 0xa8 0x00 0x02 0x00 0x01 0x00 0x00 0x00 0x00 |
| Verify The Attribute ${OPENPOWER_CONTROL}/occ0 OccActive ${1} |
| |
| # Set the OccActive to 0 |
| Run IPMI Command |
| ... 0x04 0x30 0x08 0xa8 0x00 0x01 0x00 0x02 0x00 0x00 0x00 0x00 |
| Verify The Attribute ${OPENPOWER_CONTROL}/occ0 OccActive ${0} |
| |
| |
| Verify IPMI BT Capabilities Command |
| [Documentation] Verify IPMI BT capability command response. |
| [Tags] Verify_IPMI_BT_Capabilities_Command |
| [Setup] REST Power On |
| |
| ${output} = Run IPMI command 0x06 0x36 |
| Should Be True "${output}" == " 01 3f 3f 0a 01" |
| ... msg=Incorrect Output. |
| |
| |
| *** Keywords *** |
| |
| Check Present Bit |
| [Documentation] Set the present field to 1 and verify. |
| [Arguments] ${sensor_id} ${component} |
| |
| # Description of argument(s): |
| # sensor_id Corresponding to OperatingSystemState. |
| # component Component name. |
| |
| Run IPMI Command |
| ... 0x04 0x30 ${sensor_id} 0xa9 0x00 0x80 0x00 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/${component} |
| ... Present ${1} |
| |
| |
| Check Not Present Bit |
| [Documentation] Set the present field to 1 and verify. |
| [Arguments] ${sensor_id} ${component} |
| |
| # Description of argument(s): |
| # sensor_id Corresponding to OperatingSystemState. |
| # component Component name. |
| |
| Run IPMI Command |
| ... 0x04 0x30 ${sensor_id} 0xa9 0x00 0x00 0x00 0x80 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/${component} |
| ... Present ${0} |
| |
| |
| Check Functional Bit |
| [Documentation] Set the functional to 1 and verify. |
| [Arguments] ${sensor_id} ${component} |
| |
| # Description of argument(s): |
| # sensor_id Corresponding to OperatingSystemState. |
| # component Component name. |
| |
| Run IPMI Command |
| ... 0x04 0x30 ${sensor_id} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/${component} |
| ... Functional ${1} |
| |
| |
| Check Not Functional Bit |
| [Documentation] Set the functional to 0 and verify. |
| [Arguments] ${sensor_id} ${component} |
| |
| # Description of argument(s): |
| # sensor_id Corresponding to OperatingSystemState. |
| # component Component name. |
| |
| Run IPMI Command |
| ... 0x04 0x30 ${sensor_id} 0xa9 0xff 0x00 0x01 0x00 0x00 0x00 0x20 0x00 |
| Verify The Attribute |
| ... ${HOST_INVENTORY_URI}system/chassis/motherboard/${component} |
| ... Functional ${0} |
| |
| |
| Check OperatingSystemState |
| [Documentation] Set OperatingSystemState and verify. |
| [Arguments] ${sensor_id} ${OperatingSystemState} |
| |
| # Description of argument(s): |
| # sensor_id Corresponding to OperatingSystemState. |
| # OperatingSystemState OperatingSystemState to be set. |
| |
| Run IPMI Command |
| ... 0x04 0x30 0x05 0xa9 0x00 ${sensor_id} 0x00 0x00 0x00 0x00 0x00 0x00 |
| ${resp}= Read Attribute ${SYSTEM_STATE_URI}/host0 OperatingSystemState |
| Should Be Equal ${OperatingSystemState} ${resp} |
| |
| |
| Check BootProgress |
| [Documentation] Set the Bootprogress and verify. |
| [Arguments] ${BootProgressID} ${BootProgress} |
| |
| # Description of argument(s): |
| # BootProgressID Corresponding to BootProgress. |
| # BootProgress BootProgress to be set. |
| |
| Run IPMI Command |
| ... 0x04 0x30 0x03 0xa8 0x00 0x04 0x00 0x00 0x00 0x00 ${BootProgressID} 0x00 |
| ${resp}= Read Attribute ${SYSTEM_STATE_URI}/host0 BootProgress |
| Should Be Equal ${BootProgress} ${resp} |
| |
| |
| Verify The Attribute |
| [Arguments] ${uri} ${parm} ${value} |
| |
| # Description of arguments: |
| # uri URI path. |
| # parm Attribute. |
| # value Output to be compared. |
| |
| ${output}= Read Attribute ${uri} ${parm} |
| Should Be Equal ${value} ${output} |
| |
| |
| Test Teardown Execution |
| [Documentation] Do the post test teardown. |
| ... 1. Capture FFDC on test failure. |
| ... 2. Close all open SSH connections. |
| |
| FFDC On Test Case Fail |
| Close All Connections |
| |