blob: 2857927da4686f2e22a4174ee9ec077c613e5508 [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
2
George Keishing505d5b42017-02-21 11:01:54 -06003Documentation eSEL's Test cases.
Chris Austenb29d2e82016-06-07 12:25:35 -05004
George Keishing505d5b42017-02-21 11:01:54 -06005Resource ../lib/ipmi_client.robot
6Resource ../lib/openbmc_ffdc.robot
Sweta Potthurifc9cfd72017-05-10 11:58:13 -05007Resource ../lib/utils.robot
George Keishing505d5b42017-02-21 11:01:54 -06008Variables ../data/variables.py
Sridevi Ramesh87be0642017-05-19 01:20:50 -05009Resource ../lib/utils.robot
Sweta Potthurib2c50f12017-06-28 03:53:30 -050010Resource ../lib/boot_utils.robot
Chris Austenb29d2e82016-06-07 12:25:35 -050011
Sridevi Ramesh87be0642017-05-19 01:20:50 -050012Suite Setup eSEL Test SetUp
George Keishing616c2782017-02-23 13:04:04 -060013Suite Teardown Test Cleanup On Exit
George Keishing505d5b42017-02-21 11:01:54 -060014Test Teardown FFDC On Test Case Fail
Sridevi Ramesh87be0642017-05-19 01:20:50 -050015Test Setup Delete Error logs
George Keishing505d5b42017-02-21 11:01:54 -060016
17Force Tags eSEL_Logging
18
19*** Variables ***
20
21${RESERVE_ID} raw 0x0a 0x42
22${RAW_PREFIX} raw 0x32 0xf0 0x
23
24${RAW_SUFFIX} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00
George Keishingaf190192017-08-18 14:58:07 -050025... 0xdf 0x00 0x00 0x00 0x00 0x20 0x00 0x04 0x12 0xA6 0x6f 0xaa 0x00 0x00
George Keishing505d5b42017-02-21 11:01:54 -060026
27${RAW_SEL_COMMIT} raw 0x0a 0x44 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20
George Keishingaf190192017-08-18 14:58:07 -050028... 0x00 0x04 0x12 0xA6 0x6f 0x02 0x00 0x01
George Keishing505d5b42017-02-21 11:01:54 -060029
30${LOGGING_SERVICE} xyz.openbmc_project.Logging.service
Chris Austenb29d2e82016-06-07 12:25:35 -050031
George Keishing616c2782017-02-23 13:04:04 -060032${ESEL_DATA} ESEL=00 00 df 00 00 00 00 20 00 04 12 35 6f aa 00 00
33
Chris Austenb29d2e82016-06-07 12:25:35 -050034*** Test Cases ***
35
George Keishing505d5b42017-02-21 11:01:54 -060036Verify eSEL Using REST
George Keishing616c2782017-02-23 13:04:04 -060037 [Documentation] Generate eSEL log and verify using REST.
George Keishing505d5b42017-02-21 11:01:54 -060038 [Tags] Verify_eSEL_Using_REST
39
George Keishing616c2782017-02-23 13:04:04 -060040 Create eSEL
George Keishing505d5b42017-02-21 11:01:54 -060041 # New eSEL log should exist
Sweta Potthuri85c36c12017-07-03 05:30:44 -050042 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}/list
George Keishing505d5b42017-02-21 11:01:54 -060043 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
44
George Keishing616c2782017-02-23 13:04:04 -060045Verify eSEL Entries Using REST
46 [Documentation] Verify that eSEL entries have data.
George Keishing616c2782017-02-23 13:04:04 -060047 [Tags] Verify_eSEL_Entries_Using_REST
Sridevi Ramesh87be0642017-05-19 01:20:50 -050048
George Keishing616c2782017-02-23 13:04:04 -060049 Create eSEL
50 Verify eSEL Entries
51
52
53Verify Multiple eSEL Using REST
George Keishing3d14cfa2017-03-06 02:49:49 -060054 [Documentation] Generate multiple eSEL log and verify using REST.
George Keishing616c2782017-02-23 13:04:04 -060055 [Tags] Verify_Multiple_eSEL_Using_REST
Sridevi Ramesh87be0642017-05-19 01:20:50 -050056
George Keishing616c2782017-02-23 13:04:04 -060057 Create eSEL
58 Create eSEL
59 ${entries}= Count eSEL Entries
60 Should Be Equal As Integers ${entries} ${2}
61
George Keishing3d14cfa2017-03-06 02:49:49 -060062Check eSEL AdditionalData
63 [Documentation] Generate eSEL log and verify AdditionalData is
64 ... not empty.
George Keishing3d14cfa2017-03-06 02:49:49 -060065 [Tags] Check_eSEL_AdditionalData
Sridevi Ramesh87be0642017-05-19 01:20:50 -050066
George Keishing3d14cfa2017-03-06 02:49:49 -060067 Create eSEL
Sweta Potthuri85c36c12017-07-03 05:30:44 -050068 ${elog_entry}= Get URL List ${BMC_LOGGING_ENTRY}
69 ${resp}= OpenBMC Get Request ${elog_entry[0]}
George Keishing3d14cfa2017-03-06 02:49:49 -060070 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
71 ${jsondata}= To JSON ${resp.content}
72 # "/xyz/openbmc_project/logging/entry/1": {
73 # "Timestamp": 1487743771812,
74 # "AdditionalData": [],
75 # "Message": "org.open_power.Error.Host.Event.Event",
76 # "Id": 1,
77 # "Severity": "xyz.openbmc_project.Logging.Entry.Level.Emergency"
78 # }
79 Should Not Be Empty ${jsondata["data"]["AdditionalData"]}
80
Chris Austenb29d2e82016-06-07 12:25:35 -050081Test Wrong Reservation_ID
George Keishingcac24c72016-09-23 04:44:19 -050082 [Documentation] This testcase is to test BMC can handle multi-requestor's
83 ... oem partial add command with incorrect reservation id.
84 ... It simulates sending partial add command with fake content
85 ... and wrong Reservation ID. This command will be rejected.
86 [Tags] Test_Wrong_Reservation_ID
Gunnar Mills56b32892016-11-14 13:56:17 -060087
Sweta Potthurifc9cfd72017-05-10 11:58:13 -050088 ${rev_id_1}= Run Inband IPMI Raw Command 0x0a 0x42
Gunnar Mills1cd544d2016-12-06 11:19:22 -060089 ${rev_id_ls}= Get Substring ${rev_id_1} 1 3
90 ${rev_id_ms}= Get Substring ${rev_id_1} -2
Sweta Potthurifc9cfd72017-05-10 11:58:13 -050091 Run Inband IPMI Raw Command 0x0a 0x42
92 ${output}= Check IPMI OEMpartialadd Reject 0x32 0xf0 0x${rev_id_ls} 0x${rev_id_ms} 0 0 0 0 0 1 2 3 4 5 6 7 8 9 0xa 0xb 0xc 0xd 0xe 0xf
Chris Austenb29d2e82016-06-07 12:25:35 -050093 Should Contain ${output} Reservation cancelled
94
95Test Correct Reservation_ID
George Keishingcac24c72016-09-23 04:44:19 -050096 [Documentation] This testcase is to test BMC can handle multi-requestor's
97 ... oem partial add command with correct reservation id. It
98 ... simulates sending partial add command with fake content
99 ... and correct Reservation ID. This command will be accepted.
100 [Tags] Test_Correct_Reservation_ID
Gunnar Mills56b32892016-11-14 13:56:17 -0600101
Sweta Potthurifc9cfd72017-05-10 11:58:13 -0500102 Run Inband IPMI Raw Command 0x0a 0x42
103 ${rev_id_2}= Run Inband IPMI Raw Command 0x0a 0x42
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600104 ${rev_id_ls}= Get Substring ${rev_id_2} 1 3
105 ${rev_id_ms}= Get Substring ${rev_id_2} -2
Sweta Potthurifc9cfd72017-05-10 11:58:13 -0500106 ${output}= Check IPMI OEMpartialadd Accept 0x32 0xf0 0x${rev_id_ls} 0x${rev_id_ms} 0 0 0 0 0 1 2 3 4 5 6 7 8 9 0xa 0xb 0xc 0xd 0xe 0xf
Chris Austenb29d2e82016-06-07 12:25:35 -0500107 Should Be Empty ${output}
108
109Clear Test File
110 [Documentation] Clear /tmp/esel
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600111 [Tags] Clear_Test_File
Gunnar Mills56b32892016-11-14 13:56:17 -0600112
Chris Austenb29d2e82016-06-07 12:25:35 -0500113 Execute Command rm /tmp/esel
114 Execute Command sync
115
116*** Keywords ***
117
George Keishing616c2782017-02-23 13:04:04 -0600118Create eSEL
119 [Documentation] Create an eSEL.
120 Open Connection And Log In
Sridevi Ramesh87be0642017-05-19 01:20:50 -0500121 ${Resv_id}= Run Inband IPMI Standard Command ${RESERVE_ID}
George Keishing616c2782017-02-23 13:04:04 -0600122 ${cmd}= Catenate
123 ... ${RAW_PREFIX}${Resv_id.strip().rsplit(' ', 1)[0]} ${RAW_SUFFIX}
Sridevi Ramesh87be0642017-05-19 01:20:50 -0500124 Run Inband IPMI Standard Command ${cmd}
125 Run Inband IPMI Standard Command ${RAW_SEL_COMMIT}
George Keishing616c2782017-02-23 13:04:04 -0600126
George Keishing616c2782017-02-23 13:04:04 -0600127Count eSEL Entries
128 [Documentation] Count eSEL entries logged.
129 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}
130 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
131 ${jsondata}= To JSON ${resp.content}
132 ${count}= Get Length ${jsondata["data"]}
133 [Return] ${count}
134
George Keishing616c2782017-02-23 13:04:04 -0600135Verify eSEL Entries
136 [Documentation] Verify eSEL entries logged.
Sweta Potthuri85c36c12017-07-03 05:30:44 -0500137 ${elog_entry}= Get URL List ${BMC_LOGGING_ENTRY}
138 ${resp}= OpenBMC Get Request ${elog_entry[0]}
George Keishing616c2782017-02-23 13:04:04 -0600139 # "data": {
140 # "AdditionalData": [
141 # "ESEL=00 00 df 00 00 00 00 20 00 04 12 35 6f aa 00 00 "
142 # ],
143 # "Id": 1,
144 # "Message": "org.open_power.Error.Host.Event.Event",
145 # "Severity": "xyz.openbmc_project.Logging.Entry.Level.Emergency",
146 # "Timestamp": 1485904869061
147 # }
Sweta Potthuri85c36c12017-07-03 05:30:44 -0500148 ${entry_id}= Read Attribute ${elog_entry[0]} message
149 Should Be Equal ${entry_id}
150 ... org.open_power.Error.Host.Event.Event
151 ${entry_id}= Read Attribute ${elog_entry[0]} Severity
152 Should Be Equal ${entry_id}
153 ... xyz.openbmc_project.Logging.Entry.Level.Error
George Keishing616c2782017-02-23 13:04:04 -0600154
155Test Cleanup On Exit
156 [Documentation] Cleanup test logs and connection.
George Keishing616c2782017-02-23 13:04:04 -0600157 Close All Connections
158
159
George Keishing505d5b42017-02-21 11:01:54 -0600160Restart Logging Service
161 [Documentation] Restart Logging to clear eSEL log.
162 ${MainPID} ${stderr}= Execute Command
163 ... systemctl restart ${LOGGING_SERVICE} return_stderr=True
164 Should Be Empty ${stderr}
165
166 Sleep 10s reason=Wait for service to restart properly.
167
Chris Austenb29d2e82016-06-07 12:25:35 -0500168Run IPMI Command Returned
Gunnar Mills38032802016-12-12 13:43:40 -0600169 [Arguments] ${args}
Sridevi Ramesh87be0642017-05-19 01:20:50 -0500170 ${output_1}= Execute Command /tmp/ipmitool -I dbus raw ${args}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600171 [Return] ${output_1}
Chris Austenb29d2e82016-06-07 12:25:35 -0500172
Sweta Potthurifc9cfd72017-05-10 11:58:13 -0500173Check IPMI OEMpartialadd Reject
174 [Arguments] ${args}
175 Login To OS Host ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
176 ${stdout} ${stderr} ${output_2}= Execute Command ipmitool raw ${args}
177 ... return_stdout=True return_stderr=True return_rc=True
Sridevi Ramesh87be0642017-05-19 01:20:50 -0500178 [Return] ${stderr}
Chris Austenb29d2e82016-06-07 12:25:35 -0500179
Sridevi Ramesh87be0642017-05-19 01:20:50 -0500180eSEL Test SetUp
181 [Documentation] Validates input parameters & check if HOST OS is up.
182
183 Should Not Be Empty
184 ... ${OS_HOST} msg=You must provide DNS name/IP of the OS host.
185 Should Not Be Empty
186 ... ${OS_USERNAME} msg=You must provide OS host user name.
187 Should Not Be Empty
188 ... ${OS_PASSWORD} msg=You must provide OS host user password.
189
Sweta Potthurib2c50f12017-06-28 03:53:30 -0500190 # Boot to OS.
191 REST Power On
192
Sridevi Ramesh87be0642017-05-19 01:20:50 -0500193 Login To OS Host ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
194 Open Connection And Log In
Sweta Potthurifc9cfd72017-05-10 11:58:13 -0500195
196Check IPMI OEMpartialadd Accept
197 [Arguments] ${args}
198 Login To OS Host ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
199 ${stdout} ${stderr} ${output_3}= Execute Command ipmitool raw ${args}
200 ... return_stdout=True return_stderr=True return_rc=True
201 Should Be Equal ${output_3} ${0} msg=${stderr}
202 [Return] ${stderr}
203