1*** Settings *** 2Documentation Power cycle loop. This is to test where network service 3... becomes unavailable during AC-Cycle stress test. 4 5Resource ../lib/rest_client.robot 6Resource ../lib/pdu/pdu.robot 7Resource ../lib/utils.robot 8Resource ../lib/openbmc_ffdc.robot 9Resource ../lib/state_manager.robot 10Resource ../lib/boot_utils.robot 11Resource ../lib/code_update_utils.robot 12Library ../lib/bmc_ssh_utils.py 13 14Test Teardown Test Teardown Execution 15Suite Setup Suite Setup Execution 16 17*** Variables *** 18${LOOP_COUNT} ${50} 19${CHECK_FOR_ERRORS} ${1} 20 21# Error strings to check from journald. 22${ERROR_REGEX} SEGV|core-dump|FAILURE|Failed to start 23 24*** Test Cases *** 25 26Run Multiple Power Cycle 27 [Documentation] Execute multiple power cycles. 28 [Setup] Validate Parameters 29 [Tags] Run_Multiple_Power_Cycle 30 31 # By default run test for 50 loops, else user input iteration. 32 # Fails immediately if any of the execution rounds fail and 33 # check if BMC is still pinging and FFDC is collected. 34 Repeat Keyword ${LOOP_COUNT} times Power Cycle System Via PDU 35 36 37Run Multiple BMC Reset Via Redfish 38 [Documentation] Execute multiple reboots via REST. 39 [Tags] Run_Multiple_BMC_Reset_Via_Redfish 40 41 # By default run test for 50 loops, else user input iteration. 42 # Fails immediately if any of the execution rounds fail and 43 # check if BMC is still pinging and FFDC is collected. 44 Repeat Keyword ${LOOP_COUNT} times BMC Redfish Reset Cycle 45 46 47Run Multiple BMC Reset Via Reboot 48 [Documentation] Execute multiple reboots via "reboot" command. 49 [Tags] Run_Multiple_BMC_Reset_Via_Reboot 50 51 # By default run test for 50 loops, else user input iteration. 52 # Fails immediately if any of the execution rounds fail and 53 # check if BMC is still pinging and FFDC is collected. 54 Repeat Keyword ${LOOP_COUNT} times BMC Reboot Cycle 55 56 57*** Keywords *** 58 59Power Cycle System Via PDU 60 [Documentation] Power cycle system and wait for BMC to reach Ready state. 61 62 PDU Power Cycle 63 Check If BMC Is Up 5 min 10 sec 64 65 Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready 66 Verify BMC RTC And UTC Time Drift 67 68 69BMC Redfish Reset Cycle 70 [Documentation] Reset BMC via Redfish and verify required states. 71 72 Redfish OBMC Reboot (off) 73 74 ${bmc_version}= Get BMC Version 75 Valid Value bmc_version valid_values=['${initial_bmc_version}'] 76 77 Run Keyword If '${CHECK_FOR_ERRORS}' == '${1}' 78 ... Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 79 80 Verify BMC RTC And UTC Time Drift 81 82 83BMC Reboot Cycle 84 [Documentation] Reboot BMC and wait for ready state. 85 86 OBMC Reboot (off) stack_mode=normal 87 ${bmc_version}= Get BMC Version 88 Valid Value bmc_version ["${initial_bmc_version}"] 89 Verify BMC RTC And UTC Time Drift 90 Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 91 ${boot_side}= Get BMC Flash Chip Boot Side 92 Valid Value boot_side ['0'] 93 94 95Test Teardown Execution 96 [Documentation] Do test case tear-down. 97 Ping Host ${OPENBMC_HOST} 98 FFDC On Test Case Fail 99 100 101Validate Parameters 102 [Documentation] Validate PDU parameters. 103 Should Not Be Empty ${PDU_IP} 104 Should Not Be Empty ${PDU_TYPE} 105 Should Not Be Empty ${PDU_SLOT_NO} 106 Should Not Be Empty ${PDU_USERNAME} 107 Should Not Be Empty ${PDU_PASSWORD} 108 109 110Suite Setup Execution 111 [Documentation] Do suite setup. 112 113 ${bmc_version}= Get BMC Version 114 Set Suite Variable ${initial_bmc_version} ${bmc_version} 115