blob: d1094cc4172e8cfce242bc8e358ead1e2a188fbe [file] [log] [blame]
Rahul Maheshwariad676bf2017-06-22 15:06:05 -05001*** Settings ***
2
3Documentation Test dump functionality of OpenBMC.
4
George Keishingfb3f9a52019-07-18 13:13:58 -05005Resource ../../lib/openbmc_ffdc.robot
6Resource ../../lib/rest_client.robot
7Resource ../../lib/dump_utils.robot
8Resource ../../lib/boot_utils.robot
9Resource ../../lib/utils.robot
George Keishingbac0c572019-08-08 23:19:45 -050010Resource ../../lib/state_manager.robot
George Keishingfb3f9a52019-07-18 13:13:58 -050011Library ../../lib/bmc_ssh_utils.py
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050012
Rahul Maheshwaria89ff9e2020-09-25 05:04:33 -050013Suite Setup Suite Setup Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050014Test Setup Open Connection And Log In
George Keishing40b7ee02017-11-13 05:12:41 -060015Test Teardown Test Teardown Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050016
17*** Test Cases ***
18
Sivas SRRc0957412017-10-06 13:02:08 -050019Pre Dump BMC Performance Test
20 [Documentation] Check performance of memory, CPU & file system of BMC.
21 [Tags] Pre_Dump_BMC_Performance_Test
22
23 Open Connection And Log In
24 Check BMC Performance
25
George Keishing40b7ee02017-11-13 05:12:41 -060026
Rahul Maheshwari355f2702017-10-17 09:15:23 -050027Verify User Initiated BMC Dump When Powered Off
28 [Documentation] Create user initiated BMC dump at host off state and
29 ... verify dump entry for it.
30 [Tags] Verify_User_Initiated_BMC_Dump_When_Powered_Off
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050031
George Keishingfb3f9a52019-07-18 13:13:58 -050032 Redfish Power Off stack_mode=skip
Sivas SRR7aabd792017-10-18 21:28:23 -050033 ${dump_id}= Create User Initiated Dump
Steven Sombar336fa972019-11-07 13:12:58 -060034 Check Existence Of BMC Dump File ${dump_id}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050035
Steven Sombara011c022019-01-16 18:13:52 -060036
George Keishinga2dab9f2017-09-05 13:54:01 -050037Verify Dump Persistency On Service Restart
38 [Documentation] Create user dump, restart BMC service and verify dump
39 ... persistency.
40 [Tags] Verify_Dump_Persistency_On_Service_Restart
41
George Keishingfee18cf2017-09-20 09:46:00 -050042 Delete All BMC Dump
Sivas SRR7aabd792017-10-18 21:28:23 -050043 ${dump_id}= Create User Initiated Dump
George Keishinga2dab9f2017-09-05 13:54:01 -050044 BMC Execute Command
45 ... systemctl restart xyz.openbmc_project.Dump.Manager.service
46 Sleep 10s reason=Wait for BMC dump service to restart properly.
47
Steven Sombaraaaab222018-12-19 13:16:23 -060048 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list
George Keishinga2dab9f2017-09-05 13:54:01 -050049 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
Steven Sombar336fa972019-11-07 13:12:58 -060050 Check Existence Of BMC Dump File ${dump_id}
Sivas SRR7aabd792017-10-18 21:28:23 -050051
52
53Verify Dump Persistency On Reset
54 [Documentation] Create user dump, reset BMC and verify dump persistency.
55 [Tags] Verify_Dump_Persistency_On_Reset
56
57 Delete All BMC Dump
58 ${dump_id}= Create User Initiated Dump
59 OBMC Reboot (off)
Steven Sombaraaaab222018-12-19 13:16:23 -060060 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list
Sivas SRR7aabd792017-10-18 21:28:23 -050061 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
Steven Sombar336fa972019-11-07 13:12:58 -060062 Check Existence Of BMC Dump File ${dump_id}
George Keishinga2dab9f2017-09-05 13:54:01 -050063
64
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050065Delete User Initiated BMC Dump And Verify
66 [Documentation] Delete user initiated dump and verify.
67 [Tags] Delete_User_Initiated_Dump_And_Verify
68
69 ${dump_id}= Create User Initiated Dump
Steven Sombar336fa972019-11-07 13:12:58 -060070 Check Existence Of BMC Dump File ${dump_id}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050071
72 Delete BMC Dump ${dump_id}
73
74
75Verify User Initiated Dump Size
George Keishing6db52022017-08-22 00:39:22 -050076 [Documentation] Verify user Initiated BMC dump size is under 200k.
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050077 [Tags] Verify_User_Initiated_Dump_Size
78
79 ${dump_id}= Create User Initiated Dump
80
Steven Sombaraaaab222018-12-19 13:16:23 -060081 ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size
George Keishing6db52022017-08-22 00:39:22 -050082 # Max size for dump is 200k = 200x1024
83 Should Be True 0 < ${dump_size} < 204800
Steven Sombar336fa972019-11-07 13:12:58 -060084 Check Existence Of BMC Dump File ${dump_id}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050085
86
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050087Create Two User Initiated Dump And Delete One
88 [Documentation] Create two dumps and delete the first.
89 [Tags] Create_Two_User_Initiated_Dump_And_Delete_One
90
91 ${dump_id_1}= Create User Initiated Dump
92 ${dump_id_2}= Create User Initiated Dump
93
94 Delete BMC Dump ${dump_id_1}
95
Steven Sombaraaaab222018-12-19 13:16:23 -060096 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}${dump_id_1}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050097 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
98
Steven Sombaraaaab222018-12-19 13:16:23 -060099 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}${dump_id_2}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500100 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
Steven Sombar336fa972019-11-07 13:12:58 -0600101 Check Existence Of BMC Dump File ${dump_id_2}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500102
103
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500104Create And Delete BMC Dump Multiple Times
105 [Documentation] Create and delete BMC dump multiple times.
106 [Tags] Create_And_Delete_BMC_Dump_Multiple_Times
107
Sushma M Md27fc312020-06-19 08:26:50 -0500108 FOR ${INDEX} IN 1 5
109 ${dump_id}= Create User Initiated Dump
110 Delete BMC Dump ${dump_id}
111 END
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500112
113
114Delete All BMC Dumps And Verify
115 [Documentation] Delete all BMC dumps and verify.
116 [Tags] Delete_All_BMC_Dumps_And_Verify
117
118 # Create some dump.
119 Create User Initiated Dump
120 Create User Initiated Dump
121
George Keishingfee18cf2017-09-20 09:46:00 -0500122 Delete All BMC Dump
Steven Sombaraaaab222018-12-19 13:16:23 -0600123 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500124 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
125
George Keishing40b7ee02017-11-13 05:12:41 -0600126
127Verify User Initiated BMC Dump When Host Booted
128 [Documentation] Create user initiated BMC dump at host booted state and
129 ... verify dump entry for it.
130 [Tags] Verify_User_Initiated_BMC_Dump_When_Host_Booted
131
George Keishingfb3f9a52019-07-18 13:13:58 -0500132 Redfish Power On stack_mode=skip
George Keishing40b7ee02017-11-13 05:12:41 -0600133 Create User Initiated Dump
134
135
Rahul Maheshwari1612ac92017-08-30 14:42:32 -0500136Verify Core Dump Size
137 [Documentation] Verify BMC core dump size is under 200k.
138 [Tags] Verify_Core_Dump_Size
139
140 Delete All Dumps
141 Trigger Core Dump
George Keishing40efd762018-10-22 04:04:00 -0500142 Wait Until Keyword Succeeds 2 min 10 sec Get Dump Entries
Rahul Maheshwari1612ac92017-08-30 14:42:32 -0500143
144 ${dump_entries}= Get URL List ${DUMP_ENTRY_URI}
145 ${dump_size}= Read Attribute ${dump_entries[0]} Size
146
147 # Max size for dump is 200k = 200x1024
148 Should Be True 0 < ${dump_size} < 204800 msg=Size of dump is incorrect.
149
150
Steven Sombara011c022019-01-16 18:13:52 -0600151Dump Out Of Space Test
152 [Documentation] Verify out of dump space is reported when attempt
153 ... to create too many dumps.
154 [Tags] Dump_Out_Of_Space_Test
George Keishingda67cdd2019-08-26 23:40:57 -0500155 [Setup] Delete All BMC Dump
Steven Sombara011c022019-01-16 18:13:52 -0600156
157 # Systems typically hold 8-14 dumps before running out of dump space.
158 # Attempt to create too_many_dumps. Expect to run out of space
159 # before this.
George Keishing656eb4a2019-09-03 03:48:01 -0500160 ${too_many_dumps} Set Variable ${20}
Steven Sombara011c022019-01-16 18:13:52 -0600161
162 # Loop, creating a dump each iteration. Will either get dump_id or
163 # will get EMPTY when out of dump space.
Sushma M Md27fc312020-06-19 08:26:50 -0500164 FOR ${n} IN RANGE 0 ${too_many_dumps}
165 ${dump_id}= Create User Initiated Dump check_out_of_space=${True}
166 Exit For Loop If '${dump_id}' == '${EMPTY}'
167 Check Existence Of BMC Dump File ${dump_id}
168 END
Steven Sombara011c022019-01-16 18:13:52 -0600169
170 Run Keyword If '${dump_id}' != '${EMPTY}' Fail
171 ... msg=Did not run out of dump space as expected.
172
Steven Sombara011c022019-01-16 18:13:52 -0600173
Sivas SRRc0957412017-10-06 13:02:08 -0500174Post Dump BMC Performance Test
175 [Documentation] Check performance of memory, CPU & file system of BMC.
176 [Tags] Post_Dump_BMC_Performance_Test
177
178 Open Connection And Log In
179 Check BMC Performance
180
Steven Sombara011c022019-01-16 18:13:52 -0600181
Sivas SRRc0957412017-10-06 13:02:08 -0500182Post Dump Core Dump Check
183 [Documentation] Check core dump existence on BMC after code update.
184 [Tags] Post_Dump_Core_Dump_Check
185
186 Check For Core Dumps
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500187
Rahul Maheshwari1612ac92017-08-30 14:42:32 -0500188
Anusha Dathatrieda09492019-02-26 08:30:13 -0600189Verify Dump After Host Watchdog Error Injection
190 [Documentation] Inject host watchdog error and verify whether dump is generated.
191 [Tags] Verify_Dump_After_Host_Watchdog_Error_Injection
192
George Keishingfb3f9a52019-07-18 13:13:58 -0500193 Redfish Power On
Anusha Dathatrieda09492019-02-26 08:30:13 -0600194
195 Run Keyword And Ignore Error Delete All Dumps
196
197 # Enable auto reboot
198 Set Auto Reboot ${1}
199
200 Trigger Host Watchdog Error 2000 30
201
202 Wait Until Keyword Succeeds 300 sec 20 sec Is Host Rebooted
203
204 #Get dump details
205 @{dump_entry_list}= Read Properties ${DUMP_ENTRY_URI}
206
207 # Verifing that there is only one dump
208 ${length}= Get length ${dump_entry_list}
209 Should Be Equal As Integers ${length} ${1}
210
211 # Get dump id
212 ${value}= Get From List ${dump_entry_list} 0
213 @{split_value}= Split String ${value} /
214 ${dump_id}= Get From List ${split_value} -1
215
216 # Max size for dump is 200k = 200x1024
217 ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size
218 Should Be True 0 < ${dump_size} < 204800
219
220
Naman Navin Hegdeebd4d682019-07-22 02:39:35 -0500221Verify Download BMC Dump
222 [Documentation] Verify that a BMC dump can be downloaded to the local machine.
223 [Tags] Verify_Download_BMC_Dump
224
225 ${dump_id}= Create User Initiated Dump
226 ${dump_dict}= Get Dump Dict
227 ${bmc_dump_name}= Fetch From Right ${dump_dict['${dump_id}']} /
228 ${bmc_dump_checksum} ${stderr} ${rc}= BMC Execute Command
229 ... md5sum ${dump_dict['${dump_id}']}|awk '{print$1}'
230 ${bmc_dump_size} ${stderr} ${rc}= BMC Execute Command
231 ... stat -c "%s" ${dump_dict['${dump_id}']}
232
233 ${response}= OpenBMC Get Request ${DUMP_DOWNLOAD_URI}${dump_id}
234 ... quiet=${1}
235 Should Be Equal As Strings ${response.status_code} ${HTTP_OK}
236 Create Binary File ${EXECDIR}${/}dumps ${response.content}
237 Run tar -xvf ${EXECDIR}${/}dumps
238 ${download_dump_name}= Fetch From Left ${bmc_dump_name} .
239 ${download_dump_checksum}= Run md5sum ${EXECDIR}/dumps|awk '{print$1}'
240 ${download_dump_size}= Run stat -c "%s" ${EXECDIR}${/}dumps
241
242 OperatingSystem.Directory Should Exist ${EXECDIR}/${download_dump_name}
243 ... msg=Created dump name and downloaded dump name don't match.
244 Should Be Equal As Strings ${bmc_dump_checksum} ${download_dump_checksum}
245 Should Be Equal As Strings ${bmc_dump_size} ${download_dump_size}
246
247 Run rm -rf ${EXECDIR}${/}${download_dump_name};rm ${EXECDIR}${/}dumps
248
249
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500250*** Keywords ***
251
Rahul Maheshwaria89ff9e2020-09-25 05:04:33 -0500252Suite Setup Execution
253 [Documentation] Do initial suite setup tasks.
254
255 ${resp}= OpenBMC Get Request ${DUMP_URI}
256 Run Keyword If '${resp.status_code}' == '${HTTP_NOT_FOUND}'
257 ... Run Keywords Set Suite Variable ${DUMP_URI} /xyz/openbmc_project/dump/ AND
258 ... Set Suite Variable ${DUMP_ENTRY_URI} /xyz/openbmc_project/dump/entry/
259
260
George Keishing40b7ee02017-11-13 05:12:41 -0600261Test Teardown Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500262 [Documentation] Do the post test teardown.
263
Rahul Maheshwari953038b2017-10-17 05:08:59 -0500264 Wait Until Keyword Succeeds 3 min 15 sec Verify No Dump In Progress
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500265 FFDC On Test Case Fail
Rahul Maheshwaribf9024f2017-10-25 10:51:39 -0500266 Delete All BMC Dump
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500267 Close All Connections