blob: a59a380e1cccddc7157bb1005c7fdc1cfb3e43f1 [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
Rahul Maheshwari1612ac92017-08-30 14:42:32 -050019Verify Core Dump Size
20 [Documentation] Verify BMC core dump size is under 200k.
21 [Tags] Verify_Core_Dump_Size
22
Tim Leec4238a82021-12-16 11:25:16 +080023 Redfish Delete All BMC Dumps
Rahul Maheshwari1612ac92017-08-30 14:42:32 -050024 Trigger Core Dump
George Keishing40efd762018-10-22 04:04:00 -050025 Wait Until Keyword Succeeds 2 min 10 sec Get Dump Entries
Rahul Maheshwari1612ac92017-08-30 14:42:32 -050026
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 Dathatrieda09492019-02-26 08:30:13 -060034Verify 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 Keishingfb3f9a52019-07-18 13:13:58 -050038 Redfish Power On
Anusha Dathatrieda09492019-02-26 08:30:13 -060039
Tim Leec4238a82021-12-16 11:25:16 +080040 Run Keyword And Ignore Error Redfish Delete All BMC Dumps
Anusha Dathatrieda09492019-02-26 08:30:13 -060041
42 # Enable auto reboot
43 Set Auto Reboot ${1}
44
Tim Lee3edb0242021-12-23 14:04:58 +080045 Set Watchdog Interval Using Busctl 2000
Anusha Dathatrieda09492019-02-26 08:30:13 -060046
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 Keishing16b3c7b2021-01-28 09:23:37 -060052 # Verifying that there is only one dump
Anusha Dathatrieda09492019-02-26 08:30:13 -060053 ${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 Hegdeebd4d682019-07-22 02:39:35 -050066Verify 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 Lee792e31e2021-12-10 14:10:46 +080070 ${dump_id}= Create User Initiated BMC Dump Via Redfish
Naman Navin Hegdeebd4d682019-07-22 02:39:35 -050071 ${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 Maheshwariad676bf2017-06-22 15:06:05 -050095*** Keywords ***
96
Rahul Maheshwaria89ff9e2020-09-25 05:04:33 -050097Suite 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 Keishing40b7ee02017-11-13 05:12:41 -0600106Test Teardown Execution
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500107 [Documentation] Do the post test teardown.
108
Rahul Maheshwari953038b2017-10-17 05:08:59 -0500109 Wait Until Keyword Succeeds 3 min 15 sec Verify No Dump In Progress
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500110 FFDC On Test Case Fail
Rahul Maheshwaribf9024f2017-10-25 10:51:39 -0500111 Delete All BMC Dump
Rahul Maheshwariad676bf2017-06-22 15:06:05 -0500112 Close All Connections