blob: ea34a1a05e5b0fb12f1be50578c1c298497f40f0 [file] [log] [blame]
George Keishing92abc992016-10-18 13:29:25 -05001*** 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
George Keishingca709b02017-02-02 11:38:19 -06009Resource ../lib/state_manager.robot
George Keishingbf1500d2017-10-30 12:47:47 -050010Resource ../lib/boot_utils.robot
George Keishingc26e74d2017-11-17 00:45:20 -060011Resource ../lib/code_update_utils.robot
George Keishing9867bed2018-02-04 22:31:36 -060012Library ../lib/bmc_ssh_utils.py
George Keishing92abc992016-10-18 13:29:25 -050013
George Keishing94659a22017-11-17 00:03:05 -060014Test Teardown Test Teardown Execution
George Keishingc26e74d2017-11-17 00:45:20 -060015Suite Setup Suite Setup Execution
George Keishing92abc992016-10-18 13:29:25 -050016
17*** Variables ***
18${LOOP_COUNT} ${50}
19
George Keishing2c891732018-09-18 07:39:59 -050020# Error strings to check from journald.
George Keishing5b8ff522019-09-05 11:15:41 -050021${ERROR_REGEX} SEGV|core-dump|FAILURE|Failed to start
George Keishing2c891732018-09-18 07:39:59 -050022
George Keishing92abc992016-10-18 13:29:25 -050023*** Test Cases ***
24
George Keishingca709b02017-02-02 11:38:19 -060025Run Multiple Power Cycle
26 [Documentation] Execute multiple power cycles.
27 [Setup] Validate Parameters
28 [Tags] Run_Multiple_Power_Cycle
George Keishing92abc992016-10-18 13:29:25 -050029
George Keishingca709b02017-02-02 11:38:19 -060030 # 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
George Keishing5d5b8a22019-09-11 13:48:54 -050036Run Multiple BMC Reset Via Redfish
George Keishingbf1500d2017-10-30 12:47:47 -050037 [Documentation] Execute multiple reboots via REST.
George Keishing5d5b8a22019-09-11 13:48:54 -050038 [Tags] Run_Multiple_BMC_Reset_Via_Redfish
George Keishingbf1500d2017-10-30 12:47:47 -050039
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.
George Keishing5d5b8a22019-09-11 13:48:54 -050043 Repeat Keyword ${LOOP_COUNT} times BMC Redfish Reset Cycle
George Keishingbf1500d2017-10-30 12:47:47 -050044
45
46Run Multiple BMC Reset Via Reboot
47 [Documentation] Execute multiple reboots via "reboot" command.
48 [Tags] Run_Multiple_BMC_Reset_Via_Reboot
George Keishingca709b02017-02-02 11:38:19 -060049
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
George Keishing92abc992016-10-18 13:29:25 -050054
55
56*** Keywords ***
57
George Keishingca709b02017-02-02 11:38:19 -060058Power Cycle System Via PDU
59 [Documentation] Power cycle system and wait for BMC to reach Ready state.
George Keishing5d5b8a22019-09-11 13:48:54 -050060
George Keishing92abc992016-10-18 13:29:25 -050061 PDU Power Cycle
George Keishingca709b02017-02-02 11:38:19 -060062 Check If BMC Is Up 5 min 10 sec
George Keishing92abc992016-10-18 13:29:25 -050063
George Keishingca709b02017-02-02 11:38:19 -060064 Wait Until Keyword Succeeds 10 min 10 sec Is BMC Ready
George Keishingb39a6792017-11-10 22:58:52 -060065 Verify BMC RTC And UTC Time Drift
George Keishingca709b02017-02-02 11:38:19 -060066
67
George Keishing5d5b8a22019-09-11 13:48:54 -050068BMC 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
George Keishing9aa2f0b2019-09-18 09:49:48 -050073 Valid Value bmc_version ["${initial_bmc_version}"]
George Keishing5b8ff522019-09-05 11:15:41 -050074 Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b
George Keishingb39a6792017-11-10 22:58:52 -060075 Verify BMC RTC And UTC Time Drift
George Keishing5d5b8a22019-09-11 13:48:54 -050076 ${boot_side}= Get BMC Flash Chip Boot Side
77 Valid Value boot_side ['0']
George Keishing92abc992016-10-18 13:29:25 -050078
79
George Keishingbf1500d2017-10-30 12:47:47 -050080BMC Reboot Cycle
81 [Documentation] Reboot BMC and wait for ready state.
George Keishing5d5b8a22019-09-11 13:48:54 -050082
George Keishingbf1500d2017-10-30 12:47:47 -050083 OBMC Reboot (off) stack_mode=normal
George Keishing5d5b8a22019-09-11 13:48:54 -050084 ${bmc_version}= Get BMC Version
George Keishing9aa2f0b2019-09-18 09:49:48 -050085 Valid Value bmc_version ["${initial_bmc_version}"]
George Keishingb39a6792017-11-10 22:58:52 -060086 Verify BMC RTC And UTC Time Drift
George Keishingef3308b2019-09-28 10:50:33 -050087 Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b
George Keishing5d5b8a22019-09-11 13:48:54 -050088 ${boot_side}= Get BMC Flash Chip Boot Side
89 Valid Value boot_side ['0']
George Keishingbf1500d2017-10-30 12:47:47 -050090
91
George Keishing94659a22017-11-17 00:03:05 -060092Test Teardown Execution
93 [Documentation] Do test case tear-down.
George Keishing92abc992016-10-18 13:29:25 -050094 Ping Host ${OPENBMC_HOST}
Gunnar Millseac1af22016-11-14 15:30:09 -060095 FFDC On Test Case Fail
George Keishing92abc992016-10-18 13:29:25 -050096
97
98Validate Parameters
George Keishing94659a22017-11-17 00:03:05 -060099 [Documentation] Validate PDU parameters.
George Keishing92abc992016-10-18 13:29:25 -0500100 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
George Keishingc26e74d2017-11-17 00:45:20 -0600106
107Suite Setup Execution
George Keishing5d5b8a22019-09-11 13:48:54 -0500108 [Documentation] Do suite setup.
109
110 ${bmc_version}= Get BMC Version
111 Set Suite Variable ${initial_bmc_version} ${bmc_version}