blob: d2eadc4aed53cd49be33e362a07dcdc8cd30df4c [file] [log] [blame]
*** Settings ***
Documentation This suite is used for testing the error logging
... capability from the host
Resource ../lib/rest_client.robot
Resource ../lib/utils.robot
Resource ../lib/connection_client.robot
Resource ../lib/openbmc_ffdc.robot
Library Collections
Suite Setup Open Connection And Log In
Suite Teardown Close All Connections
Test Teardown FFDC On Test Case Fail
*** Variables ***
&{NIL} data=@{EMPTY}
${SYSTEM_SHUTDOWN_TIME} 1min
${WAIT_FOR_SERVICES_UP} 3min
*** Test Cases ***
valid path to logs
[Documentation] Test list all events
[Tags] CI
${resp} = openbmc get request /org/openbmc/records/events/
should be equal as strings ${resp.status_code} ${HTTP_OK}
clear any logs
[Documentation] Test delete all events
[Tags] CI clear_any_logs
${resp} = openbmc post request /org/openbmc/records/events/action/clear data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${resp} = openbmc get request /org/openbmc/records/events/
${json} = to json ${resp.content}
Should Be Empty ${json['data']}
write a log
[Documentation] Test create event
[Tags] CI write_a_log
create a test log
Message attribute should match
[Documentation] Check message attribute for created event
[Tags] CI
${uri} = create a test log
${content} = Read Attribute ${uri} message
Should Be Equal ${content} A Test event log just happened
Severity attribute should match
[Documentation] Check severity attribute for created event
[Tags] CI
${uri} = create a test log
${content}= Read Attribute ${uri} severity
Should Be Equal ${content} Info
data_bytes attribute should match
[Documentation] Check data_bytes attribute for created event
[Tags] CI
@{data_list} = Create List ${48} ${0} ${19} ${127} ${136} ${255}
${uri} = create a test log
${content} = Read Attribute ${uri} debug_data
Lists Should Be Equal ${content} ${data_list}
delete the log
[Documentation] Test the delete event
[Tags] CI
${uri} = create a test log
${deluri} = catenate SEPARATOR= ${uri} /action/delete
${resp} = openbmc post request ${deluri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${resp} = openbmc get request ${deluri}
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
2nd delete should fail
[Documentation] Negative scnenario to delete already deleted event
[Tags] CI
${uri} = create a test log
${deluri} = catenate SEPARATOR= ${uri} /action/delete
${resp} = openbmc post request ${deluri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${resp} = openbmc post request ${deluri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
Intermixed delete
[Documentation] This testcase does the following sequence
... Steps:
... write three logs
... delete middle log
... middle log should not exist
[Tags] CI
${event1}= create a test log
${event2}= create a test log
${event3}= create a test log
${deluri} = catenate SEPARATOR= ${event2} /action/delete
${resp} = openbmc post request ${deluri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${resp}= openbmc get request ${event2}
should be equal as strings ${resp.status_code} ${HTTP_NOT_FOUND}
restarting event process retains logs
[Documentation] This is to test events are in place even after the
... event service is restarted.
[Tags] CI
${resp} = openbmc get request /org/openbmc/records/events/
${json} = to json ${resp.content}
${logs_pre_restart}= set variable ${json['data']}
${uptime}= Execute Command systemctl restart obmc-phosphor-event.service
Sleep ${10}
${resp} = openbmc get request /org/openbmc/records/events/
${json} = to json ${resp.content}
${logs_post_restart}= set variable ${json['data']}
List Should Contain Sub List ${logs_post_restart} ${logs_pre_restart} msg=Failed to find all the eventlogs which are present before restart of event service
deleting log after obmc-phosphor-event.service restart
[Documentation] This is to test event can be deleted created prior to
... event service is restarted.
[Tags] CI
${uri}= create a test log
${uptime}= Execute Command systemctl restart obmc-phosphor-event.service
Sleep ${10}
${deluri} = catenate SEPARATOR= ${uri} /action/delete
${resp} = openbmc post request ${deluri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
making new log after obmc-phosphor-event.service restart
[Documentation] This is for testing event creation after the
... event service is restarted.
[Tags] CI
${uptime}= Execute Command systemctl restart obmc-phosphor-event.service
Sleep ${10}
create a test log
deleting new log after obmc-phosphor-event.service restart
[Documentation] This testcase is for testing deleted newly created event
... after event service is restarted.
[Tags] CI
${uptime}= Execute Command systemctl restart obmc-phosphor-event.service
Sleep ${10}
${uri}= create a test log
${deluri} = catenate SEPARATOR= ${uri} /action/delete
${resp} = openbmc post request ${deluri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
Test events after openbmc reboot
[Documentation] This is to test event can be deleted created prior to
... openbmc reboot
... Steps:
... Create event,
... Reboot openbmc,
... Wait for BMC to READY or Powered OFF state
... Events should exist post reboot,
... Create two more events,
... Delete old and new event
[Tags] bmcreboot
${pre_reboot_event}= create a test log
${output}= Execute Command /sbin/reboot
Check If BMC is Up 5 min 10 sec
@{states}= Create List BMC_READY HOST_POWERED_OFF
Wait Until Keyword Succeeds
... 10 min 10 sec Verify BMC State ${states}
${resp} = openbmc get request ${pre_reboot_event}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${post_reboot_event1}= create a test log
${del_prereboot_uri} = catenate SEPARATOR= ${pre_reboot_event} /action/delete
${resp} = openbmc post request ${del_prereboot_uri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${del_postreboot_uri} = catenate SEPARATOR= ${post_reboot_event1} /action/delete
${resp} = openbmc post request ${del_postreboot_uri} data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
clearing logs results in no logs
[Documentation] This testcase is for clearning the events when no logs present
[Tags] CI
${resp} = openbmc post request /org/openbmc/records/events/action/clear data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${resp} = openbmc get request /org/openbmc/records/events/
${json} = to json ${resp.content}
Should Be Empty ${json['data']}
${resp} = openbmc post request /org/openbmc/records/events/action/clear data=${NIL}
should be equal as strings ${resp.status_code} ${HTTP_OK}
*** Keywords ***
create a test log
[arguments]
${data} = create dictionary data=@{EMPTY}
${resp} = openbmc post request /org/openbmc/records/events/action/acceptTestMessage data=${data}
should be equal as strings ${resp.status_code} ${HTTP_OK}
${json} = to json ${resp.content}
${LOGID} = convert to integer ${json['data']}
${uri}= catenate SEPARATOR= /org/openbmc/records/events/ ${LOGID}
[return] ${uri}