| *** Settings *** |
| Documentation Power cycle loop. This is to test where network service |
| ... becomes unavailable during AC-Cycle stress test. |
| |
| Resource ../lib/rest_client.robot |
| Resource ../lib/pdu/pdu.robot |
| Resource ../lib/utils.robot |
| Resource ../lib/openbmc_ffdc.robot |
| Resource ../lib/state_manager.robot |
| Resource ../lib/boot_utils.robot |
| Resource ../lib/code_update_utils.robot |
| Library ../lib/bmc_ssh_utils.py |
| |
| Test Teardown Test Teardown Execution |
| Suite Setup Suite Setup Execution |
| |
| *** Variables *** |
| ${LOOP_COUNT} ${50} |
| ${CHECK_FOR_ERRORS} ${1} |
| |
| # Error strings to check from journald. |
| ${ERROR_REGEX} SEGV|core-dump|FAILURE|Failed to start |
| |
| *** Test Cases *** |
| |
| Run Multiple Power Cycle |
| [Documentation] Execute multiple power cycles. |
| [Setup] Validate Parameters |
| [Tags] Run_Multiple_Power_Cycle |
| |
| # By default run test for 50 loops, else user input iteration. |
| # Fails immediately if any of the execution rounds fail and |
| # check if BMC is still pinging and FFDC is collected. |
| Repeat Keyword ${LOOP_COUNT} times Power Cycle System Via PDU |
| |
| |
| Run Multiple BMC Reset Via Redfish |
| [Documentation] Execute multiple reboots via REST. |
| [Tags] Run_Multiple_BMC_Reset_Via_Redfish |
| |
| # By default run test for 50 loops, else user input iteration. |
| # Fails immediately if any of the execution rounds fail and |
| # check if BMC is still pinging and FFDC is collected. |
| Repeat Keyword ${LOOP_COUNT} times BMC Redfish Reset Cycle |
| |
| |
| Run Multiple BMC Reset Via Reboot |
| [Documentation] Execute multiple reboots via "reboot" command. |
| [Tags] Run_Multiple_BMC_Reset_Via_Reboot |
| |
| # By default run test for 50 loops, else user input iteration. |
| # Fails immediately if any of the execution rounds fail and |
| # check if BMC is still pinging and FFDC is collected. |
| Repeat Keyword ${LOOP_COUNT} times BMC Reboot Cycle |
| |
| |
| Run Multiple BMC Reset When Host Is Booted Via Redfish |
| [Documentation] Execute multiple reboots via redfish. |
| [Tags] Run_Multiple_BMC_Reset_When_Host_Is_Booted_Via_Redfish |
| |
| # By default run test for 50 loops, else user input iteration. |
| # Fails immediately if any of the execution rounds fail and |
| # check if BMC is still pinging and FFDC is collected. |
| Repeat Keyword ${LOOP_COUNT} times BMC Redfish Reset Runtime Cycle |
| |
| *** Keywords *** |
| |
| Power Cycle System Via PDU |
| [Documentation] Power cycle system and wait for BMC to reach Ready state. |
| |
| PDU Power Cycle |
| Check If BMC Is Up 5 min 10 sec |
| |
| Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready |
| Verify BMC RTC And UTC Time Drift |
| |
| |
| BMC Redfish Reset Cycle |
| [Documentation] Reset BMC via Redfish and verify required states. |
| |
| Redfish OBMC Reboot (off) |
| |
| ${bmc_version}= Get BMC Version |
| Valid Value bmc_version valid_values=['${initial_bmc_version}'] |
| |
| Run Keyword If '${CHECK_FOR_ERRORS}' == '${1}' |
| ... Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b |
| |
| Verify BMC RTC And UTC Time Drift |
| |
| |
| BMC Redfish Reset Runtime Cycle |
| [Documentation] Reset BMC via Redfish and verify required states. |
| |
| Redfish OBMC Reboot (run) |
| |
| ${bmc_version}= Get BMC Version |
| Valid Value bmc_version valid_values=['${initial_bmc_version}'] |
| |
| Run Keyword If '${CHECK_FOR_ERRORS}' == '${1}' |
| ... Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b |
| |
| Verify BMC RTC And UTC Time Drift |
| |
| |
| BMC Reboot Cycle |
| [Documentation] Reboot BMC and wait for ready state. |
| |
| OBMC Reboot (off) stack_mode=normal |
| ${bmc_version}= Get BMC Version |
| Valid Value bmc_version ["${initial_bmc_version}"] |
| Verify BMC RTC And UTC Time Drift |
| Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b |
| ${boot_side}= Get BMC Flash Chip Boot Side |
| Valid Value boot_side ['0'] |
| |
| |
| Test Teardown Execution |
| [Documentation] Do test case tear-down. |
| Ping Host ${OPENBMC_HOST} |
| FFDC On Test Case Fail |
| |
| |
| Validate Parameters |
| [Documentation] Validate PDU parameters. |
| Should Not Be Empty ${PDU_IP} |
| Should Not Be Empty ${PDU_TYPE} |
| Should Not Be Empty ${PDU_SLOT_NO} |
| Should Not Be Empty ${PDU_USERNAME} |
| Should Not Be Empty ${PDU_PASSWORD} |
| |
| |
| Suite Setup Execution |
| [Documentation] Do suite setup. |
| |
| ${bmc_version}= Get BMC Version |
| Set Suite Variable ${initial_bmc_version} ${bmc_version} |