blob: c5ef2d8dd8d91cb5ecdb8c547f8a043266d41d20 [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
10Library ../../lib/bmc_ssh_utils.py
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050011
12Test Setup Open Connection And Log In
George Keishing40b7ee02017-11-13 05:12:41 -060013Test Teardown Test Teardown Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050014
15*** Test Cases ***
16
Sivas SRRc0957412017-10-06 13:02:08 -050017Pre Dump BMC Performance Test
18 [Documentation] Check performance of memory, CPU & file system of BMC.
19 [Tags] Pre_Dump_BMC_Performance_Test
20
21 Open Connection And Log In
22 Check BMC Performance
23
George Keishing40b7ee02017-11-13 05:12:41 -060024
Rahul Maheshwari355f2702017-10-17 09:15:23 -050025Verify User Initiated BMC Dump When Powered Off
26 [Documentation] Create user initiated BMC dump at host off state and
27 ... verify dump entry for it.
28 [Tags] Verify_User_Initiated_BMC_Dump_When_Powered_Off
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050029
George Keishingfb3f9a52019-07-18 13:13:58 -050030 Redfish Power Off stack_mode=skip
Sivas SRR7aabd792017-10-18 21:28:23 -050031 ${dump_id}= Create User Initiated Dump
32 Check Existence of BMC Dump file ${dump_id}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050033
Steven Sombara011c022019-01-16 18:13:52 -060034
George Keishinga2dab9f2017-09-05 13:54:01 -050035Verify Dump Persistency On Service Restart
36 [Documentation] Create user dump, restart BMC service and verify dump
37 ... persistency.
38 [Tags] Verify_Dump_Persistency_On_Service_Restart
39
George Keishingfee18cf2017-09-20 09:46:00 -050040 Delete All BMC Dump
Sivas SRR7aabd792017-10-18 21:28:23 -050041 ${dump_id}= Create User Initiated Dump
George Keishinga2dab9f2017-09-05 13:54:01 -050042 BMC Execute Command
43 ... systemctl restart xyz.openbmc_project.Dump.Manager.service
44 Sleep 10s reason=Wait for BMC dump service to restart properly.
45
Steven Sombaraaaab222018-12-19 13:16:23 -060046 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list
George Keishinga2dab9f2017-09-05 13:54:01 -050047 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
Sivas SRR7aabd792017-10-18 21:28:23 -050048 Check Existence of BMC Dump file ${dump_id}
49
50
51Verify Dump Persistency On Reset
52 [Documentation] Create user dump, reset BMC and verify dump persistency.
53 [Tags] Verify_Dump_Persistency_On_Reset
54
55 Delete All BMC Dump
56 ${dump_id}= Create User Initiated Dump
57 OBMC Reboot (off)
Steven Sombaraaaab222018-12-19 13:16:23 -060058 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list
Sivas SRR7aabd792017-10-18 21:28:23 -050059 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
60 Check Existence of BMC Dump file ${dump_id}
George Keishinga2dab9f2017-09-05 13:54:01 -050061
62
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050063Delete User Initiated BMC Dump And Verify
64 [Documentation] Delete user initiated dump and verify.
65 [Tags] Delete_User_Initiated_Dump_And_Verify
66
67 ${dump_id}= Create User Initiated Dump
Sivas SRR7aabd792017-10-18 21:28:23 -050068 Check Existence of BMC Dump file ${dump_id}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050069
70 Delete BMC Dump ${dump_id}
71
72
73Verify User Initiated Dump Size
George Keishing6db52022017-08-22 00:39:22 -050074 [Documentation] Verify user Initiated BMC dump size is under 200k.
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050075 [Tags] Verify_User_Initiated_Dump_Size
76
77 ${dump_id}= Create User Initiated Dump
78
Steven Sombaraaaab222018-12-19 13:16:23 -060079 ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size
George Keishing6db52022017-08-22 00:39:22 -050080 # Max size for dump is 200k = 200x1024
81 Should Be True 0 < ${dump_size} < 204800
Sivas SRR7aabd792017-10-18 21:28:23 -050082 Check Existence of BMC Dump file ${dump_id}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050083
84
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050085Create Two User Initiated Dump And Delete One
86 [Documentation] Create two dumps and delete the first.
87 [Tags] Create_Two_User_Initiated_Dump_And_Delete_One
88
89 ${dump_id_1}= Create User Initiated Dump
90 ${dump_id_2}= Create User Initiated Dump
91
92 Delete BMC Dump ${dump_id_1}
93
Steven Sombaraaaab222018-12-19 13:16:23 -060094 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}${dump_id_1}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050095 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
96
Steven Sombaraaaab222018-12-19 13:16:23 -060097 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}${dump_id_2}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050098 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
Sivas SRR7aabd792017-10-18 21:28:23 -050099 Check Existence of BMC Dump file ${dump_id_2}
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500100
101
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500102Create And Delete BMC Dump Multiple Times
103 [Documentation] Create and delete BMC dump multiple times.
104 [Tags] Create_And_Delete_BMC_Dump_Multiple_Times
105
106 :FOR ${INDEX} IN RANGE 1 5
107 \ ${dump_id}= Create User Initiated Dump
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500108 \ Delete BMC Dump ${dump_id}
109
110
111Delete All BMC Dumps And Verify
112 [Documentation] Delete all BMC dumps and verify.
113 [Tags] Delete_All_BMC_Dumps_And_Verify
114
115 # Create some dump.
116 Create User Initiated Dump
117 Create User Initiated Dump
118
George Keishingfee18cf2017-09-20 09:46:00 -0500119 Delete All BMC Dump
Steven Sombaraaaab222018-12-19 13:16:23 -0600120 ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500121 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
122
George Keishing40b7ee02017-11-13 05:12:41 -0600123
124Verify User Initiated BMC Dump When Host Booted
125 [Documentation] Create user initiated BMC dump at host booted state and
126 ... verify dump entry for it.
127 [Tags] Verify_User_Initiated_BMC_Dump_When_Host_Booted
128
George Keishingfb3f9a52019-07-18 13:13:58 -0500129 Redfish Power On stack_mode=skip
George Keishing40b7ee02017-11-13 05:12:41 -0600130 Create User Initiated Dump
131
132
Rahul Maheshwari1612ac92017-08-30 14:42:32 -0500133Verify Core Dump Size
134 [Documentation] Verify BMC core dump size is under 200k.
135 [Tags] Verify_Core_Dump_Size
136
137 Delete All Dumps
138 Trigger Core Dump
George Keishing40efd762018-10-22 04:04:00 -0500139 Wait Until Keyword Succeeds 2 min 10 sec Get Dump Entries
Rahul Maheshwari1612ac92017-08-30 14:42:32 -0500140
141 ${dump_entries}= Get URL List ${DUMP_ENTRY_URI}
142 ${dump_size}= Read Attribute ${dump_entries[0]} Size
143
144 # Max size for dump is 200k = 200x1024
145 Should Be True 0 < ${dump_size} < 204800 msg=Size of dump is incorrect.
146
147
Steven Sombara011c022019-01-16 18:13:52 -0600148Dump Out Of Space Test
149 [Documentation] Verify out of dump space is reported when attempt
150 ... to create too many dumps.
151 [Tags] Dump_Out_Of_Space_Test
152
153 # Systems typically hold 8-14 dumps before running out of dump space.
154 # Attempt to create too_many_dumps. Expect to run out of space
155 # before this.
156 ${too_many_dumps} Set Variable ${100}
157
158 # Should be able to create at least this many dumps.
159 ${minimum_number_of_dumps} Set Variable ${7}
160
161 # Loop, creating a dump each iteration. Will either get dump_id or
162 # will get EMPTY when out of dump space.
163 :FOR ${n} IN RANGE ${too_many_dumps}
164 \ ${dump_id}= Create User Initiated Dump check_out_of_space=${True}
165 \ Exit For Loop If '${dump_id}' == '${EMPTY}'
166 \ Check Existence of BMC Dump file ${dump_id}
167
168 Run Keyword If '${dump_id}' != '${EMPTY}' Fail
169 ... msg=Did not run out of dump space as expected.
170
171 Run Keyword If ${n} < ${minimum_number_of_dumps} Fail
172 ... msg=Insufficient space for at least ${minimum_number_of_dumps} dumps.
173
174
Sivas SRRc0957412017-10-06 13:02:08 -0500175Post Dump BMC Performance Test
176 [Documentation] Check performance of memory, CPU & file system of BMC.
177 [Tags] Post_Dump_BMC_Performance_Test
178
179 Open Connection And Log In
180 Check BMC Performance
181
Steven Sombara011c022019-01-16 18:13:52 -0600182
Sivas SRRc0957412017-10-06 13:02:08 -0500183Post Dump Core Dump Check
184 [Documentation] Check core dump existence on BMC after code update.
185 [Tags] Post_Dump_Core_Dump_Check
186
187 Check For Core Dumps
Rahul Maheshwari0dafbb42017-08-22 13:17:52 -0500188
Rahul Maheshwari1612ac92017-08-30 14:42:32 -0500189
Anusha Dathatrieda09492019-02-26 08:30:13 -0600190Verify Dump After Host Watchdog Error Injection
191 [Documentation] Inject host watchdog error and verify whether dump is generated.
192 [Tags] Verify_Dump_After_Host_Watchdog_Error_Injection
193
George Keishingfb3f9a52019-07-18 13:13:58 -0500194 Redfish Power On
Anusha Dathatrieda09492019-02-26 08:30:13 -0600195
196 Run Keyword And Ignore Error Delete All Dumps
197
198 # Enable auto reboot
199 Set Auto Reboot ${1}
200
201 Trigger Host Watchdog Error 2000 30
202
203 Wait Until Keyword Succeeds 300 sec 20 sec Is Host Rebooted
204
205 #Get dump details
206 @{dump_entry_list}= Read Properties ${DUMP_ENTRY_URI}
207
208 # Verifing that there is only one dump
209 ${length}= Get length ${dump_entry_list}
210 Should Be Equal As Integers ${length} ${1}
211
212 # Get dump id
213 ${value}= Get From List ${dump_entry_list} 0
214 @{split_value}= Split String ${value} /
215 ${dump_id}= Get From List ${split_value} -1
216
217 # Max size for dump is 200k = 200x1024
218 ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size
219 Should Be True 0 < ${dump_size} < 204800
220
221
Naman Navin Hegdeebd4d682019-07-22 02:39:35 -0500222Verify Download BMC Dump
223 [Documentation] Verify that a BMC dump can be downloaded to the local machine.
224 [Tags] Verify_Download_BMC_Dump
225
226 ${dump_id}= Create User Initiated Dump
227 ${dump_dict}= Get Dump Dict
228 ${bmc_dump_name}= Fetch From Right ${dump_dict['${dump_id}']} /
229 ${bmc_dump_checksum} ${stderr} ${rc}= BMC Execute Command
230 ... md5sum ${dump_dict['${dump_id}']}|awk '{print$1}'
231 ${bmc_dump_size} ${stderr} ${rc}= BMC Execute Command
232 ... stat -c "%s" ${dump_dict['${dump_id}']}
233
234 ${response}= OpenBMC Get Request ${DUMP_DOWNLOAD_URI}${dump_id}
235 ... quiet=${1}
236 Should Be Equal As Strings ${response.status_code} ${HTTP_OK}
237 Create Binary File ${EXECDIR}${/}dumps ${response.content}
238 Run tar -xvf ${EXECDIR}${/}dumps
239 ${download_dump_name}= Fetch From Left ${bmc_dump_name} .
240 ${download_dump_checksum}= Run md5sum ${EXECDIR}/dumps|awk '{print$1}'
241 ${download_dump_size}= Run stat -c "%s" ${EXECDIR}${/}dumps
242
243 OperatingSystem.Directory Should Exist ${EXECDIR}/${download_dump_name}
244 ... msg=Created dump name and downloaded dump name don't match.
245 Should Be Equal As Strings ${bmc_dump_checksum} ${download_dump_checksum}
246 Should Be Equal As Strings ${bmc_dump_size} ${download_dump_size}
247
248 Run rm -rf ${EXECDIR}${/}${download_dump_name};rm ${EXECDIR}${/}dumps
249
250
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500251*** Keywords ***
252
George Keishing40b7ee02017-11-13 05:12:41 -0600253Test Teardown Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500254 [Documentation] Do the post test teardown.
255
Rahul Maheshwari953038b2017-10-17 05:08:59 -0500256 Wait Until Keyword Succeeds 3 min 15 sec Verify No Dump In Progress
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500257 FFDC On Test Case Fail
Rahul Maheshwaribf9024f2017-10-25 10:51:39 -0500258 Delete All BMC Dump
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500259 Close All Connections