blob: 699c3dda0091cd7b765bdc2d4ae2c2e8e9eafc05 [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
Igor Kanyukafeb79d62025-10-20 21:24:03 +010017Test Tags BMC_Dump
18
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050019*** Test Cases ***
20
Anusha Dathatrieda09492019-02-26 08:30:13 -060021Verify Dump After Host Watchdog Error Injection
22 [Documentation] Inject host watchdog error and verify whether dump is generated.
23 [Tags] Verify_Dump_After_Host_Watchdog_Error_Injection
24
George Keishingfb3f9a52019-07-18 13:13:58 -050025 Redfish Power On
Anusha Dathatrieda09492019-02-26 08:30:13 -060026
Tim Leec4238a82021-12-16 11:25:16 +080027 Run Keyword And Ignore Error Redfish Delete All BMC Dumps
Anusha Dathatrieda09492019-02-26 08:30:13 -060028
29 # Enable auto reboot
30 Set Auto Reboot ${1}
31
Tim Lee3edb0242021-12-23 14:04:58 +080032 Set Watchdog Interval Using Busctl 2000
Anusha Dathatrieda09492019-02-26 08:30:13 -060033
34 Wait Until Keyword Succeeds 300 sec 20 sec Is Host Rebooted
35
36 #Get dump details
37 @{dump_entry_list}= Read Properties ${DUMP_ENTRY_URI}
38
George Keishing16b3c7b2021-01-28 09:23:37 -060039 # Verifying that there is only one dump
Anusha Dathatrieda09492019-02-26 08:30:13 -060040 ${length}= Get length ${dump_entry_list}
41 Should Be Equal As Integers ${length} ${1}
42
43 # Get dump id
44 ${value}= Get From List ${dump_entry_list} 0
45 @{split_value}= Split String ${value} /
46 ${dump_id}= Get From List ${split_value} -1
47
48 # Max size for dump is 200k = 200x1024
49 ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size
50 Should Be True 0 < ${dump_size} < 204800
51
52
Naman Navin Hegdeebd4d682019-07-22 02:39:35 -050053Verify Download BMC Dump
54 [Documentation] Verify that a BMC dump can be downloaded to the local machine.
55 [Tags] Verify_Download_BMC_Dump
56
Tim Lee792e31e2021-12-10 14:10:46 +080057 ${dump_id}= Create User Initiated BMC Dump Via Redfish
Naman Navin Hegdeebd4d682019-07-22 02:39:35 -050058 ${dump_dict}= Get Dump Dict
59 ${bmc_dump_name}= Fetch From Right ${dump_dict['${dump_id}']} /
60 ${bmc_dump_checksum} ${stderr} ${rc}= BMC Execute Command
61 ... md5sum ${dump_dict['${dump_id}']}|awk '{print$1}'
62 ${bmc_dump_size} ${stderr} ${rc}= BMC Execute Command
63 ... stat -c "%s" ${dump_dict['${dump_id}']}
64
65 ${response}= OpenBMC Get Request ${DUMP_DOWNLOAD_URI}${dump_id}
66 ... quiet=${1}
67 Should Be Equal As Strings ${response.status_code} ${HTTP_OK}
68 Create Binary File ${EXECDIR}${/}dumps ${response.content}
69 Run tar -xvf ${EXECDIR}${/}dumps
70 ${download_dump_name}= Fetch From Left ${bmc_dump_name} .
71 ${download_dump_checksum}= Run md5sum ${EXECDIR}/dumps|awk '{print$1}'
72 ${download_dump_size}= Run stat -c "%s" ${EXECDIR}${/}dumps
73
74 OperatingSystem.Directory Should Exist ${EXECDIR}/${download_dump_name}
75 ... msg=Created dump name and downloaded dump name don't match.
76 Should Be Equal As Strings ${bmc_dump_checksum} ${download_dump_checksum}
77 Should Be Equal As Strings ${bmc_dump_size} ${download_dump_size}
78
79 Run rm -rf ${EXECDIR}${/}${download_dump_name};rm ${EXECDIR}${/}dumps
80
81
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050082*** Keywords ***
83
Rahul Maheshwaria89ff9e2020-09-25 05:04:33 -050084Suite Setup Execution
85 [Documentation] Do initial suite setup tasks.
86
87 ${resp}= OpenBMC Get Request ${DUMP_URI}
George Keishing7dc48472025-05-07 20:23:47 +053088 IF '${resp.status_code}' == '${HTTP_NOT_FOUND}'
89 Set Suite Variable ${DUMP_URI} /xyz/openbmc_project/dump/
90 Set Suite Variable ${DUMP_ENTRY_URI} /xyz/openbmc_project/dump/entry/
91 END
Rahul Maheshwaria89ff9e2020-09-25 05:04:33 -050092
93
George Keishing40b7ee02017-11-13 05:12:41 -060094Test Teardown Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050095 [Documentation] Do the post test teardown.
96
Rahul Maheshwari953038b2017-10-17 05:08:59 -050097 Wait Until Keyword Succeeds 3 min 15 sec Verify No Dump In Progress
Rahul Maheshwariad676bf2017-06-22 15:06:05 -050098 FFDC On Test Case Fail
Rahul Maheshwaribf9024f2017-10-25 10:51:39 -050099 Delete All BMC Dump
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500100 Close All Connections