xref: /openbmc/openbmc-test-automation/extended/test_bmc_reset_loop.robot (revision b39a679d18f40bd0050fb951c61a99f8c28a7e53)
196bd1224SGeorge Keishing*** Settings ***
296bd1224SGeorge KeishingDocumentation   Power cycle loop. This is to test where network service
396bd1224SGeorge Keishing...             becomes unavailable during AC-Cycle stress test.
496bd1224SGeorge Keishing
596bd1224SGeorge KeishingResource        ../lib/rest_client.robot
696bd1224SGeorge KeishingResource        ../lib/pdu/pdu.robot
796bd1224SGeorge KeishingResource        ../lib/utils.robot
896bd1224SGeorge KeishingResource        ../lib/openbmc_ffdc.robot
996bd1224SGeorge KeishingResource        ../lib/state_manager.robot
1096bd1224SGeorge KeishingResource        ../lib/boot_utils.robot
1196bd1224SGeorge Keishing
1296bd1224SGeorge KeishingTest Teardown   Test Exit Logs
1396bd1224SGeorge Keishing
1496bd1224SGeorge Keishing*** Variables ***
1596bd1224SGeorge Keishing${LOOP_COUNT}    ${50}
1696bd1224SGeorge Keishing
1796bd1224SGeorge Keishing*** Test Cases ***
1896bd1224SGeorge Keishing
1996bd1224SGeorge KeishingRun Multiple Power Cycle
2096bd1224SGeorge Keishing    [Documentation]  Execute multiple power cycles.
2196bd1224SGeorge Keishing    [Setup]  Validate Parameters
2296bd1224SGeorge Keishing    [Tags]  Run_Multiple_Power_Cycle
2396bd1224SGeorge Keishing
2496bd1224SGeorge Keishing    # By default run test for 50 loops, else user input iteration.
2596bd1224SGeorge Keishing    # Fails immediately if any of the execution rounds fail and
2696bd1224SGeorge Keishing    # check if BMC is still pinging and FFDC is collected.
2796bd1224SGeorge Keishing    Repeat Keyword  ${LOOP_COUNT} times  Power Cycle System Via PDU
2896bd1224SGeorge Keishing
2996bd1224SGeorge Keishing
3096bd1224SGeorge KeishingRun Multiple BMC Reset Via REST
3196bd1224SGeorge Keishing    [Documentation]  Execute multiple reboots via REST.
3296bd1224SGeorge Keishing    [Tags]  Run_Multiple_BMC_Reset_Via_REST
3396bd1224SGeorge Keishing
3496bd1224SGeorge Keishing    # By default run test for 50 loops, else user input iteration.
3596bd1224SGeorge Keishing    # Fails immediately if any of the execution rounds fail and
3696bd1224SGeorge Keishing    # check if BMC is still pinging and FFDC is collected.
3796bd1224SGeorge Keishing    Repeat Keyword  ${LOOP_COUNT} times  BMC REST Reset Cycle
3896bd1224SGeorge Keishing
3996bd1224SGeorge Keishing
4096bd1224SGeorge KeishingRun Multiple BMC Reset Via Reboot
4196bd1224SGeorge Keishing    [Documentation]  Execute multiple reboots via "reboot" command.
4296bd1224SGeorge Keishing    [Tags]  Run_Multiple_BMC_Reset_Via_Reboot
4396bd1224SGeorge Keishing
4496bd1224SGeorge Keishing    # By default run test for 50 loops, else user input iteration.
4596bd1224SGeorge Keishing    # Fails immediately if any of the execution rounds fail and
4696bd1224SGeorge Keishing    # check if BMC is still pinging and FFDC is collected.
4796bd1224SGeorge Keishing    Repeat Keyword  ${LOOP_COUNT} times  BMC Reboot Cycle
4896bd1224SGeorge Keishing
4996bd1224SGeorge Keishing
5096bd1224SGeorge Keishing*** Keywords ***
5196bd1224SGeorge Keishing
5296bd1224SGeorge KeishingPower Cycle System Via PDU
5396bd1224SGeorge Keishing    [Documentation]  Power cycle system and wait for BMC to reach Ready state.
5496bd1224SGeorge Keishing    Log  "Doing power cycle"
5596bd1224SGeorge Keishing    PDU Power Cycle
5696bd1224SGeorge Keishing    Check If BMC Is Up  5 min  10 sec
5796bd1224SGeorge Keishing
5896bd1224SGeorge Keishing    Wait Until Keyword Succeeds  10 min  10 sec  Is BMC Ready
59*b39a679dSGeorge Keishing    Verify BMC RTC And UTC Time Drift
6096bd1224SGeorge Keishing
6196bd1224SGeorge Keishing
6296bd1224SGeorge KeishingBMC REST Reset Cycle
6396bd1224SGeorge Keishing    [Documentation]  Reset BMC via REST and wait for ready state.
6496bd1224SGeorge Keishing    Log  "Doing Reboot cycle"
6596bd1224SGeorge Keishing    ${bmc_version_before}=  Get BMC Version
6696bd1224SGeorge Keishing    Initiate BMC Reboot
6796bd1224SGeorge Keishing    Wait Until Keyword Succeeds  10 min  10 sec  Is BMC Ready
6896bd1224SGeorge Keishing    ${bmc_version_after}=  Get BMC Version
6996bd1224SGeorge Keishing    Should Be Equal  ${bmc_version_before}  ${bmc_version_after}
70*b39a679dSGeorge Keishing    Verify BMC RTC And UTC Time Drift
7196bd1224SGeorge Keishing
7296bd1224SGeorge Keishing
7396bd1224SGeorge KeishingBMC Reboot Cycle
7496bd1224SGeorge Keishing    [Documentation]  Reboot BMC and wait for ready state.
7596bd1224SGeorge Keishing    Log  "Doing Reboot cycle"
7696bd1224SGeorge Keishing    ${bmc_version_before}=  Get BMC Version
7796bd1224SGeorge Keishing    OBMC Reboot (off)  stack_mode=normal
7896bd1224SGeorge Keishing    ${bmc_version_after}=  Get BMC Version
7996bd1224SGeorge Keishing    Should Be Equal  ${bmc_version_before}  ${bmc_version_after}
80*b39a679dSGeorge Keishing    Verify BMC RTC And UTC Time Drift
8196bd1224SGeorge Keishing
8296bd1224SGeorge Keishing
8396bd1224SGeorge KeishingTest Exit Logs
8496bd1224SGeorge Keishing    Ping Host  ${OPENBMC_HOST}
8596bd1224SGeorge Keishing    FFDC On Test Case Fail
8696bd1224SGeorge Keishing
8796bd1224SGeorge Keishing
8896bd1224SGeorge KeishingValidate Parameters
8996bd1224SGeorge Keishing    Should Not Be Empty   ${PDU_IP}
9096bd1224SGeorge Keishing    Should Not Be Empty   ${PDU_TYPE}
9196bd1224SGeorge Keishing    Should Not Be Empty   ${PDU_SLOT_NO}
9296bd1224SGeorge Keishing    Should Not Be Empty   ${PDU_USERNAME}
9396bd1224SGeorge Keishing    Should Not Be Empty   ${PDU_PASSWORD}
9496bd1224SGeorge Keishing
95