1*** Settings ***
2Documentation   This suite is to run some test at the end of execution.
3
4Resource        ../lib/resource.robot
5Resource        ../lib/bmc_redfish_resource.robot
6Resource        ../lib/openbmc_ffdc.robot
7
8Test Teardown   FFDC On Test Case Fail
9
10
11*** Variables ***
12
13# Error strings to check from journald.
14${ERROR_REGEX}     SEGV|core-dump|FAILURE|Failed to start
15
16
17*** Test Cases ***
18
19Verify No BMC Dump And Application Failures In BMC
20    [Documentation]  Verify no BMC dump and application failure exists in BMC.
21    [Tags]  Verify_No_BMC_Dump_And_Application_Failures_In_BMC
22
23    # Check dump entry based on Redfish API availability.
24    Redfish.Login
25    ${resp}=  Redfish.Get  /redfish/v1/Managers/bmc/LogServices/Dump/Entries
26    ...  valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
27
28    Log To Console  ${resp}
29
30    Run Keyword If  '${resp.status}' == '${HTTP_OK}'
31    ...  Should Be Equal As Strings  ${resp.dict["Members@odata.count"]}  0
32    ...  msg=${resp.dict["Members@odata.count"]} dumps exist.
33
34    ${rest_resp}=  Run Keyword If  '${resp.status}' == '${HTTP_NOT_FOUND}'
35    ...  Check For REST Dumps
36
37    Check For Regex In Journald  ${ERROR_REGEX}  error_check=${0}  boot=-b
38
39
40*** Keywords ***
41
42Check For REST Dumps
43    [Documentation]  Verify no BMC dump via REST path.
44
45    ${rest_resp}=  Redfish.Get  /xyz/openbmc_project/dump/bmc/entry/list
46    ...  valid_status_codes=[${HTTP_OK}, ${HTTP_NOT_FOUND}]
47
48    Log To Console  ${rest_resp}
49
50    Should Be Equal As Strings  ${rest_resp.status}  ${HTTP_NOT_FOUND}
51    ...  msg=1 or more dumps exist.
52