blob: 56a7709bb71f6f8240d85b00efce6d1def95be75 [file] [log] [blame]
*** 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|Found ordering cycle
*** 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}