Error logging test suite
"logging-test" tool will generate test error log.
Added the following test cases:
- "Create Test Error And Verify"
- "Test Error Log Persistency On Restart"
- "Test Error Log Persistency on Reboot"
Resolves openbmc/openbmc-test-automation#289
Change-Id: Ifcd3300f070224f1f3f200de86919c1634a8e6c3
Signed-off-by: Michael Tritz <mtritz@us.ibm.com>
diff --git a/tests/test_error_log.robot b/tests/test_error_log.robot
new file mode 100644
index 0000000..02754b0
--- /dev/null
+++ b/tests/test_error_log.robot
@@ -0,0 +1,96 @@
+*** Settings ***
+Documentation Test Error logging.
+
+Resource ../lib/connection_client.robot
+Resource ../lib/openbmc_ffdc.robot
+Resource ../lib/utils.robot
+Resource ../lib/state_manager.robot
+
+Suite Setup Run Keywords Verify logging-test AND
+... Clear Existing Error Logs
+Test Setup Open Connection And Log In
+Test Teardown Close All Connections
+Suite Teardown Clear Existing Error Logs
+
+*** Test Cases ***
+
+Create Test Error And Verify
+ [Documentation] Create error logs and verify via REST.
+ [Tags] Create_Test_Error_And_Verify
+
+ Create Test Error Log
+ Verify Test Error Log
+
+
+Test Error Persistency On Restart
+ [Documentation] Restart logging service and verify error logs don't exist.
+ [Tags] Test_Error_Persistency_On_Restart
+
+ Create Test Error Log
+ Verify Test Error Log
+ Execute Command On BMC
+ ... systemctl restart xyz.openbmc_project.Logging.service
+ Sleep 10s reason=Wait for logging service to restart properly.
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}${1}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
+
+
+Test Error Persistency On Reboot
+ [Documentation] Reboot BMC and verify error logs don't exist.
+ [Tags] Test_Error_Persistency_On_Reboot
+
+ Create Test Error Log
+ Verify Test Error Log
+ Initiate BMC Reboot
+ Wait Until Keyword Succeeds 10 min 10 sec
+ ... Is BMC Ready
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}${1}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
+
+
+*** Keywords ***
+
+Verify logging-test
+ [Documentation] Verify existence of prerequisite logging-test.
+
+ Open Connection And Log In
+ ${out} ${stderr}= Execute Command which logging-test return_stderr=True
+ Should Be Empty ${stderr}
+ Should Contain ${out} logging-test
+
+Clear Existing Error Logs
+ [Documentation] If error log isn't empty, reboot the BMC to clear the log.
+
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}${1}
+ Return From Keyword If ${resp.status_code} == ${HTTP_NOT_FOUND}
+ Initiate BMC Reboot
+ Wait Until Keyword Succeeds 10 min 10 sec
+ ... Is BMC Ready
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}${1}
+ Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
+
+Create Test Error Log
+ [Documentation] Generate test error log.
+
+ # Test error log entry example:
+ # "/xyz/openbmc_project/logging/entry/1": {
+ # "AdditionalData": [
+ # "STRING=FOO"
+ # ],
+ # "Id": 1,
+ # "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple",
+ # "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error",
+ # "Timestamp": 1487743963328,
+ # "associations": []
+ # }
+
+ Execute Command On BMC logging-test -c AutoTestSimple
+
+Verify Test Error Log
+ [Documentation] Verify test error log entries.
+ ${content}= Read Attribute ${BMC_LOGGING_ENTRY}${1} Message
+ Should Be Equal ${content}
+ ... example.xyz.openbmc_project.Example.Elog.AutoTestSimple
+ ${content}= Read Attribute ${BMC_LOGGING_ENTRY}${1} Severity
+ Should Be Equal ${content}
+ ... xyz.openbmc_project.Logging.Entry.Level.Error