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 11c26e74deSGeorge KeishingResource ../lib/code_update_utils.robot 129867beddSGeorge KeishingLibrary ../lib/bmc_ssh_utils.py 1396bd1224SGeorge Keishing 1494659a2cSGeorge KeishingTest Teardown Test Teardown Execution 15c26e74deSGeorge KeishingSuite Setup Suite Setup Execution 1696bd1224SGeorge Keishing 1796bd1224SGeorge Keishing*** Variables *** 1896bd1224SGeorge Keishing${LOOP_COUNT} ${50} 1996bd1224SGeorge Keishing 20*2c89173cSGeorge Keishing# Error strings to check from journald. 21*2c89173cSGeorge Keishing${ERROR_REGEX} SEGV|core-dump 22*2c89173cSGeorge Keishing 2396bd1224SGeorge Keishing*** Test Cases *** 2496bd1224SGeorge Keishing 2596bd1224SGeorge KeishingRun Multiple Power Cycle 2696bd1224SGeorge Keishing [Documentation] Execute multiple power cycles. 2796bd1224SGeorge Keishing [Setup] Validate Parameters 2896bd1224SGeorge Keishing [Tags] Run_Multiple_Power_Cycle 2996bd1224SGeorge Keishing 3096bd1224SGeorge Keishing # By default run test for 50 loops, else user input iteration. 3196bd1224SGeorge Keishing # Fails immediately if any of the execution rounds fail and 3296bd1224SGeorge Keishing # check if BMC is still pinging and FFDC is collected. 3396bd1224SGeorge Keishing Repeat Keyword ${LOOP_COUNT} times Power Cycle System Via PDU 3496bd1224SGeorge Keishing 3596bd1224SGeorge Keishing 3696bd1224SGeorge KeishingRun Multiple BMC Reset Via REST 3796bd1224SGeorge Keishing [Documentation] Execute multiple reboots via REST. 3896bd1224SGeorge Keishing [Tags] Run_Multiple_BMC_Reset_Via_REST 3996bd1224SGeorge Keishing 4096bd1224SGeorge Keishing # By default run test for 50 loops, else user input iteration. 4196bd1224SGeorge Keishing # Fails immediately if any of the execution rounds fail and 4296bd1224SGeorge Keishing # check if BMC is still pinging and FFDC is collected. 4396bd1224SGeorge Keishing Repeat Keyword ${LOOP_COUNT} times BMC REST Reset Cycle 4496bd1224SGeorge Keishing 4596bd1224SGeorge Keishing 4696bd1224SGeorge KeishingRun Multiple BMC Reset Via Reboot 4796bd1224SGeorge Keishing [Documentation] Execute multiple reboots via "reboot" command. 4896bd1224SGeorge Keishing [Tags] Run_Multiple_BMC_Reset_Via_Reboot 4996bd1224SGeorge Keishing 5096bd1224SGeorge Keishing # By default run test for 50 loops, else user input iteration. 5196bd1224SGeorge Keishing # Fails immediately if any of the execution rounds fail and 5296bd1224SGeorge Keishing # check if BMC is still pinging and FFDC is collected. 5396bd1224SGeorge Keishing Repeat Keyword ${LOOP_COUNT} times BMC Reboot Cycle 5496bd1224SGeorge Keishing 5596bd1224SGeorge Keishing 5696bd1224SGeorge Keishing*** Keywords *** 5796bd1224SGeorge Keishing 5896bd1224SGeorge KeishingPower Cycle System Via PDU 5996bd1224SGeorge Keishing [Documentation] Power cycle system and wait for BMC to reach Ready state. 6096bd1224SGeorge Keishing Log "Doing power cycle" 6196bd1224SGeorge Keishing PDU Power Cycle 6296bd1224SGeorge Keishing Check If BMC Is Up 5 min 10 sec 6396bd1224SGeorge Keishing 6496bd1224SGeorge Keishing Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready 65b39a679dSGeorge Keishing Verify BMC RTC And UTC Time Drift 66c26e74deSGeorge Keishing Field Mode Should Be Enabled 6796bd1224SGeorge Keishing 6896bd1224SGeorge Keishing 6996bd1224SGeorge KeishingBMC REST Reset Cycle 7096bd1224SGeorge Keishing [Documentation] Reset BMC via REST and wait for ready state. 7196bd1224SGeorge Keishing Log "Doing Reboot cycle" 7296bd1224SGeorge Keishing ${bmc_version_before}= Get BMC Version 7396bd1224SGeorge Keishing Initiate BMC Reboot 7496bd1224SGeorge Keishing Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready 7596bd1224SGeorge Keishing ${bmc_version_after}= Get BMC Version 7696bd1224SGeorge Keishing Should Be Equal ${bmc_version_before} ${bmc_version_after} 77*2c89173cSGeorge Keishing Check For Regex In Journald ${ERROR_REGEX} error_check=${0} 78b39a679dSGeorge Keishing Verify BMC RTC And UTC Time Drift 79c26e74deSGeorge Keishing Field Mode Should Be Enabled 8096bd1224SGeorge Keishing 8196bd1224SGeorge Keishing 8296bd1224SGeorge KeishingBMC Reboot Cycle 8396bd1224SGeorge Keishing [Documentation] Reboot BMC and wait for ready state. 8496bd1224SGeorge Keishing Log "Doing Reboot cycle" 8596bd1224SGeorge Keishing ${bmc_version_before}= Get BMC Version 8696bd1224SGeorge Keishing OBMC Reboot (off) stack_mode=normal 8796bd1224SGeorge Keishing ${bmc_version_after}= Get BMC Version 8896bd1224SGeorge Keishing Should Be Equal ${bmc_version_before} ${bmc_version_after} 89b39a679dSGeorge Keishing Verify BMC RTC And UTC Time Drift 90*2c89173cSGeorge Keishing Check For Regex In Journald ${ERROR_REGEX} error_check=${0} 91c26e74deSGeorge Keishing Field Mode Should Be Enabled 9296bd1224SGeorge Keishing 9396bd1224SGeorge Keishing 9494659a2cSGeorge KeishingTest Teardown Execution 9594659a2cSGeorge Keishing [Documentation] Do test case tear-down. 9696bd1224SGeorge Keishing Ping Host ${OPENBMC_HOST} 9796bd1224SGeorge Keishing FFDC On Test Case Fail 9896bd1224SGeorge Keishing 999867beddSGeorge Keishing # Example of the u-boot-env o/p: 1009867beddSGeorge Keishing # root@witherspoon:~# grep fieldmode /dev/mtd/u-boot-env 1019867beddSGeorge Keishing # fieldmode=true 1029867beddSGeorge Keishing # fieldmode=true 1039867beddSGeorge Keishing ${field_mode}= 1049867beddSGeorge Keishing ... BMC Execute Command grep fieldmode /dev/mtd/u-boot-env 1059867beddSGeorge Keishing Should Contain "${field_mode[0]}" fieldmode=true 1069867beddSGeorge Keishing ... msg=u-boot-env shows "fieldmode" is not set to true. 1079867beddSGeorge Keishing 10896bd1224SGeorge Keishing 10996bd1224SGeorge KeishingValidate Parameters 11094659a2cSGeorge Keishing [Documentation] Validate PDU parameters. 11196bd1224SGeorge Keishing Should Not Be Empty ${PDU_IP} 11296bd1224SGeorge Keishing Should Not Be Empty ${PDU_TYPE} 11396bd1224SGeorge Keishing Should Not Be Empty ${PDU_SLOT_NO} 11496bd1224SGeorge Keishing Should Not Be Empty ${PDU_USERNAME} 11596bd1224SGeorge Keishing Should Not Be Empty ${PDU_PASSWORD} 11696bd1224SGeorge Keishing 117c26e74deSGeorge Keishing 118c26e74deSGeorge KeishingSuite Setup Execution 119c26e74deSGeorge Keishing [Documentation] Enable field mode. 120c26e74deSGeorge Keishing Enable Field Mode And Verify Unmount 121c26e74deSGeorge Keishing Field Mode Should Be Enabled 122