Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 1 | *** Settings *** |
| 2 | |
| 3 | Documentation Test dump functionality of OpenBMC. |
| 4 | |
George Keishing | fb3f9a5 | 2019-07-18 13:13:58 -0500 | [diff] [blame] | 5 | Resource ../../lib/openbmc_ffdc.robot |
| 6 | Resource ../../lib/rest_client.robot |
| 7 | Resource ../../lib/dump_utils.robot |
| 8 | Resource ../../lib/boot_utils.robot |
| 9 | Resource ../../lib/utils.robot |
George Keishing | bac0c57 | 2019-08-08 23:19:45 -0500 | [diff] [blame] | 10 | Resource ../../lib/state_manager.robot |
George Keishing | fb3f9a5 | 2019-07-18 13:13:58 -0500 | [diff] [blame] | 11 | Library ../../lib/bmc_ssh_utils.py |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 12 | |
Rahul Maheshwari | a89ff9e | 2020-09-25 05:04:33 -0500 | [diff] [blame] | 13 | Suite Setup Suite Setup Execution |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 14 | Test Setup Open Connection And Log In |
George Keishing | 40b7ee0 | 2017-11-13 05:12:41 -0600 | [diff] [blame] | 15 | Test Teardown Test Teardown Execution |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 16 | |
| 17 | *** Test Cases *** |
| 18 | |
Rahul Maheshwari | 1612ac9 | 2017-08-30 14:42:32 -0500 | [diff] [blame] | 19 | Verify Core Dump Size |
| 20 | [Documentation] Verify BMC core dump size is under 200k. |
| 21 | [Tags] Verify_Core_Dump_Size |
| 22 | |
Tim Lee | c4238a8 | 2021-12-16 11:25:16 +0800 | [diff] [blame] | 23 | Redfish Delete All BMC Dumps |
Rahul Maheshwari | 1612ac9 | 2017-08-30 14:42:32 -0500 | [diff] [blame] | 24 | Trigger Core Dump |
George Keishing | 40efd76 | 2018-10-22 04:04:00 -0500 | [diff] [blame] | 25 | Wait Until Keyword Succeeds 2 min 10 sec Get Dump Entries |
Rahul Maheshwari | 1612ac9 | 2017-08-30 14:42:32 -0500 | [diff] [blame] | 26 | |
| 27 | ${dump_entries}= Get URL List ${DUMP_ENTRY_URI} |
| 28 | ${dump_size}= Read Attribute ${dump_entries[0]} Size |
| 29 | |
| 30 | # Max size for dump is 200k = 200x1024 |
| 31 | Should Be True 0 < ${dump_size} < 204800 msg=Size of dump is incorrect. |
| 32 | |
| 33 | |
Anusha Dathatri | eda0949 | 2019-02-26 08:30:13 -0600 | [diff] [blame] | 34 | Verify Dump After Host Watchdog Error Injection |
| 35 | [Documentation] Inject host watchdog error and verify whether dump is generated. |
| 36 | [Tags] Verify_Dump_After_Host_Watchdog_Error_Injection |
| 37 | |
George Keishing | fb3f9a5 | 2019-07-18 13:13:58 -0500 | [diff] [blame] | 38 | Redfish Power On |
Anusha Dathatri | eda0949 | 2019-02-26 08:30:13 -0600 | [diff] [blame] | 39 | |
Tim Lee | c4238a8 | 2021-12-16 11:25:16 +0800 | [diff] [blame] | 40 | Run Keyword And Ignore Error Redfish Delete All BMC Dumps |
Anusha Dathatri | eda0949 | 2019-02-26 08:30:13 -0600 | [diff] [blame] | 41 | |
| 42 | # Enable auto reboot |
| 43 | Set Auto Reboot ${1} |
| 44 | |
Tim Lee | 3edb024 | 2021-12-23 14:04:58 +0800 | [diff] [blame] | 45 | Set Watchdog Interval Using Busctl 2000 |
Anusha Dathatri | eda0949 | 2019-02-26 08:30:13 -0600 | [diff] [blame] | 46 | |
| 47 | Wait Until Keyword Succeeds 300 sec 20 sec Is Host Rebooted |
| 48 | |
| 49 | #Get dump details |
| 50 | @{dump_entry_list}= Read Properties ${DUMP_ENTRY_URI} |
| 51 | |
George Keishing | 16b3c7b | 2021-01-28 09:23:37 -0600 | [diff] [blame] | 52 | # Verifying that there is only one dump |
Anusha Dathatri | eda0949 | 2019-02-26 08:30:13 -0600 | [diff] [blame] | 53 | ${length}= Get length ${dump_entry_list} |
| 54 | Should Be Equal As Integers ${length} ${1} |
| 55 | |
| 56 | # Get dump id |
| 57 | ${value}= Get From List ${dump_entry_list} 0 |
| 58 | @{split_value}= Split String ${value} / |
| 59 | ${dump_id}= Get From List ${split_value} -1 |
| 60 | |
| 61 | # Max size for dump is 200k = 200x1024 |
| 62 | ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size |
| 63 | Should Be True 0 < ${dump_size} < 204800 |
| 64 | |
| 65 | |
Naman Navin Hegde | ebd4d68 | 2019-07-22 02:39:35 -0500 | [diff] [blame] | 66 | Verify Download BMC Dump |
| 67 | [Documentation] Verify that a BMC dump can be downloaded to the local machine. |
| 68 | [Tags] Verify_Download_BMC_Dump |
| 69 | |
Tim Lee | 792e31e | 2021-12-10 14:10:46 +0800 | [diff] [blame] | 70 | ${dump_id}= Create User Initiated BMC Dump Via Redfish |
Naman Navin Hegde | ebd4d68 | 2019-07-22 02:39:35 -0500 | [diff] [blame] | 71 | ${dump_dict}= Get Dump Dict |
| 72 | ${bmc_dump_name}= Fetch From Right ${dump_dict['${dump_id}']} / |
| 73 | ${bmc_dump_checksum} ${stderr} ${rc}= BMC Execute Command |
| 74 | ... md5sum ${dump_dict['${dump_id}']}|awk '{print$1}' |
| 75 | ${bmc_dump_size} ${stderr} ${rc}= BMC Execute Command |
| 76 | ... stat -c "%s" ${dump_dict['${dump_id}']} |
| 77 | |
| 78 | ${response}= OpenBMC Get Request ${DUMP_DOWNLOAD_URI}${dump_id} |
| 79 | ... quiet=${1} |
| 80 | Should Be Equal As Strings ${response.status_code} ${HTTP_OK} |
| 81 | Create Binary File ${EXECDIR}${/}dumps ${response.content} |
| 82 | Run tar -xvf ${EXECDIR}${/}dumps |
| 83 | ${download_dump_name}= Fetch From Left ${bmc_dump_name} . |
| 84 | ${download_dump_checksum}= Run md5sum ${EXECDIR}/dumps|awk '{print$1}' |
| 85 | ${download_dump_size}= Run stat -c "%s" ${EXECDIR}${/}dumps |
| 86 | |
| 87 | OperatingSystem.Directory Should Exist ${EXECDIR}/${download_dump_name} |
| 88 | ... msg=Created dump name and downloaded dump name don't match. |
| 89 | Should Be Equal As Strings ${bmc_dump_checksum} ${download_dump_checksum} |
| 90 | Should Be Equal As Strings ${bmc_dump_size} ${download_dump_size} |
| 91 | |
| 92 | Run rm -rf ${EXECDIR}${/}${download_dump_name};rm ${EXECDIR}${/}dumps |
| 93 | |
| 94 | |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 95 | *** Keywords *** |
| 96 | |
Rahul Maheshwari | a89ff9e | 2020-09-25 05:04:33 -0500 | [diff] [blame] | 97 | Suite Setup Execution |
| 98 | [Documentation] Do initial suite setup tasks. |
| 99 | |
| 100 | ${resp}= OpenBMC Get Request ${DUMP_URI} |
| 101 | Run Keyword If '${resp.status_code}' == '${HTTP_NOT_FOUND}' |
| 102 | ... Run Keywords Set Suite Variable ${DUMP_URI} /xyz/openbmc_project/dump/ AND |
| 103 | ... Set Suite Variable ${DUMP_ENTRY_URI} /xyz/openbmc_project/dump/entry/ |
| 104 | |
| 105 | |
George Keishing | 40b7ee0 | 2017-11-13 05:12:41 -0600 | [diff] [blame] | 106 | Test Teardown Execution |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 107 | [Documentation] Do the post test teardown. |
| 108 | |
Rahul Maheshwari | 953038b | 2017-10-17 05:08:59 -0500 | [diff] [blame] | 109 | Wait Until Keyword Succeeds 3 min 15 sec Verify No Dump In Progress |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 110 | FFDC On Test Case Fail |
Rahul Maheshwari | bf9024f | 2017-10-25 10:51:39 -0500 | [diff] [blame] | 111 | Delete All BMC Dump |
Rahul Maheshwari | ad676bf | 2017-06-22 15:06:05 -0500 | [diff] [blame] | 112 | Close All Connections |