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