*** Settings *** Documentation Test dump functionality of OpenBMC. Resource ../../lib/openbmc_ffdc.robot Resource ../../lib/rest_client.robot Resource ../../lib/dump_utils.robot Resource ../../lib/boot_utils.robot Resource ../../lib/utils.robot Library ../../lib/bmc_ssh_utils.py Test Setup Open Connection And Log In Test Teardown Test Teardown Execution *** Test Cases *** Pre Dump BMC Performance Test [Documentation] Check performance of memory, CPU & file system of BMC. [Tags] Pre_Dump_BMC_Performance_Test Open Connection And Log In Check BMC Performance Verify User Initiated BMC Dump When Powered Off [Documentation] Create user initiated BMC dump at host off state and ... verify dump entry for it. [Tags] Verify_User_Initiated_BMC_Dump_When_Powered_Off Redfish Power Off stack_mode=skip ${dump_id}= Create User Initiated Dump Check Existence of BMC Dump file ${dump_id} Verify Dump Persistency On Service Restart [Documentation] Create user dump, restart BMC service and verify dump ... persistency. [Tags] Verify_Dump_Persistency_On_Service_Restart Delete All BMC Dump ${dump_id}= Create User Initiated Dump BMC Execute Command ... systemctl restart xyz.openbmc_project.Dump.Manager.service Sleep 10s reason=Wait for BMC dump service to restart properly. ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} Check Existence of BMC Dump file ${dump_id} Verify Dump Persistency On Reset [Documentation] Create user dump, reset BMC and verify dump persistency. [Tags] Verify_Dump_Persistency_On_Reset Delete All BMC Dump ${dump_id}= Create User Initiated Dump OBMC Reboot (off) ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} Check Existence of BMC Dump file ${dump_id} Delete User Initiated BMC Dump And Verify [Documentation] Delete user initiated dump and verify. [Tags] Delete_User_Initiated_Dump_And_Verify ${dump_id}= Create User Initiated Dump Check Existence of BMC Dump file ${dump_id} Delete BMC Dump ${dump_id} Verify User Initiated Dump Size [Documentation] Verify user Initiated BMC dump size is under 200k. [Tags] Verify_User_Initiated_Dump_Size ${dump_id}= Create User Initiated Dump ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size # Max size for dump is 200k = 200x1024 Should Be True 0 < ${dump_size} < 204800 Check Existence of BMC Dump file ${dump_id} Create Two User Initiated Dump And Delete One [Documentation] Create two dumps and delete the first. [Tags] Create_Two_User_Initiated_Dump_And_Delete_One ${dump_id_1}= Create User Initiated Dump ${dump_id_2}= Create User Initiated Dump Delete BMC Dump ${dump_id_1} ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}${dump_id_1} Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND} ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}${dump_id_2} Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} Check Existence of BMC Dump file ${dump_id_2} Create And Delete BMC Dump Multiple Times [Documentation] Create and delete BMC dump multiple times. [Tags] Create_And_Delete_BMC_Dump_Multiple_Times :FOR ${INDEX} IN RANGE 1 5 \ ${dump_id}= Create User Initiated Dump \ Delete BMC Dump ${dump_id} Delete All BMC Dumps And Verify [Documentation] Delete all BMC dumps and verify. [Tags] Delete_All_BMC_Dumps_And_Verify # Create some dump. Create User Initiated Dump Create User Initiated Dump Delete All BMC Dump ${resp}= OpenBMC Get Request ${DUMP_ENTRY_URI}list Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND} Verify User Initiated BMC Dump When Host Booted [Documentation] Create user initiated BMC dump at host booted state and ... verify dump entry for it. [Tags] Verify_User_Initiated_BMC_Dump_When_Host_Booted Redfish Power On stack_mode=skip Create User Initiated Dump Verify Core Dump Size [Documentation] Verify BMC core dump size is under 200k. [Tags] Verify_Core_Dump_Size Delete All Dumps Trigger Core Dump Wait Until Keyword Succeeds 2 min 10 sec Get Dump Entries ${dump_entries}= Get URL List ${DUMP_ENTRY_URI} ${dump_size}= Read Attribute ${dump_entries[0]} Size # Max size for dump is 200k = 200x1024 Should Be True 0 < ${dump_size} < 204800 msg=Size of dump is incorrect. Dump Out Of Space Test [Documentation] Verify out of dump space is reported when attempt ... to create too many dumps. [Tags] Dump_Out_Of_Space_Test # Systems typically hold 8-14 dumps before running out of dump space. # Attempt to create too_many_dumps. Expect to run out of space # before this. ${too_many_dumps} Set Variable ${100} # Should be able to create at least this many dumps. ${minimum_number_of_dumps} Set Variable ${7} # Loop, creating a dump each iteration. Will either get dump_id or # will get EMPTY when out of dump space. :FOR ${n} IN RANGE ${too_many_dumps} \ ${dump_id}= Create User Initiated Dump check_out_of_space=${True} \ Exit For Loop If '${dump_id}' == '${EMPTY}' \ Check Existence of BMC Dump file ${dump_id} Run Keyword If '${dump_id}' != '${EMPTY}' Fail ... msg=Did not run out of dump space as expected. Run Keyword If ${n} < ${minimum_number_of_dumps} Fail ... msg=Insufficient space for at least ${minimum_number_of_dumps} dumps. Post Dump BMC Performance Test [Documentation] Check performance of memory, CPU & file system of BMC. [Tags] Post_Dump_BMC_Performance_Test Open Connection And Log In Check BMC Performance Post Dump Core Dump Check [Documentation] Check core dump existence on BMC after code update. [Tags] Post_Dump_Core_Dump_Check Check For Core Dumps Verify Dump After Host Watchdog Error Injection [Documentation] Inject host watchdog error and verify whether dump is generated. [Tags] Verify_Dump_After_Host_Watchdog_Error_Injection Redfish Power On Run Keyword And Ignore Error Delete All Dumps # Enable auto reboot Set Auto Reboot ${1} Trigger Host Watchdog Error 2000 30 Wait Until Keyword Succeeds 300 sec 20 sec Is Host Rebooted #Get dump details @{dump_entry_list}= Read Properties ${DUMP_ENTRY_URI} # Verifing that there is only one dump ${length}= Get length ${dump_entry_list} Should Be Equal As Integers ${length} ${1} # Get dump id ${value}= Get From List ${dump_entry_list} 0 @{split_value}= Split String ${value} / ${dump_id}= Get From List ${split_value} -1 # Max size for dump is 200k = 200x1024 ${dump_size}= Read Attribute ${DUMP_ENTRY_URI}${dump_id} Size Should Be True 0 < ${dump_size} < 204800 *** Keywords *** Test Teardown Execution [Documentation] Do the post test teardown. Wait Until Keyword Succeeds 3 min 15 sec Verify No Dump In Progress FFDC On Test Case Fail Delete All BMC Dump Close All Connections