| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 1 | *** Settings *** | 
|  | 2 | Documentation       Test Error logging. | 
|  | 3 |  | 
|  | 4 | Resource            ../lib/connection_client.robot | 
|  | 5 | Resource            ../lib/openbmc_ffdc.robot | 
|  | 6 | Resource            ../lib/utils.robot | 
|  | 7 | Resource            ../lib/state_manager.robot | 
| Rahul Maheshwari | 92972e7 | 2017-06-22 00:59:59 -0500 | [diff] [blame] | 8 | Resource            ../lib/ipmi_client.robot | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 9 |  | 
|  | 10 | Suite Setup         Run Keywords  Verify logging-test  AND | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 11 | ...                 Delete Error Logs And Verify | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 12 | Test Setup          Open Connection And Log In | 
| George Keishing | 845d9dc | 2017-06-16 14:49:29 -0500 | [diff] [blame] | 13 | Test Teardown       Post Test Case Execution | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 14 | Suite Teardown      Delete Error Logs And Verify | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 15 |  | 
|  | 16 | *** Test Cases *** | 
|  | 17 |  | 
|  | 18 | Create Test Error And Verify | 
|  | 19 | [Documentation]  Create error logs and verify via REST. | 
|  | 20 | [Tags]  Create_Test_Error_And_Verify | 
|  | 21 |  | 
|  | 22 | Create Test Error Log | 
|  | 23 | Verify Test Error Log | 
|  | 24 |  | 
|  | 25 |  | 
|  | 26 | Test Error Persistency On Restart | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 27 | [Documentation]  Restart logging service and verify error logs. | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 28 | [Tags]  Test_Error_Persistency_On_Restart | 
|  | 29 |  | 
|  | 30 | Create Test Error Log | 
|  | 31 | Verify Test Error Log | 
|  | 32 | Execute Command On BMC | 
|  | 33 | ...  systemctl restart xyz.openbmc_project.Logging.service | 
|  | 34 | Sleep  10s  reason=Wait for logging service to restart properly. | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 35 | Verify Test Error Log | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 36 |  | 
|  | 37 |  | 
|  | 38 | Test Error Persistency On Reboot | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 39 | [Documentation]  Reboot BMC and verify error logs. | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 40 | [Tags]  Test_Error_Persistency_On_Reboot | 
|  | 41 |  | 
|  | 42 | Create Test Error Log | 
|  | 43 | Verify Test Error Log | 
|  | 44 | Initiate BMC Reboot | 
|  | 45 | Wait Until Keyword Succeeds  10 min  10 sec | 
|  | 46 | ...  Is BMC Ready | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 47 | Verify Test Error Log | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 48 |  | 
|  | 49 |  | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 50 | Create Test Error And Verify Resolved Field | 
|  | 51 | [Documentation]  Create error log and verify "Resolved" | 
|  | 52 | ...              field is 0. | 
|  | 53 | [Tags]  Create_Test_Error_And_Verify_Resolved_Field | 
|  | 54 |  | 
|  | 55 | # Example Error log: | 
|  | 56 | #  "/xyz/openbmc_project/logging/entry/1": { | 
|  | 57 | #    "AdditionalData": [ | 
|  | 58 | #        "STRING=FOO" | 
|  | 59 | #    ], | 
|  | 60 | #    "Id": 1, | 
|  | 61 | #    "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple", | 
|  | 62 | #    "Resolved": 0, | 
|  | 63 | #    "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error", | 
|  | 64 | #    "Timestamp": 1490817164983, | 
|  | 65 | #    "associations": [] | 
|  | 66 | # }, | 
|  | 67 |  | 
|  | 68 | # It's work in progress, but it's mnfg need. To mark an error as | 
|  | 69 | # resolved, without deleting the error, mfg will set this bool | 
|  | 70 | # property. | 
|  | 71 | # In this test context we are making sure "Resolved" field is "0" | 
|  | 72 | # by default. | 
|  | 73 |  | 
| George Keishing | 6eb10b8 | 2017-06-06 10:02:09 -0500 | [diff] [blame] | 74 | Delete Error Logs | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 75 | Create Test Error Log | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 76 | ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY} | 
|  | 77 | ${resolved}=  Read Attribute  ${elog_entry[0]}  Resolved | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 78 | Should Be True  ${resolved} == 0 | 
|  | 79 |  | 
|  | 80 |  | 
|  | 81 | Create Test Errors And Verify Time Stamp | 
|  | 82 | [Documentation]  Create error logs and verify time stamp. | 
|  | 83 | [Tags]  Create_Test_Error_And_Verify_Time_Stamp | 
|  | 84 |  | 
|  | 85 | # Example Error logs: | 
|  | 86 | #  "/xyz/openbmc_project/logging/entry/1": { | 
|  | 87 | #    "AdditionalData": [ | 
|  | 88 | #        "STRING=FOO" | 
|  | 89 | #    ], | 
|  | 90 | #    "Id": 1, | 
|  | 91 | #    "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple", | 
|  | 92 | #    "Resolved": 0, | 
|  | 93 | #    "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error", | 
|  | 94 | #    "Timestamp": 1490818990051,  <--- Time stamp | 
|  | 95 | #    "associations": [] | 
|  | 96 | #  }, | 
|  | 97 | #  "/xyz/openbmc_project/logging/entry/2": { | 
|  | 98 | #    "AdditionalData": [ | 
|  | 99 | #        "STRING=FOO" | 
|  | 100 | #    ], | 
|  | 101 | #    "Id": 2, | 
|  | 102 | #    "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple", | 
|  | 103 | #    "Resolved": 0, | 
|  | 104 | #    "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error", | 
|  | 105 | #    "Timestamp": 1490818992116,   <---- Time stamp | 
|  | 106 | #    "associations": [] | 
|  | 107 | # }, | 
|  | 108 |  | 
| George Keishing | 6eb10b8 | 2017-06-06 10:02:09 -0500 | [diff] [blame] | 109 | Delete Error Logs | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 110 | Create Test Error Log | 
|  | 111 | Create Test Error Log | 
|  | 112 | # The error log generated is associated with the epoc time and unique | 
|  | 113 | # for every error and in increasing time stamp. | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 114 | ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY} | 
|  | 115 | ${time_stamp1}=  Read Attribute  ${elog_entry[0]}  Timestamp | 
|  | 116 | ${time_stamp2}=  Read Attribute  ${elog_entry[1]}  Timestamp | 
| George Keishing | 6eb10b8 | 2017-06-06 10:02:09 -0500 | [diff] [blame] | 117 | Should Be True  ${time_stamp2} > ${time_stamp1} | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 118 |  | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 119 | Create Test Error Log And Delete | 
|  | 120 | [Documentation]  Create an error log and delete it. | 
|  | 121 | [Tags]  Create_Test_Error_Log_And_Delete | 
|  | 122 |  | 
|  | 123 | Delete Error Logs And Verify | 
|  | 124 | Create Test Error Log | 
|  | 125 | Delete Error Logs And Verify | 
|  | 126 |  | 
|  | 127 | Create Multiple Test Error Logs And Delete All | 
|  | 128 | [Documentation]  Create multiple error logs and delete all. | 
|  | 129 | [Tags]  Create_Multiple_Test_Error_Logs_And_Delete_All | 
|  | 130 |  | 
|  | 131 | Delete Error Logs And Verify | 
|  | 132 | Create Test Error Log | 
|  | 133 | Create Test Error Log | 
|  | 134 | Create Test Error Log | 
|  | 135 | Delete Error Logs And Verify | 
|  | 136 |  | 
|  | 137 | Create Two Test Error Logs And Delete One | 
|  | 138 | [Documentation]  Create two error logs and delete the first entry. | 
|  | 139 | [Tags]  Create_Two_Test_Error_Logs_And_Delete_One | 
|  | 140 |  | 
|  | 141 | Delete Error Logs And Verify | 
|  | 142 | Create Test Error Log | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 143 | ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY} | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 144 | Create Test Error Log | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 145 | Delete Error log Entry  ${elog_entry[0]} | 
|  | 146 | ${resp}=  OpenBMC Get Request  ${elog_entry[0]} | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 147 | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND} | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 148 |  | 
| Rahul Maheshwari | 92972e7 | 2017-06-22 00:59:59 -0500 | [diff] [blame] | 149 |  | 
|  | 150 | Verify IPMI SEL Version | 
|  | 151 | [Documentation]  Verify IPMI SEL's version info. | 
|  | 152 | [Tags]  Verify_IPMI_SEL_Version | 
|  | 153 |  | 
|  | 154 | ${version_info}=  Get IPMI SEL Setting  Version | 
|  | 155 | ${setting_status}=  Fetch From Left  ${version_info}  ( | 
|  | 156 | ${setting_status}=  Evaluate  $setting_status.replace(' ','') | 
|  | 157 |  | 
|  | 158 | Should Be True  ${setting_status} >= 1.5 | 
|  | 159 | Should Contain  ${version_info}  v2compliant  case_insensitive=True | 
|  | 160 |  | 
|  | 161 |  | 
| George Keishing | 845d9dc | 2017-06-16 14:49:29 -0500 | [diff] [blame] | 162 | Verify Watchdog Timedout Error | 
|  | 163 | [Documentation]  Trigger watchdog timed out and verify errorlog generated. | 
|  | 164 | [Tags]  Verify_Watchdog_Timedout_Error | 
|  | 165 |  | 
|  | 166 | # Clear errors if there are any. | 
|  | 167 | Delete Error Logs | 
|  | 168 |  | 
|  | 169 | Initiate Host Boot | 
|  | 170 |  | 
|  | 171 | # Check if the watchdog interface is created. | 
|  | 172 | Wait Until Keyword Succeeds  3 min  10 sec | 
|  | 173 | ...  Read Properties  /xyz/openbmc_project/watchdog/host0 | 
|  | 174 |  | 
|  | 175 | Trigger Host Watchdog Error | 
|  | 176 |  | 
|  | 177 | Verify Watchdog Errorlog Content | 
|  | 178 |  | 
|  | 179 |  | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 180 | *** Keywords *** | 
|  | 181 |  | 
| Rahul Maheshwari | 92972e7 | 2017-06-22 00:59:59 -0500 | [diff] [blame] | 182 | Get IPMI SEL Setting | 
|  | 183 | [Documentation]  Returns status for given IPMI SEL setting. | 
|  | 184 | [Arguments]  ${setting} | 
|  | 185 | # Description of argument(s): | 
|  | 186 | # setting  SEL setting which needs to be read(e.g. "Last Add Time"). | 
|  | 187 |  | 
|  | 188 | ${resp}=  Run IPMI Standard Command  sel info | 
|  | 189 |  | 
|  | 190 | ${setting_line}=  Get Lines Containing String  ${resp}  ${setting} | 
|  | 191 | ...  case-insensitive | 
|  | 192 | ${setting_status}=  Fetch From Right  ${setting_line}  : | 
|  | 193 | ${setting_status}=  Evaluate  $setting_status.replace(' ','') | 
|  | 194 |  | 
|  | 195 | [Return]  ${setting_status} | 
|  | 196 |  | 
|  | 197 |  | 
| George Keishing | 845d9dc | 2017-06-16 14:49:29 -0500 | [diff] [blame] | 198 | Verify Watchdog Errorlog Content | 
|  | 199 | [Documentation]  Verify watchdog errorlog content. | 
|  | 200 | # Example: | 
|  | 201 | # "/xyz/openbmc_project/logging/entry/1": | 
|  | 202 | #  { | 
|  | 203 | #      "AdditionalData": [], | 
|  | 204 | #      "Id": 1, | 
|  | 205 | #      "Message": "org.open_power.Host.Error.WatchdogTimedOut", | 
|  | 206 | #      "Resolved": 0, | 
|  | 207 | #      "Severity": "xyz.openbmc_project.Logging.Entry.Level.Informational", | 
|  | 208 | #      "Timestamp": 1492715244828, | 
|  | 209 | #      "associations": [] | 
|  | 210 | # }, | 
|  | 211 |  | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 212 | ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY} | 
|  | 213 | ${elog}=  Read Properties  ${elog_entry[0]} | 
| George Keishing | 845d9dc | 2017-06-16 14:49:29 -0500 | [diff] [blame] | 214 | Should Be Equal As Strings | 
|  | 215 | ...  ${elog["Message"]}  org.open_power.Host.Error.WatchdogTimedOut | 
|  | 216 | Should Not Be Equal As Strings | 
|  | 217 | ...  ${elog["Severity"]}  xyz.openbmc_project.Logging.Entry.Level.Informational | 
|  | 218 |  | 
|  | 219 |  | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 220 | Verify logging-test | 
|  | 221 | [Documentation]  Verify existence of prerequisite logging-test. | 
|  | 222 |  | 
|  | 223 | Open Connection And Log In | 
|  | 224 | ${out}  ${stderr}=  Execute Command  which logging-test  return_stderr=True | 
|  | 225 | Should Be Empty  ${stderr} | 
|  | 226 | Should Contain  ${out}  logging-test | 
|  | 227 |  | 
|  | 228 | Clear Existing Error Logs | 
|  | 229 | [Documentation]  If error log isn't empty, reboot the BMC to clear the log. | 
|  | 230 |  | 
|  | 231 | ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}${1} | 
|  | 232 | Return From Keyword If  ${resp.status_code} == ${HTTP_NOT_FOUND} | 
|  | 233 | Initiate BMC Reboot | 
|  | 234 | Wait Until Keyword Succeeds  10 min  10 sec | 
|  | 235 | ...  Is BMC Ready | 
|  | 236 | ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}${1} | 
|  | 237 | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND} | 
|  | 238 |  | 
|  | 239 | Create Test Error Log | 
|  | 240 | [Documentation]  Generate test error log. | 
|  | 241 |  | 
|  | 242 | # Test error log entry example: | 
|  | 243 | # "/xyz/openbmc_project/logging/entry/1":  { | 
|  | 244 | #     "AdditionalData": [ | 
|  | 245 | #         "STRING=FOO" | 
|  | 246 | #     ], | 
|  | 247 | #     "Id": 1, | 
|  | 248 | #     "Message": "example.xyz.openbmc_project.Example.Elog.AutoTestSimple", | 
|  | 249 | #     "Severity": "xyz.openbmc_project.Logging.Entry.Level.Error", | 
|  | 250 | #     "Timestamp": 1487743963328, | 
|  | 251 | #     "associations": [] | 
|  | 252 | # } | 
|  | 253 |  | 
|  | 254 | Execute Command On BMC  logging-test -c AutoTestSimple | 
|  | 255 |  | 
|  | 256 | Verify Test Error Log | 
|  | 257 | [Documentation]  Verify test error log entries. | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 258 | ${elog_entry}=  Get URL List  ${BMC_LOGGING_ENTRY} | 
|  | 259 | ${entry_id}=  Read Attribute  ${elog_entry[0]}  Message | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 260 | Should Be Equal  ${entry_id} | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 261 | ...  example.xyz.openbmc_project.Example.Elog.AutoTestSimple | 
| George Keishing | 184a89a | 2017-06-27 07:12:16 -0500 | [diff] [blame] | 262 | ${entry_id}=  Read Attribute  ${elog_entry[0]}  Severity | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 263 | Should Be Equal  ${entry_id} | 
| Michael Tritz | 935c18e | 2017-03-08 11:45:41 -0600 | [diff] [blame] | 264 | ...  xyz.openbmc_project.Logging.Entry.Level.Error | 
| George Keishing | 04bc481 | 2017-03-30 03:33:31 -0500 | [diff] [blame] | 265 |  | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 266 | Delete Error Logs And Verify | 
|  | 267 | [Documentation]  Delete all error logs and verify. | 
|  | 268 |  | 
| George Keishing | 6eb10b8 | 2017-06-06 10:02:09 -0500 | [diff] [blame] | 269 | Delete Error Logs | 
| Sweta Potthuri | 9ce8eeb | 2017-05-08 04:20:11 -0500 | [diff] [blame] | 270 | ${resp}=  OpenBMC Get Request  ${BMC_LOGGING_ENTRY}/list | 
|  | 271 | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND} | 
| George Keishing | 845d9dc | 2017-06-16 14:49:29 -0500 | [diff] [blame] | 272 |  | 
|  | 273 | Post Test Case Execution | 
|  | 274 | [Documentation]  Do the post test teardown. | 
|  | 275 | # 1. Capture FFDC on test failure. | 
|  | 276 | # 2. Delete error logs. | 
|  | 277 | # 3. Close all open SSH connections. | 
|  | 278 | # 4. Clear all REST sessions. | 
|  | 279 |  | 
|  | 280 | FFDC On Test Case Fail | 
|  | 281 | Delete Error Logs | 
|  | 282 | Close All Connections | 
|  | 283 | Flush REST Sessions | 
|  | 284 |  |