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 57Run Multiple BMC Reset When Host Is Booted Via Redfish 58 [Documentation] Execute multiple reboots via redfish. 59 [Tags] Run_Multiple_BMC_Reset_When_Host_Is_Booted_Via_Redfish 60 61 # By default run test for 50 loops, else user input iteration. 62 # Fails immediately if any of the execution rounds fail and 63 # check if BMC is still pinging and FFDC is collected. 64 Repeat Keyword ${LOOP_COUNT} times BMC Redfish Reset Runtime Cycle 65 66*** Keywords *** 67 68Power Cycle System Via PDU 69 [Documentation] Power cycle system and wait for BMC to reach Ready state. 70 71 PDU Power Cycle 72 Check If BMC Is Up 5 min 10 sec 73 74 Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready 75 Verify BMC RTC And UTC Time Drift 76 77 78BMC Redfish Reset Cycle 79 [Documentation] Reset BMC via Redfish and verify required states. 80 81 Redfish OBMC Reboot (off) 82 83 ${bmc_version}= Get BMC Version 84 Valid Value bmc_version valid_values=['${initial_bmc_version}'] 85 86 Run Keyword If '${CHECK_FOR_ERRORS}' == '${1}' 87 ... Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 88 89 Verify BMC RTC And UTC Time Drift 90 91 92BMC Redfish Reset Runtime Cycle 93 [Documentation] Reset BMC via Redfish and verify required states. 94 95 Redfish OBMC Reboot (run) 96 97 ${bmc_version}= Get BMC Version 98 Valid Value bmc_version valid_values=['${initial_bmc_version}'] 99 100 Run Keyword If '${CHECK_FOR_ERRORS}' == '${1}' 101 ... Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 102 103 Verify BMC RTC And UTC Time Drift 104 105 106BMC Reboot Cycle 107 [Documentation] Reboot BMC and wait for ready state. 108 109 OBMC Reboot (off) stack_mode=normal 110 ${bmc_version}= Get BMC Version 111 Valid Value bmc_version ["${initial_bmc_version}"] 112 Verify BMC RTC And UTC Time Drift 113 Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b 114 ${boot_side}= Get BMC Flash Chip Boot Side 115 Valid Value boot_side ['0'] 116 117 118Test Teardown Execution 119 [Documentation] Do test case tear-down. 120 Ping Host ${OPENBMC_HOST} 121 FFDC On Test Case Fail 122 123 124Validate Parameters 125 [Documentation] Validate PDU parameters. 126 Should Not Be Empty ${PDU_IP} 127 Should Not Be Empty ${PDU_TYPE} 128 Should Not Be Empty ${PDU_SLOT_NO} 129 Should Not Be Empty ${PDU_USERNAME} 130 Should Not Be Empty ${PDU_PASSWORD} 131 132 133Suite Setup Execution 134 [Documentation] Do suite setup. 135 136 ${bmc_version}= Get BMC Version 137 Set Suite Variable ${initial_bmc_version} ${bmc_version} 138