· 6 years ago · Nov 15, 2019, 11:00 PM
1<?xml version="1.0" encoding="UTF-8"?>
2<robot rpa="false" generated="20191115 22:50:05.166" generator="Robot 3.1a2.dev1 (Python 2.7.15 on linux2)">
3<suite source="/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/coreboot/flash_coreboot.robot" id="s1" name="Flash Coreboot">
4<kw type="setup" name="Prepare Test Suite" library="keywords">
5<doc>Keyword prepares Test Suite by importing specific
6platform configuration keywords and variables, opening
7SSH and serial connections, setting current platform to
8global variable and setting Device Under Test to start
9state. Keyword used in all [Suite Setup] sections.</doc>
10<kw name="Run Keyword If" library="BuiltIn">
11<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
12<arguments>
13<arg>'${config[:13]}' == 'apu1-mainline'</arg>
14<arg>Import Resource</arg>
15<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu1-mainline.robot</arg>
16<arg>ELSE IF</arg>
17<arg>'${config[:13]}' == 'apu2-mainline'</arg>
18<arg>Import Resource</arg>
19<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu2-mainline.robot</arg>
20<arg>ELSE IF</arg>
21<arg>'${config[:13]}' == 'apu3-mainline'</arg>
22<arg>Import Resource</arg>
23<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu3-mainline.robot</arg>
24<arg>ELSE IF</arg>
25<arg>'${config[:13]}' == 'apu4-mainline'</arg>
26<arg>Import Resource</arg>
27<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu4-mainline.robot</arg>
28<arg>ELSE IF</arg>
29<arg>'${config[:13]}' == 'apu5-mainline'</arg>
30<arg>Import Resource</arg>
31<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu5-mainline.robot</arg>
32<arg>ELSE IF</arg>
33<arg>'${config[:4]}' == 'apu1'</arg>
34<arg>Import Resource</arg>
35<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu1.robot</arg>
36<arg>ELSE IF</arg>
37<arg>'${config[:4]}' == 'apu2'</arg>
38<arg>Import Resource</arg>
39<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu2.robot</arg>
40<arg>ELSE IF</arg>
41<arg>'${config[:4]}' == 'apu3'</arg>
42<arg>Import Resource</arg>
43<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu3.robot</arg>
44<arg>ELSE IF</arg>
45<arg>'${config[:4]}' == 'apu4'</arg>
46<arg>Import Resource</arg>
47<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu4.robot</arg>
48<arg>ELSE IF</arg>
49<arg>'${config[:4]}' == 'apu5'</arg>
50<arg>Import Resource</arg>
51<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu5.robot</arg>
52<arg>ELSE IF</arg>
53<arg>'${config[:6]}' == 'LT1000'</arg>
54<arg>Import Resource</arg>
55<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/LT1000.robot</arg>
56<arg>ELSE IF</arg>
57<arg>'${config[:7]}' == 'solidpc'</arg>
58<arg>Import Resource</arg>
59<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/solidpc.robot</arg>
60<arg>ELSE IF</arg>
61<arg>'${config[:8]}' == 'mbt_2210'</arg>
62<arg>Import Resource</arg>
63<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/mbt_2210.robot</arg>
64<arg>ELSE IF</arg>
65<arg>'${config[:8]}' == 'mbt_4210'</arg>
66<arg>Import Resource</arg>
67<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/mbt_4210.robot</arg>
68<arg>ELSE IF</arg>
69<arg>'${config[:4]}' == 'fw2b'</arg>
70<arg>Import Resource</arg>
71<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/fw2b.robot</arg>
72<arg>ELSE IF</arg>
73<arg>'${config[:4]}' == 'fw4b'</arg>
74<arg>Import Resource</arg>
75<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/fw4b.robot</arg>
76<arg>ELSE IF</arg>
77<arg>'${config[:4]}' == 'fw6a'</arg>
78<arg>Import Resource</arg>
79<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/fw6a.robot</arg>
80<arg>ELSE IF</arg>
81<arg>'${config[:4]}' == 'fw6b'</arg>
82<arg>Import Resource</arg>
83<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/fw6b.robot</arg>
84<arg>ELSE IF</arg>
85<arg>'${config[:4]}' == 'fw6c'</arg>
86<arg>Import Resource</arg>
87<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/fw6c.robot</arg>
88<arg>ELSE IF</arg>
89<arg>'${config[:7]}' == 'crystal'</arg>
90<arg>Import Resource</arg>
91<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/vitro_crystal.robot</arg>
92<arg>ELSE IF</arg>
93<arg>'${config}' == 'pv30'</arg>
94<arg>Import Resource</arg>
95<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/dev-tests/operon/configs/pv30.robot</arg>
96<arg>ELSE IF</arg>
97<arg>'${config}' == 'yocto'</arg>
98<arg>Import Resource</arg>
99<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/dev-tests/operon/configs/yocto.robot</arg>
100<arg>ELSE IF</arg>
101<arg>'${config}' == 'raspbian'</arg>
102<arg>Import Resource</arg>
103<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/dev-tests/operon/configs/raspbian.robot</arg>
104</arguments>
105<kw name="Import Resource" library="BuiltIn">
106<doc>Imports a resource file with the given path.</doc>
107<arguments>
108<arg>/home/pietrushnic/storage/projects/2019/3mdeb/products/mdebNAF/open-firmware-rte/platform-configs/apu2-mainline.robot</arg>
109</arguments>
110<status status="PASS" endtime="20191115 22:50:05.517" starttime="20191115 22:50:05.511"></status>
111</kw>
112<status status="PASS" endtime="20191115 22:50:05.517" starttime="20191115 22:50:05.509"></status>
113</kw>
114<kw name="Open Connection And Log In" library="keywords">
115<doc>Open SSH connection and login to session. Setup RteCtrl
116REST API, serial connection and checkout used asset in
117SnipeIt</doc>
118<kw name="Check provided ip" library="keywords">
119<doc>Check the correctness of the provided ip address, if the
120address is not found in the RTE list, fail the test.</doc>
121<kw name="Set Variable" library="BuiltIn">
122<doc>Returns the given values which can then be assigned to a variables.</doc>
123<arguments>
124<arg>${0}</arg>
125</arguments>
126<assign>
127<var>${index}</var>
128</assign>
129<msg timestamp="20191115 22:50:05.518" level="INFO">${index} = 0</msg>
130<status status="PASS" endtime="20191115 22:50:05.518" starttime="20191115 22:50:05.517"></status>
131</kw>
132<kw type="for" name="${item} IN [ @{RTE_LIST} ]">
133<kw type="foritem" name="${item} = {u'ip': u'192.168.4.197', u'cpuid': u'02c000422fc6d77e', u'pcb_rev': u'0.5.3', u'platform': u'mDot'}">
134<kw name="Evaluate" library="BuiltIn">
135<doc>Evaluates the given expression in Python and returns the results.</doc>
136<arguments>
137<arg>${item}.get("ip")</arg>
138</arguments>
139<assign>
140<var>${result}</var>
141</assign>
142<msg timestamp="20191115 22:50:05.518" level="INFO">${result} = 192.168.4.197</msg>
143<status status="PASS" endtime="20191115 22:50:05.518" starttime="20191115 22:50:05.518"></status>
144</kw>
145<kw name="Return From Keyword If" library="BuiltIn">
146<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
147<arguments>
148<arg>'${result}'=='${rte_ip}'</arg>
149</arguments>
150<status status="PASS" endtime="20191115 22:50:05.519" starttime="20191115 22:50:05.519"></status>
151</kw>
152<kw name="Set Variable" library="BuiltIn">
153<doc>Returns the given values which can then be assigned to a variables.</doc>
154<arguments>
155<arg>${index + 1}</arg>
156</arguments>
157<assign>
158<var>${index}</var>
159</assign>
160<msg timestamp="20191115 22:50:05.519" level="INFO">${index} = 1</msg>
161<status status="PASS" endtime="20191115 22:50:05.519" starttime="20191115 22:50:05.519"></status>
162</kw>
163<status status="PASS" endtime="20191115 22:50:05.519" starttime="20191115 22:50:05.518"></status>
164</kw>
165<kw type="foritem" name="${item} = {u'ip': u'192.168.4.198', u'cpuid': u'02c00042df7b6fc2', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
166<kw name="Evaluate" library="BuiltIn">
167<doc>Evaluates the given expression in Python and returns the results.</doc>
168<arguments>
169<arg>${item}.get("ip")</arg>
170</arguments>
171<assign>
172<var>${result}</var>
173</assign>
174<msg timestamp="20191115 22:50:05.520" level="INFO">${result} = 192.168.4.198</msg>
175<status status="PASS" endtime="20191115 22:50:05.520" starttime="20191115 22:50:05.520"></status>
176</kw>
177<kw name="Return From Keyword If" library="BuiltIn">
178<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
179<arguments>
180<arg>'${result}'=='${rte_ip}'</arg>
181</arguments>
182<status status="PASS" endtime="20191115 22:50:05.520" starttime="20191115 22:50:05.520"></status>
183</kw>
184<kw name="Set Variable" library="BuiltIn">
185<doc>Returns the given values which can then be assigned to a variables.</doc>
186<arguments>
187<arg>${index + 1}</arg>
188</arguments>
189<assign>
190<var>${index}</var>
191</assign>
192<msg timestamp="20191115 22:50:05.521" level="INFO">${index} = 2</msg>
193<status status="PASS" endtime="20191115 22:50:05.521" starttime="20191115 22:50:05.521"></status>
194</kw>
195<status status="PASS" endtime="20191115 22:50:05.521" starttime="20191115 22:50:05.519"></status>
196</kw>
197<kw type="foritem" name="${item} = {u'ip': u'192.168.4.199', u'cpuid': u'02c00042b526c2b5', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
198<kw name="Evaluate" library="BuiltIn">
199<doc>Evaluates the given expression in Python and returns the results.</doc>
200<arguments>
201<arg>${item}.get("ip")</arg>
202</arguments>
203<assign>
204<var>${result}</var>
205</assign>
206<msg timestamp="20191115 22:50:05.522" level="INFO">${result} = 192.168.4.199</msg>
207<status status="PASS" endtime="20191115 22:50:05.522" starttime="20191115 22:50:05.522"></status>
208</kw>
209<kw name="Return From Keyword If" library="BuiltIn">
210<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
211<arguments>
212<arg>'${result}'=='${rte_ip}'</arg>
213</arguments>
214<status status="PASS" endtime="20191115 22:50:05.523" starttime="20191115 22:50:05.522"></status>
215</kw>
216<kw name="Set Variable" library="BuiltIn">
217<doc>Returns the given values which can then be assigned to a variables.</doc>
218<arguments>
219<arg>${index + 1}</arg>
220</arguments>
221<assign>
222<var>${index}</var>
223</assign>
224<msg timestamp="20191115 22:50:05.523" level="INFO">${index} = 3</msg>
225<status status="PASS" endtime="20191115 22:50:05.523" starttime="20191115 22:50:05.523"></status>
226</kw>
227<status status="PASS" endtime="20191115 22:50:05.523" starttime="20191115 22:50:05.522"></status>
228</kw>
229<kw type="foritem" name="${item} = {u'ip': u'192.168.4.202', u'cpuid': u'02c00042921d288f', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
230<kw name="Evaluate" library="BuiltIn">
231<doc>Evaluates the given expression in Python and returns the results.</doc>
232<arguments>
233<arg>${item}.get("ip")</arg>
234</arguments>
235<assign>
236<var>${result}</var>
237</assign>
238<msg timestamp="20191115 22:50:05.524" level="INFO">${result} = 192.168.4.202</msg>
239<status status="PASS" endtime="20191115 22:50:05.524" starttime="20191115 22:50:05.523"></status>
240</kw>
241<kw name="Return From Keyword If" library="BuiltIn">
242<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
243<arguments>
244<arg>'${result}'=='${rte_ip}'</arg>
245</arguments>
246<status status="PASS" endtime="20191115 22:50:05.524" starttime="20191115 22:50:05.524"></status>
247</kw>
248<kw name="Set Variable" library="BuiltIn">
249<doc>Returns the given values which can then be assigned to a variables.</doc>
250<arguments>
251<arg>${index + 1}</arg>
252</arguments>
253<assign>
254<var>${index}</var>
255</assign>
256<msg timestamp="20191115 22:50:05.525" level="INFO">${index} = 4</msg>
257<status status="PASS" endtime="20191115 22:50:05.525" starttime="20191115 22:50:05.524"></status>
258</kw>
259<status status="PASS" endtime="20191115 22:50:05.525" starttime="20191115 22:50:05.523"></status>
260</kw>
261<kw type="foritem" name="${item} = {u'ip': u'192.168.4.167', u'cpuid': u'02c00042d55c19d3', u'pcb_rev': u'0.5.3', u'platform': u'crystal'}">
262<kw name="Evaluate" library="BuiltIn">
263<doc>Evaluates the given expression in Python and returns the results.</doc>
264<arguments>
265<arg>${item}.get("ip")</arg>
266</arguments>
267<assign>
268<var>${result}</var>
269</assign>
270<msg timestamp="20191115 22:50:05.525" level="INFO">${result} = 192.168.4.167</msg>
271<status status="PASS" endtime="20191115 22:50:05.525" starttime="20191115 22:50:05.525"></status>
272</kw>
273<kw name="Return From Keyword If" library="BuiltIn">
274<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
275<arguments>
276<arg>'${result}'=='${rte_ip}'</arg>
277</arguments>
278<status status="PASS" endtime="20191115 22:50:05.526" starttime="20191115 22:50:05.526"></status>
279</kw>
280<kw name="Set Variable" library="BuiltIn">
281<doc>Returns the given values which can then be assigned to a variables.</doc>
282<arguments>
283<arg>${index + 1}</arg>
284</arguments>
285<assign>
286<var>${index}</var>
287</assign>
288<msg timestamp="20191115 22:50:05.527" level="INFO">${index} = 5</msg>
289<status status="PASS" endtime="20191115 22:50:05.527" starttime="20191115 22:50:05.526"></status>
290</kw>
291<status status="PASS" endtime="20191115 22:50:05.527" starttime="20191115 22:50:05.525"></status>
292</kw>
293<kw type="foritem" name="${item} = {u'ip': u'192.168.4.168', u'cpuid': u'02c000426978d2a7', u'pcb_rev': u'1.0.0', u'platform': u'dht-dev'}">
294<kw name="Evaluate" library="BuiltIn">
295<doc>Evaluates the given expression in Python and returns the results.</doc>
296<arguments>
297<arg>${item}.get("ip")</arg>
298</arguments>
299<assign>
300<var>${result}</var>
301</assign>
302<msg timestamp="20191115 22:50:05.527" level="INFO">${result} = 192.168.4.168</msg>
303<status status="PASS" endtime="20191115 22:50:05.527" starttime="20191115 22:50:05.527"></status>
304</kw>
305<kw name="Return From Keyword If" library="BuiltIn">
306<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
307<arguments>
308<arg>'${result}'=='${rte_ip}'</arg>
309</arguments>
310<status status="PASS" endtime="20191115 22:50:05.528" starttime="20191115 22:50:05.527"></status>
311</kw>
312<kw name="Set Variable" library="BuiltIn">
313<doc>Returns the given values which can then be assigned to a variables.</doc>
314<arguments>
315<arg>${index + 1}</arg>
316</arguments>
317<assign>
318<var>${index}</var>
319</assign>
320<msg timestamp="20191115 22:50:05.528" level="INFO">${index} = 6</msg>
321<status status="PASS" endtime="20191115 22:50:05.528" starttime="20191115 22:50:05.528"></status>
322</kw>
323<status status="PASS" endtime="20191115 22:50:05.528" starttime="20191115 22:50:05.527"></status>
324</kw>
325<kw type="foritem" name="${item} = {u'ip': u'192.168.4.169', u'cpuid': u'02c00042fdc96eda', u'pcb_rev': u'1.0.0', u'platform': u'dht-prod'}">
326<kw name="Evaluate" library="BuiltIn">
327<doc>Evaluates the given expression in Python and returns the results.</doc>
328<arguments>
329<arg>${item}.get("ip")</arg>
330</arguments>
331<assign>
332<var>${result}</var>
333</assign>
334<msg timestamp="20191115 22:50:05.529" level="INFO">${result} = 192.168.4.169</msg>
335<status status="PASS" endtime="20191115 22:50:05.529" starttime="20191115 22:50:05.528"></status>
336</kw>
337<kw name="Return From Keyword If" library="BuiltIn">
338<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
339<arguments>
340<arg>'${result}'=='${rte_ip}'</arg>
341</arguments>
342<status status="PASS" endtime="20191115 22:50:05.529" starttime="20191115 22:50:05.529"></status>
343</kw>
344<kw name="Set Variable" library="BuiltIn">
345<doc>Returns the given values which can then be assigned to a variables.</doc>
346<arguments>
347<arg>${index + 1}</arg>
348</arguments>
349<assign>
350<var>${index}</var>
351</assign>
352<msg timestamp="20191115 22:50:05.529" level="INFO">${index} = 7</msg>
353<status status="PASS" endtime="20191115 22:50:05.529" starttime="20191115 22:50:05.529"></status>
354</kw>
355<status status="PASS" endtime="20191115 22:50:05.530" starttime="20191115 22:50:05.528"></status>
356</kw>
357<kw type="foritem" name="${item} = {u'ip': u'192.168.10.171', u'cpuid': u'02c000429e34aeca', u'pcb_rev': u'0.5.3', u'platform': u'apu1', u'board-revision': u'd4'}">
358<kw name="Evaluate" library="BuiltIn">
359<doc>Evaluates the given expression in Python and returns the results.</doc>
360<arguments>
361<arg>${item}.get("ip")</arg>
362</arguments>
363<assign>
364<var>${result}</var>
365</assign>
366<msg timestamp="20191115 22:50:05.530" level="INFO">${result} = 192.168.10.171</msg>
367<status status="PASS" endtime="20191115 22:50:05.530" starttime="20191115 22:50:05.530"></status>
368</kw>
369<kw name="Return From Keyword If" library="BuiltIn">
370<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
371<arguments>
372<arg>'${result}'=='${rte_ip}'</arg>
373</arguments>
374<status status="PASS" endtime="20191115 22:50:05.531" starttime="20191115 22:50:05.530"></status>
375</kw>
376<kw name="Set Variable" library="BuiltIn">
377<doc>Returns the given values which can then be assigned to a variables.</doc>
378<arguments>
379<arg>${index + 1}</arg>
380</arguments>
381<assign>
382<var>${index}</var>
383</assign>
384<msg timestamp="20191115 22:50:05.531" level="INFO">${index} = 8</msg>
385<status status="PASS" endtime="20191115 22:50:05.531" starttime="20191115 22:50:05.531"></status>
386</kw>
387<status status="PASS" endtime="20191115 22:50:05.531" starttime="20191115 22:50:05.530"></status>
388</kw>
389<kw type="foritem" name="${item} = {u'ip': u'192.168.10.172', u'cpuid': u'02c000420c4ce851', u'pcb_rev': u'0.5.3', u'platform': u'apu2', u'board-revision': u'c4'}">
390<kw name="Evaluate" library="BuiltIn">
391<doc>Evaluates the given expression in Python and returns the results.</doc>
392<arguments>
393<arg>${item}.get("ip")</arg>
394</arguments>
395<assign>
396<var>${result}</var>
397</assign>
398<msg timestamp="20191115 22:50:05.532" level="INFO">${result} = 192.168.10.172</msg>
399<status status="PASS" endtime="20191115 22:50:05.532" starttime="20191115 22:50:05.531"></status>
400</kw>
401<kw name="Return From Keyword If" library="BuiltIn">
402<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
403<arguments>
404<arg>'${result}'=='${rte_ip}'</arg>
405</arguments>
406<msg timestamp="20191115 22:50:05.532" level="INFO">Returning from the enclosing user keyword.</msg>
407<status status="PASS" endtime="20191115 22:50:05.532" starttime="20191115 22:50:05.532"></status>
408</kw>
409<status status="PASS" endtime="20191115 22:50:05.532" starttime="20191115 22:50:05.531"></status>
410</kw>
411<status status="PASS" endtime="20191115 22:50:05.532" starttime="20191115 22:50:05.518"></status>
412</kw>
413<status status="PASS" endtime="20191115 22:50:05.532" starttime="20191115 22:50:05.517"></status>
414</kw>
415<kw name="Set Default Configuration" library="SSHLibrary">
416<doc>Update the default `configuration`.</doc>
417<arguments>
418<arg>timeout=60 seconds</arg>
419</arguments>
420<status status="PASS" endtime="20191115 22:50:05.533" starttime="20191115 22:50:05.533"></status>
421</kw>
422<kw name="Open Connection" library="SSHLibrary">
423<doc>Opens a new SSH connection to the given `host` and `port`.</doc>
424<arguments>
425<arg>${rte_ip}</arg>
426<arg>prompt=~#</arg>
427</arguments>
428<status status="PASS" endtime="20191115 22:50:05.533" starttime="20191115 22:50:05.533"></status>
429</kw>
430<kw name="Login" library="SSHLibrary">
431<doc>Logs into the SSH server with the given `username` and `password`.</doc>
432<arguments>
433<arg>${USERNAME}</arg>
434<arg>${PASSWORD}</arg>
435</arguments>
436<msg timestamp="20191115 22:50:05.534" level="INFO">Logging into '192.168.10.172:22' as 'root'.</msg>
437<msg timestamp="20191115 22:50:09.285" level="INFO">Read output: [0;1;34;94m___[0m [0;37m____[0m [0;37m_[0m [0;37m__[0;1;30;90m___[0m
438 [0;1;34;94m/[0m [0;1;34;94m_[0m [0;1;34;94m\[0m [0;1;34;94m_[0m [0;34m__[0m [0;34m__[0m [0;34m_[0m [0;34m_[0m [0;34m__[0m [0;37m__[0m [0;37m_[0m [0;37m___[0m [0;37m|[0m [0;37m_[0m [0;1;30;90m\(_)[0m [0;1;30;90m|__[0m [0;1;30;90m/___[0m [0;1;30;90m_[0m [0;1;34;94m__[0m [0;1;34;94m___[0m
439[0;34m|[0m [0;34m|[0m [0;34m|[0m [0;34m|[0m [0;34m'__/[0m [0;34m_`[0m [0;37m|[0m [0;37m'_[0m [0;37m\[0m [0;37m/[0m [0;37m_`[0m [0;37m|/[0m [0;37m_[0m [0;1;30;90m\[0m [0;1;30;90m|[0m [0;1;30;90m|_)[0m [0;1;30;90m|[0m [0;1;30;90m|[0m [0;1;30;90m/[0m [0;1;34;94m//[0m [0;1;34;94m_[0m [0;1;34;94m\[0m [0;1;34;94m'__/[0m [0;1;34;94m_[0m [0;1;34;94m\[0m
440[0;34m|[0m [0;34m|_|[0m [0;34m|[0m [0;37m|[0m [0;37m|[0m [0;37m(_|[0m [0;37m|[0m [0;37m|[0m [0;37m|[0m [0;37m|[0m [0;1;30;90m(_|[0m [0;1;30;90m|[0m [0;1;30;90m__/[0m [0;1;30;90m|[0m [0;1;30;90m__[0;1;34;94m/|[0m [0;1;34;94m|[0m [0;1;34;94m/[0m [0;1;34;94m/|[0m [0;1;34;94m__/[0m [0;34m|[0m [0;34m|[0m [0;34m(_)[0m [0;34m|[0m
441 [0;37m\___/|_|[0m [0;37m\__,_[0;1;30;90m|_|[0m [0;1;30;90m|_|\__,[0m [0;1;30;90m|\__[0;1;34;94m_|[0m [0;1;34;94m|_|[0m [0;1;34;94m|_|[0m [0;1;34;94m/__[0;34m__\___|_|[0m [0;34m\___/[0m
442 [0;1;30;90m|[0;1;34;94m___/[0m
443
444Welcome to [0;91mARMBIAN[0m 5.32.170919 nightly Ubuntu 16.04.3 LTS 4.11.12-sun8i
445System load: [0;92m 0.08 [0m0.02 0.01 Up time: [92m37 days[0m
446Memory usage: [0;92m 22 %[0m of 242MB Swap usage: [0;91m 15 %[0m of 127Mb IP: [92m192.168.10.172[0m
447CPU temp: [0;92m 40°C[0m
448Usage of /: [0;92m 30%[0m of 7.1G
449
450[[31m 0 security updates available, 162 updates total[0m: [1mapt upgrade[0m ]
451Last check: [92m2019-11-15 00:00[0m
452
453Last login: Fri Nov 15 22:33:57 2019 from 192.168.4.45
454
455root@orangepizero:~#</msg>
456<msg timestamp="20191115 22:50:09.286" level="INFO">/usr/local/lib/python2.7/site-packages/paramiko/kex_ecdh_nist.py:39: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
457 m.add_string(self.Q_C.public_numbers().encode_point())
458/usr/local/lib/python2.7/site-packages/paramiko/kex_ecdh_nist.py:96: CryptographyDeprecationWarning: Support for unsafe construction of public numbers from encoded data will be removed in a future version. Please use EllipticCurvePublicKey.from_encoded_point
459 self.curve, Q_S_bytes
460/usr/local/lib/python2.7/site-packages/paramiko/kex_ecdh_nist.py:111: CryptographyDeprecationWarning: encode_point has been deprecated on EllipticCurvePublicNumbers and will be removed in a future version. Please use EllipticCurvePublicKey.public_bytes to obtain both compressed and uncompressed point encoding.
461 hm.add_string(self.Q_C.public_numbers().encode_point())</msg>
462<status status="PASS" endtime="20191115 22:50:09.286" starttime="20191115 22:50:05.533"></status>
463</kw>
464<kw name="REST API Setup" library="rtectrl">
465<arguments>
466<arg>RteCtrl</arg>
467</arguments>
468<kw name="Create Session" library="RequestsLibrary">
469<doc>Create Session: create a HTTP session to a server</doc>
470<arguments>
471<arg>${session_handler}</arg>
472<arg>http://${rte_ip}:${http_port}</arg>
473<arg>verify=True</arg>
474</arguments>
475<msg timestamp="20191115 22:50:09.287" level="INFO">Creating Session using : alias=RteCtrl, url=http://192.168.10.172:8000, headers={}, cookies=None, auth=None, timeout=None, proxies=None, verify=True, debug=0 </msg>
476<status status="PASS" endtime="20191115 22:50:09.288" starttime="20191115 22:50:09.287"></status>
477</kw>
478<status status="PASS" endtime="20191115 22:50:09.288" starttime="20191115 22:50:09.286"></status>
479</kw>
480<kw name="Serial setup" library="keywords">
481<doc>Setup serial communication via telnet. Takes host and
482ser2net port as an arguments.</doc>
483<arguments>
484<arg>${rte_ip}</arg>
485<arg>${rte_s2n_port}</arg>
486</arguments>
487<kw name="Open Connection" library="Telnet">
488<doc>Opens a new Telnet connection to the given host and port.</doc>
489<arguments>
490<arg>${host}</arg>
491<arg>port=${s2n_port}</arg>
492<arg>newline=LF</arg>
493<arg>terminal_emulation=yes</arg>
494<arg>terminal_type=VT102</arg>
495<arg>window_size=80x24</arg>
496</arguments>
497<msg timestamp="20191115 22:50:09.289" level="INFO">Opening connection to 192.168.10.172:13541 with prompt: None</msg>
498<status status="PASS" endtime="20191115 22:50:09.290" starttime="20191115 22:50:09.288"></status>
499</kw>
500<kw name="Set Timeout" library="Telnet">
501<doc>Sets the timeout used for waiting output in the current connection.</doc>
502<arguments>
503<arg>15</arg>
504</arguments>
505<status status="PASS" endtime="20191115 22:50:09.291" starttime="20191115 22:50:09.290"></status>
506</kw>
507<status status="PASS" endtime="20191115 22:50:09.291" starttime="20191115 22:50:09.288"></status>
508</kw>
509<kw name="Return From Keyword If" library="BuiltIn">
510<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
511<arguments>
512<arg>'${snipeit}'=='no'</arg>
513</arguments>
514<status status="PASS" endtime="20191115 22:50:09.291" starttime="20191115 22:50:09.291"></status>
515</kw>
516<kw name="SnipeIt API Setup" library="snipeit-api">
517<arguments>
518<arg>SnipeItApi</arg>
519</arguments>
520<kw name="Verify hosts configuration" library="snipeit-api">
521<kw name="Run" library="OperatingSystem">
522<doc>Runs the given command in the system and returns the output.</doc>
523<arguments>
524<arg>cat /etc/hosts</arg>
525</arguments>
526<assign>
527<var>${output}</var>
528</assign>
529<msg timestamp="20191115 22:50:09.293" level="INFO">Running command 'cat /etc/hosts 2>&1'.</msg>
530<msg timestamp="20191115 22:50:09.296" level="INFO">${output} = 127.0.0.1 localhost
531# 127.0.0.1 3mdeb.local
532# 127.0.1.1 spyhill
533192.168.4.204 snipeit
534# 192.168.3.110 dockerhost
535
536# The following lines are desirable for IPv6 capable hosts
537::1 localhost ip6-l...</msg>
538<status status="PASS" endtime="20191115 22:50:09.296" starttime="20191115 22:50:09.292"></status>
539</kw>
540<kw name="Get Lines Containing String" library="String">
541<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
542<arguments>
543<arg>${output}</arg>
544<arg>snipeit</arg>
545</arguments>
546<assign>
547<var>${lines}</var>
548</assign>
549<msg timestamp="20191115 22:50:09.297" level="INFO">1 out of 10 lines matched</msg>
550<msg timestamp="20191115 22:50:09.297" level="INFO">${lines} = 192.168.4.204 snipeit</msg>
551<status status="PASS" endtime="20191115 22:50:09.297" starttime="20191115 22:50:09.296"></status>
552</kw>
553<kw name="Should Contain" library="BuiltIn">
554<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
555<arguments>
556<arg>${lines}</arg>
557<arg>${snipeit_ip}</arg>
558<arg>msg=File /etc/hosts should contain line:\n192.168.4.204${SPACE * 3}snipeit\n\n</arg>
559</arguments>
560<status status="PASS" endtime="20191115 22:50:09.298" starttime="20191115 22:50:09.297"></status>
561</kw>
562<status status="PASS" endtime="20191115 22:50:09.298" starttime="20191115 22:50:09.292"></status>
563</kw>
564<kw name="Create Session" library="RequestsLibrary">
565<doc>Create Session: create a HTTP session to a server</doc>
566<arguments>
567<arg>${session_handler}</arg>
568<arg>http://snipeit/</arg>
569</arguments>
570<msg timestamp="20191115 22:50:09.298" level="INFO">Creating Session using : alias=SnipeItApi, url=http://snipeit/, headers={}, cookies=None, auth=None, timeout=None, proxies=None, verify=False, debug=0 </msg>
571<status status="PASS" endtime="20191115 22:50:09.299" starttime="20191115 22:50:09.298"></status>
572</kw>
573<status status="PASS" endtime="20191115 22:50:09.299" starttime="20191115 22:50:09.292"></status>
574</kw>
575<kw name="SnipeIt Checkout" library="snipeit-api">
576<arguments>
577<arg>${rte_ip}</arg>
578</arguments>
579<kw name="Create Dictionary" library="BuiltIn">
580<doc>Creates and returns a dictionary based on the given ``items``.</doc>
581<arguments>
582<arg>Authorization=Bearer ${token}</arg>
583<arg>Content-Type=application/json</arg>
584</arguments>
585<assign>
586<var>${headers}</var>
587</assign>
588<msg timestamp="20191115 22:50:09.300" level="INFO">${headers} = {u'Authorization': u'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImFlMjg5NGZlYmYyNTMwZDRjZmMyZTJhYTE4YWUzZWYzNzcwMTBjNzVkMDE5YTM1YTlkZTBmMjJkYmU2OWY3ZDFhMjI1NzNkMzc2MjdiM2U5In0.eyJhdWQiOiIxIiwi...</msg>
589<status status="PASS" endtime="20191115 22:50:09.300" starttime="20191115 22:50:09.300"></status>
590</kw>
591<kw name="SnipeIt Get Id" library="snipeit-api">
592<arguments>
593<arg>${rte_ip}</arg>
594</arguments>
595<assign>
596<var>${id}</var>
597</assign>
598<kw name="Create Dictionary" library="BuiltIn">
599<doc>Creates and returns a dictionary based on the given ``items``.</doc>
600<arguments>
601<arg>Authorization=Bearer ${token}</arg>
602<arg>Content-Type=application/json</arg>
603</arguments>
604<assign>
605<var>${headers}</var>
606</assign>
607<msg timestamp="20191115 22:50:09.301" level="INFO">${headers} = {u'Authorization': u'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImFlMjg5NGZlYmYyNTMwZDRjZmMyZTJhYTE4YWUzZWYzNzcwMTBjNzVkMDE5YTM1YTlkZTBmMjJkYmU2OWY3ZDFhMjI1NzNkMzc2MjdiM2U5In0.eyJhdWQiOiIxIiwi...</msg>
608<status status="PASS" endtime="20191115 22:50:09.301" starttime="20191115 22:50:09.301"></status>
609</kw>
610<kw name="Get Request" library="RequestsLibrary">
611<doc>Send a GET request on the session object found using the
612given `alias`</doc>
613<arguments>
614<arg>SnipeItApi</arg>
615<arg>/api/v1/hardware?search\=${rte_ip}</arg>
616<arg>${headers}</arg>
617</arguments>
618<assign>
619<var>${response}</var>
620</assign>
621<msg timestamp="20191115 22:50:09.476" level="INFO">Get Request using : alias=SnipeItApi, uri=/api/v1/hardware?search=192.168.10.172, headers={u'Authorization': u'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImFlMjg5NGZlYmYyNTMwZDRjZmMyZTJhYTE4YWUzZWYzNzcwMTBjNzVkMDE5YTM1YTlkZTBmMjJkYmU2OWY3ZDFhMjI1NzNkMzc2MjdiM2U5In0.eyJhdWQiOiIxIiwianRpIjoiYWUyODk0ZmViZjI1MzBkNGNmYzJlMmFhMThhZTNlZjM3NzAxMGM3NWQwMTlhMzVhOWRlMGYyMmRiZTY5ZjdkMWEyMjU3M2QzNzYyN2IzZTkiLCJpYXQiOjE1NDU0MDIwNDQsIm5iZiI6MTU0NTQwMjA0NCwiZXhwIjoxNTc2OTM4MDQ0LCJzdWIiOiIxODkiLCJzY29wZXMiOltdfQ.MqKRwcmzNRqljx7Rj2QiRwPF2IGMOLGQEzNDjvSldb- vvVBvP9btg4_hW3gwjoqvWK3XtITLaam_RWkXuodUAix3K772EgIvm5yy0z_H4uIg3a6Npz7PCeyYhLv3Gykx4x7_Kmpbr5PeDr1IyDMWR57-82ZiLlahh-ji6IzrWUFF7B3LASmI_NsGaoNIAv6tjyfo_eo-CyO1pj9XRFE_xg9x-witsOO-UonbIDLNFVoS0HZfiYay4SrwBrMZT5sOoX4Juf5Oi2wLTx5VtfmzFH3Hd7kNzUT730hsUZeZ0nxWTnZO9IdPEi5rzd6UjJ-rGKkLYIx0c46bYjw1HEw5NoB_tOTwoL4VWd2y4LUMyErvgjZzvTzSG8xEFWUcvT_-D6jIJRJB81H2SJsEp0mL6xBC3TWtGuoU7Zm_1aO64hyKlU8POJN4VAcjJD63vD92NrMIETdm5LW14JV090WPX5u265AzItTgPa5CEDhskEs1nBH4_ilQovl2WKS6vHOyJUIRDuFobuWecAsEdiN5sHgEF2p9jUSpaz3x0n97daHt7pg8CcfbQEb4jkjlz2YblrXn39XyU2zla7DtvY6UEfCFCRIe9b3-GEx2vMMX2-j17_jTM2uOQroYHZWuY1i4hc-gcpbLfsSvyqi6RVtAo82tJ4VZb9bFqTyQDIrZGgU', u'Content-Type': u'application/json'} json=None</msg>
622<msg timestamp="20191115 22:50:09.476" level="INFO">${response} = <Response [200]></msg>
623<status status="PASS" endtime="20191115 22:50:09.477" starttime="20191115 22:50:09.301"></status>
624</kw>
625<kw name="Evaluate" library="BuiltIn">
626<doc>Evaluates the given expression in Python and returns the results.</doc>
627<arguments>
628<arg>int(${response.json()["total"]})</arg>
629</arguments>
630<assign>
631<var>${total}</var>
632</assign>
633<msg timestamp="20191115 22:50:09.479" level="INFO">${total} = 1</msg>
634<status status="PASS" endtime="20191115 22:50:09.479" starttime="20191115 22:50:09.477"></status>
635</kw>
636<kw name="Run Keyword If" library="BuiltIn">
637<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
638<arguments>
639<arg>${total} == 0</arg>
640<arg>Fail</arg>
641<arg>SnipeIT API: ${rte_ip} not found in the database.\nTo disable auto-reservation, add command flag: -v snipeit:no</arg>
642</arguments>
643<status status="PASS" endtime="20191115 22:50:09.480" starttime="20191115 22:50:09.479"></status>
644</kw>
645<kw name="Evaluate" library="BuiltIn">
646<doc>Evaluates the given expression in Python and returns the results.</doc>
647<arguments>
648<arg>int(${response.json()["rows"][0]["id"]})</arg>
649</arguments>
650<assign>
651<var>${result}</var>
652</assign>
653<msg timestamp="20191115 22:50:09.481" level="INFO">${result} = 213</msg>
654<status status="PASS" endtime="20191115 22:50:09.481" starttime="20191115 22:50:09.480"></status>
655</kw>
656<msg timestamp="20191115 22:50:09.482" level="INFO">${id} = 213</msg>
657<status status="PASS" endtime="20191115 22:50:09.482" starttime="20191115 22:50:09.300"></status>
658</kw>
659<kw name="Identify SnipeIt User By MAC" library="snipeit-api">
660<assign>
661<var>${user}</var>
662</assign>
663<kw name="Get MAC Address" library="snipeit-api">
664<assign>
665<var>${mac_regexp_number_list}</var>
666</assign>
667<kw name="Run" library="OperatingSystem">
668<doc>Runs the given command in the system and returns the output.</doc>
669<arguments>
670<arg>ifconfig</arg>
671</arguments>
672<assign>
673<var>${data}</var>
674</assign>
675<msg timestamp="20191115 22:50:09.484" level="INFO">Running command 'ifconfig 2>&1'.</msg>
676<msg timestamp="20191115 22:50:09.486" level="INFO">${data} = sh: 1: ifconfig: not found</msg>
677<status status="PASS" endtime="20191115 22:50:09.486" starttime="20191115 22:50:09.482"></status>
678</kw>
679<kw name="Get Regexp Matches" library="String">
680<doc>Returns a list of all non-overlapping matches in the given string.</doc>
681<arguments>
682<arg>${data}</arg>
683<arg>${mac_regexp}</arg>
684</arguments>
685<assign>
686<var>${mac_regexp_number_list}</var>
687</assign>
688<msg timestamp="20191115 22:50:09.487" level="INFO">${mac_regexp_number_list} = []</msg>
689<status status="PASS" endtime="20191115 22:50:09.487" starttime="20191115 22:50:09.486"></status>
690</kw>
691<msg timestamp="20191115 22:50:09.487" level="INFO">${mac_regexp_number_list} = []</msg>
692<status status="PASS" endtime="20191115 22:50:09.487" starttime="20191115 22:50:09.482"></status>
693</kw>
694<kw type="for" name="${mac} IN [ @{mac_regexp_number_list} ]">
695<status status="PASS" endtime="20191115 22:50:09.488" starttime="20191115 22:50:09.487"></status>
696</kw>
697<msg timestamp="20191115 22:50:09.488" level="INFO">${user} = None</msg>
698<status status="PASS" endtime="20191115 22:50:09.488" starttime="20191115 22:50:09.482"></status>
699</kw>
700<kw name="Run Keyword If" library="BuiltIn">
701<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
702<arguments>
703<arg>not ${user}</arg>
704<arg>Return From Keyword</arg>
705</arguments>
706<kw name="Return From Keyword" library="BuiltIn">
707<doc>Returns from the enclosing user keyword.</doc>
708<msg timestamp="20191115 22:50:09.489" level="INFO">Returning from the enclosing user keyword.</msg>
709<status status="PASS" endtime="20191115 22:50:09.489" starttime="20191115 22:50:09.489"></status>
710</kw>
711<status status="PASS" endtime="20191115 22:50:09.489" starttime="20191115 22:50:09.488"></status>
712</kw>
713<status status="PASS" endtime="20191115 22:50:09.489" starttime="20191115 22:50:09.299"></status>
714</kw>
715<status status="PASS" endtime="20191115 22:50:09.489" starttime="20191115 22:50:05.517"></status>
716</kw>
717<kw name="Get current RTE param" library="keywords">
718<doc>Return current RTE parameter value specified in the argument.</doc>
719<arguments>
720<arg>platform</arg>
721</arguments>
722<assign>
723<var>${platform}</var>
724</assign>
725<kw name="Get current RTE" library="keywords">
726<doc>Return RTE index from RTE list taken as an argument.
727Return -1 if CPU ID not found in variables.robot.</doc>
728<arguments>
729<arg>@{RTE_LIST}</arg>
730</arguments>
731<assign>
732<var>${idx}</var>
733</assign>
734<kw name="Execute Command" library="SSHLibrary">
735<doc>Executes `command` on the remote machine and returns its outputs.</doc>
736<arguments>
737<arg>cat /proc/cpuinfo |grep Serial|cut -d":" -f2|tr -d " "</arg>
738</arguments>
739<assign>
740<var>${cpuid}</var>
741</assign>
742<msg timestamp="20191115 22:50:09.490" level="INFO">Executing command 'cat /proc/cpuinfo |grep Serial|cut -d":" -f2|tr -d " "'.</msg>
743<msg timestamp="20191115 22:50:09.518" level="INFO">Command exited with return code 0.</msg>
744<msg timestamp="20191115 22:50:09.518" level="INFO">${cpuid} = 02c000420c4ce851</msg>
745<status status="PASS" endtime="20191115 22:50:09.518" starttime="20191115 22:50:09.490"></status>
746</kw>
747<kw name="Set Variable" library="BuiltIn">
748<doc>Returns the given values which can then be assigned to a variables.</doc>
749<arguments>
750<arg>${0}</arg>
751</arguments>
752<assign>
753<var>${index}</var>
754</assign>
755<msg timestamp="20191115 22:50:09.520" level="INFO">${index} = 0</msg>
756<status status="PASS" endtime="20191115 22:50:09.520" starttime="20191115 22:50:09.519"></status>
757</kw>
758<kw type="for" name="${item} IN [ @{rte_list} ]">
759<kw type="foritem" name="${item} = {u'ip': u'192.168.4.197', u'cpuid': u'02c000422fc6d77e', u'pcb_rev': u'0.5.3', u'platform': u'mDot'}">
760<kw name="Return From Keyword If" library="BuiltIn">
761<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
762<arguments>
763<arg>'${item.cpuid}' == '${cpuid}'</arg>
764<arg>${index}</arg>
765</arguments>
766<status status="PASS" endtime="20191115 22:50:09.523" starttime="20191115 22:50:09.521"></status>
767</kw>
768<kw name="Set Variable" library="BuiltIn">
769<doc>Returns the given values which can then be assigned to a variables.</doc>
770<arguments>
771<arg>${index + 1}</arg>
772</arguments>
773<assign>
774<var>${index}</var>
775</assign>
776<msg timestamp="20191115 22:50:09.525" level="INFO">${index} = 1</msg>
777<status status="PASS" endtime="20191115 22:50:09.525" starttime="20191115 22:50:09.524"></status>
778</kw>
779<status status="PASS" endtime="20191115 22:50:09.525" starttime="20191115 22:50:09.521"></status>
780</kw>
781<kw type="foritem" name="${item} = {u'ip': u'192.168.4.198', u'cpuid': u'02c00042df7b6fc2', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
782<kw name="Return From Keyword If" library="BuiltIn">
783<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
784<arguments>
785<arg>'${item.cpuid}' == '${cpuid}'</arg>
786<arg>${index}</arg>
787</arguments>
788<status status="PASS" endtime="20191115 22:50:09.527" starttime="20191115 22:50:09.526"></status>
789</kw>
790<kw name="Set Variable" library="BuiltIn">
791<doc>Returns the given values which can then be assigned to a variables.</doc>
792<arguments>
793<arg>${index + 1}</arg>
794</arguments>
795<assign>
796<var>${index}</var>
797</assign>
798<msg timestamp="20191115 22:50:09.528" level="INFO">${index} = 2</msg>
799<status status="PASS" endtime="20191115 22:50:09.528" starttime="20191115 22:50:09.527"></status>
800</kw>
801<status status="PASS" endtime="20191115 22:50:09.529" starttime="20191115 22:50:09.525"></status>
802</kw>
803<kw type="foritem" name="${item} = {u'ip': u'192.168.4.199', u'cpuid': u'02c00042b526c2b5', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
804<kw name="Return From Keyword If" library="BuiltIn">
805<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
806<arguments>
807<arg>'${item.cpuid}' == '${cpuid}'</arg>
808<arg>${index}</arg>
809</arguments>
810<status status="PASS" endtime="20191115 22:50:09.530" starttime="20191115 22:50:09.529"></status>
811</kw>
812<kw name="Set Variable" library="BuiltIn">
813<doc>Returns the given values which can then be assigned to a variables.</doc>
814<arguments>
815<arg>${index + 1}</arg>
816</arguments>
817<assign>
818<var>${index}</var>
819</assign>
820<msg timestamp="20191115 22:50:09.531" level="INFO">${index} = 3</msg>
821<status status="PASS" endtime="20191115 22:50:09.531" starttime="20191115 22:50:09.530"></status>
822</kw>
823<status status="PASS" endtime="20191115 22:50:09.531" starttime="20191115 22:50:09.529"></status>
824</kw>
825<kw type="foritem" name="${item} = {u'ip': u'192.168.4.202', u'cpuid': u'02c00042921d288f', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
826<kw name="Return From Keyword If" library="BuiltIn">
827<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
828<arguments>
829<arg>'${item.cpuid}' == '${cpuid}'</arg>
830<arg>${index}</arg>
831</arguments>
832<status status="PASS" endtime="20191115 22:50:09.532" starttime="20191115 22:50:09.531"></status>
833</kw>
834<kw name="Set Variable" library="BuiltIn">
835<doc>Returns the given values which can then be assigned to a variables.</doc>
836<arguments>
837<arg>${index + 1}</arg>
838</arguments>
839<assign>
840<var>${index}</var>
841</assign>
842<msg timestamp="20191115 22:50:09.532" level="INFO">${index} = 4</msg>
843<status status="PASS" endtime="20191115 22:50:09.532" starttime="20191115 22:50:09.532"></status>
844</kw>
845<status status="PASS" endtime="20191115 22:50:09.532" starttime="20191115 22:50:09.531"></status>
846</kw>
847<kw type="foritem" name="${item} = {u'ip': u'192.168.4.167', u'cpuid': u'02c00042d55c19d3', u'pcb_rev': u'0.5.3', u'platform': u'crystal'}">
848<kw name="Return From Keyword If" library="BuiltIn">
849<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
850<arguments>
851<arg>'${item.cpuid}' == '${cpuid}'</arg>
852<arg>${index}</arg>
853</arguments>
854<status status="PASS" endtime="20191115 22:50:09.533" starttime="20191115 22:50:09.533"></status>
855</kw>
856<kw name="Set Variable" library="BuiltIn">
857<doc>Returns the given values which can then be assigned to a variables.</doc>
858<arguments>
859<arg>${index + 1}</arg>
860</arguments>
861<assign>
862<var>${index}</var>
863</assign>
864<msg timestamp="20191115 22:50:09.534" level="INFO">${index} = 5</msg>
865<status status="PASS" endtime="20191115 22:50:09.534" starttime="20191115 22:50:09.533"></status>
866</kw>
867<status status="PASS" endtime="20191115 22:50:09.534" starttime="20191115 22:50:09.532"></status>
868</kw>
869<kw type="foritem" name="${item} = {u'ip': u'192.168.4.168', u'cpuid': u'02c000426978d2a7', u'pcb_rev': u'1.0.0', u'platform': u'dht-dev'}">
870<kw name="Return From Keyword If" library="BuiltIn">
871<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
872<arguments>
873<arg>'${item.cpuid}' == '${cpuid}'</arg>
874<arg>${index}</arg>
875</arguments>
876<status status="PASS" endtime="20191115 22:50:09.534" starttime="20191115 22:50:09.534"></status>
877</kw>
878<kw name="Set Variable" library="BuiltIn">
879<doc>Returns the given values which can then be assigned to a variables.</doc>
880<arguments>
881<arg>${index + 1}</arg>
882</arguments>
883<assign>
884<var>${index}</var>
885</assign>
886<msg timestamp="20191115 22:50:09.535" level="INFO">${index} = 6</msg>
887<status status="PASS" endtime="20191115 22:50:09.535" starttime="20191115 22:50:09.535"></status>
888</kw>
889<status status="PASS" endtime="20191115 22:50:09.535" starttime="20191115 22:50:09.534"></status>
890</kw>
891<kw type="foritem" name="${item} = {u'ip': u'192.168.4.169', u'cpuid': u'02c00042fdc96eda', u'pcb_rev': u'1.0.0', u'platform': u'dht-prod'}">
892<kw name="Return From Keyword If" library="BuiltIn">
893<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
894<arguments>
895<arg>'${item.cpuid}' == '${cpuid}'</arg>
896<arg>${index}</arg>
897</arguments>
898<status status="PASS" endtime="20191115 22:50:09.536" starttime="20191115 22:50:09.535"></status>
899</kw>
900<kw name="Set Variable" library="BuiltIn">
901<doc>Returns the given values which can then be assigned to a variables.</doc>
902<arguments>
903<arg>${index + 1}</arg>
904</arguments>
905<assign>
906<var>${index}</var>
907</assign>
908<msg timestamp="20191115 22:50:09.536" level="INFO">${index} = 7</msg>
909<status status="PASS" endtime="20191115 22:50:09.536" starttime="20191115 22:50:09.536"></status>
910</kw>
911<status status="PASS" endtime="20191115 22:50:09.536" starttime="20191115 22:50:09.535"></status>
912</kw>
913<kw type="foritem" name="${item} = {u'ip': u'192.168.10.171', u'cpuid': u'02c000429e34aeca', u'pcb_rev': u'0.5.3', u'platform': u'apu1', u'board-revision': u'd4'}">
914<kw name="Return From Keyword If" library="BuiltIn">
915<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
916<arguments>
917<arg>'${item.cpuid}' == '${cpuid}'</arg>
918<arg>${index}</arg>
919</arguments>
920<status status="PASS" endtime="20191115 22:50:09.537" starttime="20191115 22:50:09.537"></status>
921</kw>
922<kw name="Set Variable" library="BuiltIn">
923<doc>Returns the given values which can then be assigned to a variables.</doc>
924<arguments>
925<arg>${index + 1}</arg>
926</arguments>
927<assign>
928<var>${index}</var>
929</assign>
930<msg timestamp="20191115 22:50:09.538" level="INFO">${index} = 8</msg>
931<status status="PASS" endtime="20191115 22:50:09.538" starttime="20191115 22:50:09.537"></status>
932</kw>
933<status status="PASS" endtime="20191115 22:50:09.538" starttime="20191115 22:50:09.536"></status>
934</kw>
935<kw type="foritem" name="${item} = {u'ip': u'192.168.10.172', u'cpuid': u'02c000420c4ce851', u'pcb_rev': u'0.5.3', u'platform': u'apu2', u'board-revision': u'c4'}">
936<kw name="Return From Keyword If" library="BuiltIn">
937<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
938<arguments>
939<arg>'${item.cpuid}' == '${cpuid}'</arg>
940<arg>${index}</arg>
941</arguments>
942<msg timestamp="20191115 22:50:09.539" level="INFO">Returning from the enclosing user keyword.</msg>
943<status status="PASS" endtime="20191115 22:50:09.539" starttime="20191115 22:50:09.538"></status>
944</kw>
945<status status="PASS" endtime="20191115 22:50:09.539" starttime="20191115 22:50:09.538"></status>
946</kw>
947<status status="PASS" endtime="20191115 22:50:09.539" starttime="20191115 22:50:09.520"></status>
948</kw>
949<msg timestamp="20191115 22:50:09.539" level="INFO">${idx} = 8</msg>
950<status status="PASS" endtime="20191115 22:50:09.539" starttime="20191115 22:50:09.490"></status>
951</kw>
952<kw name="Should Not Be Equal" library="BuiltIn">
953<doc>Fails if the given objects are equal.</doc>
954<arguments>
955<arg>${idx}</arg>
956<arg>${-1}</arg>
957<arg>msg=RTE not found in hw-matrix</arg>
958</arguments>
959<status status="PASS" endtime="20191115 22:50:09.540" starttime="20191115 22:50:09.539"></status>
960</kw>
961<kw name="Get From List" library="Collections">
962<doc>Returns the value specified with an ``index`` from ``list``.</doc>
963<arguments>
964<arg>${RTE_LIST}</arg>
965<arg>${idx}</arg>
966</arguments>
967<assign>
968<var>&{rte}</var>
969</assign>
970<msg timestamp="20191115 22:50:09.540" level="INFO">&{rte} = { ip=192.168.10.172 | cpuid=02c000420c4ce851 | pcb_rev=0.5.3 | platform=apu2 | board-revision=c4 }</msg>
971<status status="PASS" endtime="20191115 22:50:09.540" starttime="20191115 22:50:09.540"></status>
972</kw>
973<msg timestamp="20191115 22:50:09.541" level="INFO">${platform} = apu2</msg>
974<status status="PASS" endtime="20191115 22:50:09.541" starttime="20191115 22:50:09.489"></status>
975</kw>
976<kw name="Set Global Variable" library="BuiltIn">
977<doc>Makes a variable available globally in all tests and suites.</doc>
978<arguments>
979<arg>${platform}</arg>
980</arguments>
981<msg timestamp="20191115 22:50:09.541" level="INFO">${platform} = apu2</msg>
982<status status="PASS" endtime="20191115 22:50:09.541" starttime="20191115 22:50:09.541"></status>
983</kw>
984<kw name="Get DUT To Start State" library="keywords">
985<doc>Clear telnet buffer and get Device Under Test to start
986state (RTE Relay On).</doc>
987<kw name="Read" library="Telnet">
988<doc>Reads everything that is currently available in the output.</doc>
989<msg timestamp="20191115 22:50:09.548" level="INFO">ser2net port 13541 device /dev/ttyS1 [115200 N81] (Debian GNU/Linux)</msg>
990<status status="PASS" endtime="20191115 22:50:09.548" starttime="20191115 22:50:09.542"></status>
991</kw>
992<kw name="Get Relay State" library="keywords">
993<doc>Return RTE relay state through REST API.</doc>
994<assign>
995<var>${result}</var>
996</assign>
997<kw name="RteCtrl Get GPIO State" library="rtectrl">
998<arguments>
999<arg>0</arg>
1000</arguments>
1001<assign>
1002<var>${state}</var>
1003</assign>
1004<kw name="Run Keyword If" library="BuiltIn">
1005<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1006<arguments>
1007<arg>int(${gpio_no}) != ${0} and (int(${gpio_no}) < ${13} or int(${gpio_no}) > ${19})</arg>
1008<arg>Fail</arg>
1009<arg>Wrong GPIO number</arg>
1010</arguments>
1011<status status="PASS" endtime="20191115 22:50:09.549" starttime="20191115 22:50:09.549"></status>
1012</kw>
1013<kw name="Create Dictionary" library="BuiltIn">
1014<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1015<arguments>
1016<arg>Content-Type=application/json</arg>
1017<arg>Accept=application/json</arg>
1018</arguments>
1019<assign>
1020<var>${headers}</var>
1021</assign>
1022<msg timestamp="20191115 22:50:09.550" level="INFO">${headers} = {u'Content-Type': u'application/json', u'Accept': u'application/json'}</msg>
1023<status status="PASS" endtime="20191115 22:50:09.550" starttime="20191115 22:50:09.550"></status>
1024</kw>
1025<kw name="Get Request" library="RequestsLibrary">
1026<doc>Send a GET request on the session object found using the
1027given `alias`</doc>
1028<arguments>
1029<arg>RteCtrl</arg>
1030<arg>/api/v1/gpio/${gpio_no}</arg>
1031<arg>${headers}</arg>
1032</arguments>
1033<assign>
1034<var>${relay}</var>
1035</assign>
1036<msg timestamp="20191115 22:50:09.557" level="INFO">Get Request using : alias=RteCtrl, uri=/api/v1/gpio/0, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'} json=None</msg>
1037<msg timestamp="20191115 22:50:09.557" level="INFO">${relay} = <Response [200]></msg>
1038<status status="PASS" endtime="20191115 22:50:09.557" starttime="20191115 22:50:09.550"></status>
1039</kw>
1040<kw name="Evaluate" library="BuiltIn">
1041<doc>Evaluates the given expression in Python and returns the results.</doc>
1042<arguments>
1043<arg>int((${relay.json()["state"]})%2)</arg>
1044</arguments>
1045<assign>
1046<var>${gpio_state}</var>
1047</assign>
1048<msg timestamp="20191115 22:50:09.558" level="INFO">${gpio_state} = 1</msg>
1049<status status="PASS" endtime="20191115 22:50:09.558" starttime="20191115 22:50:09.558"></status>
1050</kw>
1051<kw name="Set Variable If" library="BuiltIn">
1052<doc>Sets variable based on the given condition.</doc>
1053<arguments>
1054<arg>'${gpio_state}' == '1'</arg>
1055<arg>high</arg>
1056<arg>'${gpio_state}' == '0'</arg>
1057<arg>low</arg>
1058</arguments>
1059<assign>
1060<var>${state}</var>
1061</assign>
1062<msg timestamp="20191115 22:50:09.559" level="INFO">${state} = high</msg>
1063<status status="PASS" endtime="20191115 22:50:09.559" starttime="20191115 22:50:09.558"></status>
1064</kw>
1065<msg timestamp="20191115 22:50:09.559" level="INFO">${state} = high</msg>
1066<status status="PASS" endtime="20191115 22:50:09.559" starttime="20191115 22:50:09.549"></status>
1067</kw>
1068<msg timestamp="20191115 22:50:09.559" level="INFO">${result} = high</msg>
1069<status status="PASS" endtime="20191115 22:50:09.559" starttime="20191115 22:50:09.548"></status>
1070</kw>
1071<kw name="Run Keyword If" library="BuiltIn">
1072<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1073<arguments>
1074<arg>'${result}'=='low'</arg>
1075<arg>RteCtrl Relay</arg>
1076</arguments>
1077<status status="PASS" endtime="20191115 22:50:09.559" starttime="20191115 22:50:09.559"></status>
1078</kw>
1079<status status="PASS" endtime="20191115 22:50:09.560" starttime="20191115 22:50:09.541"></status>
1080</kw>
1081<status status="PASS" endtime="20191115 22:50:09.560" starttime="20191115 22:50:05.509"></status>
1082</kw>
1083<test id="s1-t1" name="FCO1.1 Flash firmware and verify">
1084<kw name="Run Keyword And Return Status" library="BuiltIn">
1085<doc>Runs the given keyword with given arguments and returns the status as a Boolean value.</doc>
1086<arguments>
1087<arg>Variable Should Exist</arg>
1088<arg>${fw_file}</arg>
1089</arguments>
1090<assign>
1091<var>${file_exists}</var>
1092</assign>
1093<kw name="Variable Should Exist" library="BuiltIn">
1094<doc>Fails unless the given variable exists within the current scope.</doc>
1095<arguments>
1096<arg>${fw_file}</arg>
1097</arguments>
1098<status status="PASS" endtime="20191115 22:50:09.561" starttime="20191115 22:50:09.561"></status>
1099</kw>
1100<msg timestamp="20191115 22:50:09.561" level="INFO">${file_exists} = True</msg>
1101<status status="PASS" endtime="20191115 22:50:09.561" starttime="20191115 22:50:09.560"></status>
1102</kw>
1103<kw name="Run Keyword If" library="BuiltIn">
1104<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1105<arguments>
1106<arg>not ${file_exists} and "mainline" in """${config}"""</arg>
1107<arg>Fail</arg>
1108<arg>Flashing from FTP is not supported on ${config}</arg>
1109</arguments>
1110<status status="PASS" endtime="20191115 22:50:09.562" starttime="20191115 22:50:09.561"></status>
1111</kw>
1112<kw name="Run Keyword If" library="BuiltIn">
1113<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1114<arguments>
1115<arg>not ${file_exists}</arg>
1116<arg>Prepare fw_file</arg>
1117</arguments>
1118<status status="PASS" endtime="20191115 22:50:09.562" starttime="20191115 22:50:09.562"></status>
1119</kw>
1120<kw name="Flash firmware" library="keywords">
1121<doc>Flash platform with firmware file specified in the
1122argument. Keyword fails if file size doesn't match target
1123chip size.</doc>
1124<arguments>
1125<arg>${fw_file}</arg>
1126</arguments>
1127<kw name="Run" library="OperatingSystem">
1128<doc>Runs the given command in the system and returns the output.</doc>
1129<arguments>
1130<arg>ls -l ${fw_file} | awk '{print $5}'</arg>
1131</arguments>
1132<assign>
1133<var>${file_size}</var>
1134</assign>
1135<msg timestamp="20191115 22:50:09.564" level="INFO">Running command 'ls -l ./coreboot.rom | awk '{print $5}' 2>&1'.</msg>
1136<msg timestamp="20191115 22:50:09.568" level="INFO">${file_size} = 8388608</msg>
1137<status status="PASS" endtime="20191115 22:50:09.568" starttime="20191115 22:50:09.563"></status>
1138</kw>
1139<kw name="Run Keyword If" library="BuiltIn">
1140<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1141<arguments>
1142<arg>'${file_size}'!='${flash_size}'</arg>
1143<arg>Fail</arg>
1144<arg>Image size doesn't match the flash chip's size!</arg>
1145</arguments>
1146<status status="PASS" endtime="20191115 22:50:09.569" starttime="20191115 22:50:09.568"></status>
1147</kw>
1148<kw name="Put File" library="SSHLibrary">
1149<doc>Uploads file(s) from the local machine to the remote machine.</doc>
1150<arguments>
1151<arg>${fw_file}</arg>
1152<arg>/tmp/coreboot.rom</arg>
1153</arguments>
1154<msg timestamp="20191115 22:50:09.590" level="INFO">[chan 2] Opened sftp connection (server version 3)</msg>
1155<msg timestamp="20191115 22:50:10.646" level="INFO">'./coreboot.rom' -> '/tmp/coreboot.rom'</msg>
1156<status status="PASS" endtime="20191115 22:50:10.646" starttime="20191115 22:50:09.569"></status>
1157</kw>
1158<kw name="Sleep" library="BuiltIn">
1159<doc>Pauses the test executed for the given time.</doc>
1160<arguments>
1161<arg>2s</arg>
1162</arguments>
1163<msg timestamp="20191115 22:50:12.647" level="INFO">Slept 2 seconds</msg>
1164<status status="PASS" endtime="20191115 22:50:12.648" starttime="20191115 22:50:10.647"></status>
1165</kw>
1166<kw name="Get current RTE param" library="keywords">
1167<doc>Return current RTE parameter value specified in the argument.</doc>
1168<arguments>
1169<arg>platform</arg>
1170</arguments>
1171<assign>
1172<var>${platform}</var>
1173</assign>
1174<kw name="Get current RTE" library="keywords">
1175<doc>Return RTE index from RTE list taken as an argument.
1176Return -1 if CPU ID not found in variables.robot.</doc>
1177<arguments>
1178<arg>@{RTE_LIST}</arg>
1179</arguments>
1180<assign>
1181<var>${idx}</var>
1182</assign>
1183<kw name="Execute Command" library="SSHLibrary">
1184<doc>Executes `command` on the remote machine and returns its outputs.</doc>
1185<arguments>
1186<arg>cat /proc/cpuinfo |grep Serial|cut -d":" -f2|tr -d " "</arg>
1187</arguments>
1188<assign>
1189<var>${cpuid}</var>
1190</assign>
1191<msg timestamp="20191115 22:50:12.651" level="INFO">Executing command 'cat /proc/cpuinfo |grep Serial|cut -d":" -f2|tr -d " "'.</msg>
1192<msg timestamp="20191115 22:50:12.688" level="INFO">Command exited with return code 0.</msg>
1193<msg timestamp="20191115 22:50:12.689" level="INFO">${cpuid} = 02c000420c4ce851</msg>
1194<status status="PASS" endtime="20191115 22:50:12.689" starttime="20191115 22:50:12.650"></status>
1195</kw>
1196<kw name="Set Variable" library="BuiltIn">
1197<doc>Returns the given values which can then be assigned to a variables.</doc>
1198<arguments>
1199<arg>${0}</arg>
1200</arguments>
1201<assign>
1202<var>${index}</var>
1203</assign>
1204<msg timestamp="20191115 22:50:12.690" level="INFO">${index} = 0</msg>
1205<status status="PASS" endtime="20191115 22:50:12.690" starttime="20191115 22:50:12.689"></status>
1206</kw>
1207<kw type="for" name="${item} IN [ @{rte_list} ]">
1208<kw type="foritem" name="${item} = {u'ip': u'192.168.4.197', u'cpuid': u'02c000422fc6d77e', u'pcb_rev': u'0.5.3', u'platform': u'mDot'}">
1209<kw name="Return From Keyword If" library="BuiltIn">
1210<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1211<arguments>
1212<arg>'${item.cpuid}' == '${cpuid}'</arg>
1213<arg>${index}</arg>
1214</arguments>
1215<status status="PASS" endtime="20191115 22:50:12.692" starttime="20191115 22:50:12.691"></status>
1216</kw>
1217<kw name="Set Variable" library="BuiltIn">
1218<doc>Returns the given values which can then be assigned to a variables.</doc>
1219<arguments>
1220<arg>${index + 1}</arg>
1221</arguments>
1222<assign>
1223<var>${index}</var>
1224</assign>
1225<msg timestamp="20191115 22:50:12.693" level="INFO">${index} = 1</msg>
1226<status status="PASS" endtime="20191115 22:50:12.693" starttime="20191115 22:50:12.692"></status>
1227</kw>
1228<status status="PASS" endtime="20191115 22:50:12.693" starttime="20191115 22:50:12.691"></status>
1229</kw>
1230<kw type="foritem" name="${item} = {u'ip': u'192.168.4.198', u'cpuid': u'02c00042df7b6fc2', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
1231<kw name="Return From Keyword If" library="BuiltIn">
1232<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1233<arguments>
1234<arg>'${item.cpuid}' == '${cpuid}'</arg>
1235<arg>${index}</arg>
1236</arguments>
1237<status status="PASS" endtime="20191115 22:50:12.694" starttime="20191115 22:50:12.693"></status>
1238</kw>
1239<kw name="Set Variable" library="BuiltIn">
1240<doc>Returns the given values which can then be assigned to a variables.</doc>
1241<arguments>
1242<arg>${index + 1}</arg>
1243</arguments>
1244<assign>
1245<var>${index}</var>
1246</assign>
1247<msg timestamp="20191115 22:50:12.695" level="INFO">${index} = 2</msg>
1248<status status="PASS" endtime="20191115 22:50:12.695" starttime="20191115 22:50:12.694"></status>
1249</kw>
1250<status status="PASS" endtime="20191115 22:50:12.695" starttime="20191115 22:50:12.693"></status>
1251</kw>
1252<kw type="foritem" name="${item} = {u'ip': u'192.168.4.199', u'cpuid': u'02c00042b526c2b5', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
1253<kw name="Return From Keyword If" library="BuiltIn">
1254<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1255<arguments>
1256<arg>'${item.cpuid}' == '${cpuid}'</arg>
1257<arg>${index}</arg>
1258</arguments>
1259<status status="PASS" endtime="20191115 22:50:12.696" starttime="20191115 22:50:12.695"></status>
1260</kw>
1261<kw name="Set Variable" library="BuiltIn">
1262<doc>Returns the given values which can then be assigned to a variables.</doc>
1263<arguments>
1264<arg>${index + 1}</arg>
1265</arguments>
1266<assign>
1267<var>${index}</var>
1268</assign>
1269<msg timestamp="20191115 22:50:12.697" level="INFO">${index} = 3</msg>
1270<status status="PASS" endtime="20191115 22:50:12.697" starttime="20191115 22:50:12.696"></status>
1271</kw>
1272<status status="PASS" endtime="20191115 22:50:12.697" starttime="20191115 22:50:12.695"></status>
1273</kw>
1274<kw type="foritem" name="${item} = {u'ip': u'192.168.4.202', u'cpuid': u'02c00042921d288f', u'pcb_rev': u'0.5.3', u'platform': u'lpn_gate'}">
1275<kw name="Return From Keyword If" library="BuiltIn">
1276<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1277<arguments>
1278<arg>'${item.cpuid}' == '${cpuid}'</arg>
1279<arg>${index}</arg>
1280</arguments>
1281<status status="PASS" endtime="20191115 22:50:12.698" starttime="20191115 22:50:12.697"></status>
1282</kw>
1283<kw name="Set Variable" library="BuiltIn">
1284<doc>Returns the given values which can then be assigned to a variables.</doc>
1285<arguments>
1286<arg>${index + 1}</arg>
1287</arguments>
1288<assign>
1289<var>${index}</var>
1290</assign>
1291<msg timestamp="20191115 22:50:12.698" level="INFO">${index} = 4</msg>
1292<status status="PASS" endtime="20191115 22:50:12.699" starttime="20191115 22:50:12.698"></status>
1293</kw>
1294<status status="PASS" endtime="20191115 22:50:12.699" starttime="20191115 22:50:12.697"></status>
1295</kw>
1296<kw type="foritem" name="${item} = {u'ip': u'192.168.4.167', u'cpuid': u'02c00042d55c19d3', u'pcb_rev': u'0.5.3', u'platform': u'crystal'}">
1297<kw name="Return From Keyword If" library="BuiltIn">
1298<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1299<arguments>
1300<arg>'${item.cpuid}' == '${cpuid}'</arg>
1301<arg>${index}</arg>
1302</arguments>
1303<status status="PASS" endtime="20191115 22:50:12.699" starttime="20191115 22:50:12.699"></status>
1304</kw>
1305<kw name="Set Variable" library="BuiltIn">
1306<doc>Returns the given values which can then be assigned to a variables.</doc>
1307<arguments>
1308<arg>${index + 1}</arg>
1309</arguments>
1310<assign>
1311<var>${index}</var>
1312</assign>
1313<msg timestamp="20191115 22:50:12.700" level="INFO">${index} = 5</msg>
1314<status status="PASS" endtime="20191115 22:50:12.700" starttime="20191115 22:50:12.700"></status>
1315</kw>
1316<status status="PASS" endtime="20191115 22:50:12.700" starttime="20191115 22:50:12.699"></status>
1317</kw>
1318<kw type="foritem" name="${item} = {u'ip': u'192.168.4.168', u'cpuid': u'02c000426978d2a7', u'pcb_rev': u'1.0.0', u'platform': u'dht-dev'}">
1319<kw name="Return From Keyword If" library="BuiltIn">
1320<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1321<arguments>
1322<arg>'${item.cpuid}' == '${cpuid}'</arg>
1323<arg>${index}</arg>
1324</arguments>
1325<status status="PASS" endtime="20191115 22:50:12.701" starttime="20191115 22:50:12.701"></status>
1326</kw>
1327<kw name="Set Variable" library="BuiltIn">
1328<doc>Returns the given values which can then be assigned to a variables.</doc>
1329<arguments>
1330<arg>${index + 1}</arg>
1331</arguments>
1332<assign>
1333<var>${index}</var>
1334</assign>
1335<msg timestamp="20191115 22:50:12.702" level="INFO">${index} = 6</msg>
1336<status status="PASS" endtime="20191115 22:50:12.702" starttime="20191115 22:50:12.701"></status>
1337</kw>
1338<status status="PASS" endtime="20191115 22:50:12.702" starttime="20191115 22:50:12.700"></status>
1339</kw>
1340<kw type="foritem" name="${item} = {u'ip': u'192.168.4.169', u'cpuid': u'02c00042fdc96eda', u'pcb_rev': u'1.0.0', u'platform': u'dht-prod'}">
1341<kw name="Return From Keyword If" library="BuiltIn">
1342<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1343<arguments>
1344<arg>'${item.cpuid}' == '${cpuid}'</arg>
1345<arg>${index}</arg>
1346</arguments>
1347<status status="PASS" endtime="20191115 22:50:12.703" starttime="20191115 22:50:12.702"></status>
1348</kw>
1349<kw name="Set Variable" library="BuiltIn">
1350<doc>Returns the given values which can then be assigned to a variables.</doc>
1351<arguments>
1352<arg>${index + 1}</arg>
1353</arguments>
1354<assign>
1355<var>${index}</var>
1356</assign>
1357<msg timestamp="20191115 22:50:12.704" level="INFO">${index} = 7</msg>
1358<status status="PASS" endtime="20191115 22:50:12.704" starttime="20191115 22:50:12.703"></status>
1359</kw>
1360<status status="PASS" endtime="20191115 22:50:12.704" starttime="20191115 22:50:12.702"></status>
1361</kw>
1362<kw type="foritem" name="${item} = {u'ip': u'192.168.10.171', u'cpuid': u'02c000429e34aeca', u'pcb_rev': u'0.5.3', u'platform': u'apu1', u'board-revision': u'd4'}">
1363<kw name="Return From Keyword If" library="BuiltIn">
1364<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1365<arguments>
1366<arg>'${item.cpuid}' == '${cpuid}'</arg>
1367<arg>${index}</arg>
1368</arguments>
1369<status status="PASS" endtime="20191115 22:50:12.706" starttime="20191115 22:50:12.705"></status>
1370</kw>
1371<kw name="Set Variable" library="BuiltIn">
1372<doc>Returns the given values which can then be assigned to a variables.</doc>
1373<arguments>
1374<arg>${index + 1}</arg>
1375</arguments>
1376<assign>
1377<var>${index}</var>
1378</assign>
1379<msg timestamp="20191115 22:50:12.706" level="INFO">${index} = 8</msg>
1380<status status="PASS" endtime="20191115 22:50:12.706" starttime="20191115 22:50:12.706"></status>
1381</kw>
1382<status status="PASS" endtime="20191115 22:50:12.706" starttime="20191115 22:50:12.704"></status>
1383</kw>
1384<kw type="foritem" name="${item} = {u'ip': u'192.168.10.172', u'cpuid': u'02c000420c4ce851', u'pcb_rev': u'0.5.3', u'platform': u'apu2', u'board-revision': u'c4'}">
1385<kw name="Return From Keyword If" library="BuiltIn">
1386<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1387<arguments>
1388<arg>'${item.cpuid}' == '${cpuid}'</arg>
1389<arg>${index}</arg>
1390</arguments>
1391<msg timestamp="20191115 22:50:12.707" level="INFO">Returning from the enclosing user keyword.</msg>
1392<status status="PASS" endtime="20191115 22:50:12.707" starttime="20191115 22:50:12.706"></status>
1393</kw>
1394<status status="PASS" endtime="20191115 22:50:12.707" starttime="20191115 22:50:12.706"></status>
1395</kw>
1396<status status="PASS" endtime="20191115 22:50:12.707" starttime="20191115 22:50:12.690"></status>
1397</kw>
1398<msg timestamp="20191115 22:50:12.707" level="INFO">${idx} = 8</msg>
1399<status status="PASS" endtime="20191115 22:50:12.707" starttime="20191115 22:50:12.649"></status>
1400</kw>
1401<kw name="Should Not Be Equal" library="BuiltIn">
1402<doc>Fails if the given objects are equal.</doc>
1403<arguments>
1404<arg>${idx}</arg>
1405<arg>${-1}</arg>
1406<arg>msg=RTE not found in hw-matrix</arg>
1407</arguments>
1408<status status="PASS" endtime="20191115 22:50:12.708" starttime="20191115 22:50:12.707"></status>
1409</kw>
1410<kw name="Get From List" library="Collections">
1411<doc>Returns the value specified with an ``index`` from ``list``.</doc>
1412<arguments>
1413<arg>${RTE_LIST}</arg>
1414<arg>${idx}</arg>
1415</arguments>
1416<assign>
1417<var>&{rte}</var>
1418</assign>
1419<msg timestamp="20191115 22:50:12.708" level="INFO">&{rte} = { ip=192.168.10.172 | cpuid=02c000420c4ce851 | pcb_rev=0.5.3 | platform=apu2 | board-revision=c4 }</msg>
1420<status status="PASS" endtime="20191115 22:50:12.708" starttime="20191115 22:50:12.708"></status>
1421</kw>
1422<msg timestamp="20191115 22:50:12.709" level="INFO">${platform} = apu2</msg>
1423<status status="PASS" endtime="20191115 22:50:12.709" starttime="20191115 22:50:12.648"></status>
1424</kw>
1425<kw name="Run Keyword If" library="BuiltIn">
1426<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1427<arguments>
1428<arg>'${platform[:4]}' == 'apu1'</arg>
1429<arg>Flash apu1</arg>
1430<arg>ELSE IF</arg>
1431<arg>'${platform[:3]}' == 'apu'</arg>
1432<arg>Flash apu</arg>
1433<arg>ELSE IF</arg>
1434<arg>'${platform[:6]}' == 'LT1000'</arg>
1435<arg>Flash LT1000</arg>
1436<arg>ELSE IF</arg>
1437<arg>'${platform[:7]}' == 'solidpc'</arg>
1438<arg>Flash solidpc</arg>
1439<arg>ELSE IF</arg>
1440<arg>'${platform[:3]}' == 'mbt'</arg>
1441<arg>Flash mbt</arg>
1442<arg>ELSE IF</arg>
1443<arg>'${platform[:4]}' == 'fw2b'</arg>
1444<arg>Flash fw2b with Internal</arg>
1445<arg>ELSE IF</arg>
1446<arg>'${platform[:4]}' == 'fw4b'</arg>
1447<arg>Flash fw4b with Internal</arg>
1448<arg>ELSE IF</arg>
1449<arg>'${platform[:4]}' == 'fw6a'</arg>
1450<arg>Flash fw6a with Internal</arg>
1451<arg>ELSE IF</arg>
1452<arg>'${platform[:4]}' == 'fw6b'</arg>
1453<arg>Flash fw6b with Internal</arg>
1454<arg>ELSE IF</arg>
1455<arg>'${platform[:4]}' == 'fw6c'</arg>
1456<arg>Flash fw6c with Internal</arg>
1457<arg>ELSE</arg>
1458<arg>Fail</arg>
1459<arg>Unknown platform ${platform}</arg>
1460</arguments>
1461<kw name="Flash apu" library="apu2-mainline">
1462<doc>Flash Device Under Test firmware, check flashing result
1463and set RTE relay to OFF state. Implementation must be
1464compatible with the theory of operation of a specific
1465platform.</doc>
1466<kw name="RteCtrl Power Off" library="rtectrl">
1467<kw name="Create Dictionary" library="BuiltIn">
1468<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1469<arguments>
1470<arg>Content-Type=application/json</arg>
1471<arg>Accept=application/json</arg>
1472</arguments>
1473<assign>
1474<var>${headers}</var>
1475</assign>
1476<msg timestamp="20191115 22:50:12.711" level="INFO">${headers} = {u'Content-Type': u'application/json', u'Accept': u'application/json'}</msg>
1477<status status="PASS" endtime="20191115 22:50:12.711" starttime="20191115 22:50:12.711"></status>
1478</kw>
1479<kw name="Create Dictionary" library="BuiltIn">
1480<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1481<arguments>
1482<arg>state=${1}</arg>
1483<arg>direction=out</arg>
1484<arg>time=${time}</arg>
1485</arguments>
1486<assign>
1487<var>${message}</var>
1488</assign>
1489<msg timestamp="20191115 22:50:12.712" level="INFO">${message} = {u'state': 1, u'direction': u'out', u'time': 5}</msg>
1490<status status="PASS" endtime="20191115 22:50:12.712" starttime="20191115 22:50:12.711"></status>
1491</kw>
1492<kw name="Patch Request" library="RequestsLibrary">
1493<doc>Send a PATCH request on the session object found using the
1494given `alias`</doc>
1495<arguments>
1496<arg>RteCtrl</arg>
1497<arg>/api/v1/gpio/9</arg>
1498<arg>${message}</arg>
1499<arg>headers=${headers}</arg>
1500</arguments>
1501<assign>
1502<var>${power}</var>
1503</assign>
1504<msg timestamp="20191115 22:50:12.721" level="INFO">Patch Request using : alias=RteCtrl, uri=/api/v1/gpio/9, data={"state": 1, "direction": "out", "time": 5}, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'}, files=None, allow_redirects=True </msg>
1505<msg timestamp="20191115 22:50:12.721" level="INFO">${power} = <Response [200]></msg>
1506<status status="PASS" endtime="20191115 22:50:12.721" starttime="20191115 22:50:12.712"></status>
1507</kw>
1508<kw name="Sleep" library="BuiltIn">
1509<doc>Pauses the test executed for the given time.</doc>
1510<arguments>
1511<arg>${time}s</arg>
1512</arguments>
1513<msg timestamp="20191115 22:50:17.722" level="INFO">Slept 5 seconds</msg>
1514<status status="PASS" endtime="20191115 22:50:17.722" starttime="20191115 22:50:12.721"></status>
1515</kw>
1516<status status="PASS" endtime="20191115 22:50:17.723" starttime="20191115 22:50:12.710"></status>
1517</kw>
1518<kw name="Sleep" library="BuiltIn">
1519<doc>Pauses the test executed for the given time.</doc>
1520<arguments>
1521<arg>2s</arg>
1522</arguments>
1523<msg timestamp="20191115 22:50:19.724" level="INFO">Slept 2 seconds</msg>
1524<status status="PASS" endtime="20191115 22:50:19.724" starttime="20191115 22:50:17.723"></status>
1525</kw>
1526<kw name="RteCtrl Set OC GPIO" library="rtectrl">
1527<arguments>
1528<arg>12</arg>
1529<arg>high-z</arg>
1530</arguments>
1531<kw name="Run Keyword If" library="BuiltIn">
1532<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1533<arguments>
1534<arg>int(${gpio_no}) < ${1} or int(${gpio_no}) > ${12}</arg>
1535<arg>Fail</arg>
1536<arg>Wrong GPIO number</arg>
1537</arguments>
1538<status status="PASS" endtime="20191115 22:50:19.727" starttime="20191115 22:50:19.726"></status>
1539</kw>
1540<kw name="Create Dictionary" library="BuiltIn">
1541<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1542<arguments>
1543<arg>Content-Type=application/json</arg>
1544<arg>Accept=application/json</arg>
1545</arguments>
1546<assign>
1547<var>${headers}</var>
1548</assign>
1549<msg timestamp="20191115 22:50:19.728" level="INFO">${headers} = {u'Content-Type': u'application/json', u'Accept': u'application/json'}</msg>
1550<status status="PASS" endtime="20191115 22:50:19.728" starttime="20191115 22:50:19.727"></status>
1551</kw>
1552<kw name="Set Variable If" library="BuiltIn">
1553<doc>Sets variable based on the given condition.</doc>
1554<arguments>
1555<arg>'${gpio_state}' == 'high-z'</arg>
1556<arg>${0}</arg>
1557<arg>'${gpio_state}' == 'low'</arg>
1558<arg>${1}</arg>
1559</arguments>
1560<assign>
1561<var>${state}</var>
1562</assign>
1563<msg timestamp="20191115 22:50:19.729" level="INFO">${state} = 0</msg>
1564<status status="PASS" endtime="20191115 22:50:19.729" starttime="20191115 22:50:19.728"></status>
1565</kw>
1566<kw name="Create Dictionary" library="BuiltIn">
1567<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1568<arguments>
1569<arg>state=${state}</arg>
1570<arg>direction=out</arg>
1571<arg>time=${0}</arg>
1572</arguments>
1573<assign>
1574<var>${message}</var>
1575</assign>
1576<msg timestamp="20191115 22:50:19.731" level="INFO">${message} = {u'state': 0, u'direction': u'out', u'time': 0}</msg>
1577<status status="PASS" endtime="20191115 22:50:19.731" starttime="20191115 22:50:19.730"></status>
1578</kw>
1579<kw name="Patch Request" library="RequestsLibrary">
1580<doc>Send a PATCH request on the session object found using the
1581given `alias`</doc>
1582<arguments>
1583<arg>RteCtrl</arg>
1584<arg>/api/v1/gpio/${gpio_no}</arg>
1585<arg>${message}</arg>
1586<arg>headers=${headers}</arg>
1587</arguments>
1588<assign>
1589<var>${response}</var>
1590</assign>
1591<msg timestamp="20191115 22:50:19.749" level="INFO">Patch Request using : alias=RteCtrl, uri=/api/v1/gpio/12, data={"state": 0, "direction": "out", "time": 0}, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'}, files=None, allow_redirects=True </msg>
1592<msg timestamp="20191115 22:50:19.749" level="INFO">${response} = <Response [200]></msg>
1593<status status="PASS" endtime="20191115 22:50:19.749" starttime="20191115 22:50:19.731"></status>
1594</kw>
1595<kw name="Should Be Equal As Integers" library="BuiltIn">
1596<doc>Fails if objects are unequal after converting them to integers.</doc>
1597<arguments>
1598<arg>${response.status_code}</arg>
1599<arg>200</arg>
1600</arguments>
1601<msg timestamp="20191115 22:50:19.750" level="INFO">Argument types are:
1602<type 'int'>
1603<type 'unicode'></msg>
1604<status status="PASS" endtime="20191115 22:50:19.750" starttime="20191115 22:50:19.749"></status>
1605</kw>
1606<status status="PASS" endtime="20191115 22:50:19.750" starttime="20191115 22:50:19.724"></status>
1607</kw>
1608<kw name="Execute Command" library="SSHLibrary">
1609<doc>Executes `command` on the remote machine and returns its outputs.</doc>
1610<arguments>
1611<arg>flashrom -f -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -w /tmp/coreboot.rom 2>&1</arg>
1612<arg>return_rc=True</arg>
1613</arguments>
1614<assign>
1615<var>${flash_result}</var>
1616<var>${rc}</var>
1617</assign>
1618<msg timestamp="20191115 22:50:19.751" level="INFO">Executing command 'flashrom -f -p linux_spi:dev=/dev/spidev1.0,spispeed=16000 -w /tmp/coreboot.rom 2>&1'.</msg>
1619<msg timestamp="20191115 22:50:25.350" level="INFO">Command exited with return code 0.</msg>
1620<msg timestamp="20191115 22:50:25.351" level="INFO">${flash_result} = flashrom v0.9.9-55-g75a2a79 on Linux 4.11.12-sun8i (armv7l)
1621flashrom is free software, get the source code at https://flashrom.org
1622
1623Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
1624Fo...</msg>
1625<msg timestamp="20191115 22:50:25.351" level="INFO">${rc} = 0</msg>
1626<status status="PASS" endtime="20191115 22:50:25.351" starttime="20191115 22:50:19.751"></status>
1627</kw>
1628<kw name="Run Keyword If" library="BuiltIn">
1629<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1630<arguments>
1631<arg>${rc} != 0</arg>
1632<arg>Log To Console</arg>
1633<arg>\nFlashrom returned status ${rc}\n</arg>
1634</arguments>
1635<status status="PASS" endtime="20191115 22:50:25.352" starttime="20191115 22:50:25.351"></status>
1636</kw>
1637<kw name="Return From Keyword If" library="BuiltIn">
1638<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1639<arguments>
1640<arg>${rc} == 3</arg>
1641</arguments>
1642<status status="PASS" endtime="20191115 22:50:25.353" starttime="20191115 22:50:25.353"></status>
1643</kw>
1644<kw name="Return From Keyword If" library="BuiltIn">
1645<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1646<arguments>
1647<arg>"Warning: Chip content is identical to the requested image." in """${flash_result}"""</arg>
1648</arguments>
1649<msg timestamp="20191115 22:50:25.354" level="INFO">Returning from the enclosing user keyword.</msg>
1650<status status="PASS" endtime="20191115 22:50:25.354" starttime="20191115 22:50:25.354"></status>
1651</kw>
1652<status status="PASS" endtime="20191115 22:50:25.354" starttime="20191115 22:50:12.710"></status>
1653</kw>
1654<status status="PASS" endtime="20191115 22:50:25.354" starttime="20191115 22:50:12.709"></status>
1655</kw>
1656<status status="PASS" endtime="20191115 22:50:25.354" starttime="20191115 22:50:09.562"></status>
1657</kw>
1658<kw name="Run Keyword If" library="BuiltIn">
1659<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1660<arguments>
1661<arg>not ${file_exists}</arg>
1662<arg>OperatingSystem.Run</arg>
1663<arg>rm ${fw_file}</arg>
1664</arguments>
1665<status status="PASS" endtime="20191115 22:50:25.355" starttime="20191115 22:50:25.355"></status>
1666</kw>
1667<kw name="Power Cycle On" library="keywords">
1668<doc>Clear telnet buffer and perform full power cycle with RTE
1669relay set to ON.</doc>
1670<kw name="Read" library="Telnet">
1671<doc>Reads everything that is currently available in the output.</doc>
1672<status status="PASS" endtime="20191115 22:50:25.365" starttime="20191115 22:50:25.356"></status>
1673</kw>
1674<kw name="RteCtrl Relay" library="rtectrl">
1675<assign>
1676<var>${result}</var>
1677</assign>
1678<kw name="Create Dictionary" library="BuiltIn">
1679<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1680<arguments>
1681<arg>Content-Type=application/json</arg>
1682<arg>Accept=application/json</arg>
1683</arguments>
1684<assign>
1685<var>${headers}</var>
1686</assign>
1687<msg timestamp="20191115 22:50:25.366" level="INFO">${headers} = {u'Content-Type': u'application/json', u'Accept': u'application/json'}</msg>
1688<status status="PASS" endtime="20191115 22:50:25.366" starttime="20191115 22:50:25.365"></status>
1689</kw>
1690<kw name="Get Request" library="RequestsLibrary">
1691<doc>Send a GET request on the session object found using the
1692given `alias`</doc>
1693<arguments>
1694<arg>RteCtrl</arg>
1695<arg>/api/v1/gpio/0</arg>
1696<arg>${headers}</arg>
1697</arguments>
1698<assign>
1699<var>${relay}</var>
1700</assign>
1701<msg timestamp="20191115 22:50:25.371" level="INFO">Get Request using : alias=RteCtrl, uri=/api/v1/gpio/0, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'} json=None</msg>
1702<msg timestamp="20191115 22:50:25.371" level="INFO">${relay} = <Response [200]></msg>
1703<status status="PASS" endtime="20191115 22:50:25.371" starttime="20191115 22:50:25.366"></status>
1704</kw>
1705<kw name="Evaluate" library="BuiltIn">
1706<doc>Evaluates the given expression in Python and returns the results.</doc>
1707<arguments>
1708<arg>int((${relay.json()["state"]}+1)%2)</arg>
1709</arguments>
1710<assign>
1711<var>${state}</var>
1712</assign>
1713<msg timestamp="20191115 22:50:25.372" level="INFO">${state} = 0</msg>
1714<status status="PASS" endtime="20191115 22:50:25.372" starttime="20191115 22:50:25.371"></status>
1715</kw>
1716<kw name="Create Dictionary" library="BuiltIn">
1717<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1718<arguments>
1719<arg>state=${state}</arg>
1720<arg>direction=out</arg>
1721<arg>time=${0}</arg>
1722</arguments>
1723<assign>
1724<var>${message}</var>
1725</assign>
1726<msg timestamp="20191115 22:50:25.373" level="INFO">${message} = {u'state': 0, u'direction': u'out', u'time': 0}</msg>
1727<status status="PASS" endtime="20191115 22:50:25.373" starttime="20191115 22:50:25.373"></status>
1728</kw>
1729<kw name="Patch Request" library="RequestsLibrary">
1730<doc>Send a PATCH request on the session object found using the
1731given `alias`</doc>
1732<arguments>
1733<arg>RteCtrl</arg>
1734<arg>/api/v1/gpio/0</arg>
1735<arg>${message}</arg>
1736<arg>headers=${headers}</arg>
1737</arguments>
1738<assign>
1739<var>${relay}</var>
1740</assign>
1741<msg timestamp="20191115 22:50:25.379" level="INFO">Patch Request using : alias=RteCtrl, uri=/api/v1/gpio/0, data={"state": 0, "direction": "out", "time": 0}, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'}, files=None, allow_redirects=True </msg>
1742<msg timestamp="20191115 22:50:25.379" level="INFO">${relay} = <Response [200]></msg>
1743<status status="PASS" endtime="20191115 22:50:25.379" starttime="20191115 22:50:25.373"></status>
1744</kw>
1745<msg timestamp="20191115 22:50:25.379" level="INFO">${result} = 0</msg>
1746<status status="PASS" endtime="20191115 22:50:25.379" starttime="20191115 22:50:25.365"></status>
1747</kw>
1748<kw name="Sleep" library="BuiltIn">
1749<doc>Pauses the test executed for the given time.</doc>
1750<arguments>
1751<arg>1s</arg>
1752</arguments>
1753<msg timestamp="20191115 22:50:26.380" level="INFO">Slept 1 second</msg>
1754<status status="PASS" endtime="20191115 22:50:26.380" starttime="20191115 22:50:25.379"></status>
1755</kw>
1756<kw name="Run Keyword If" library="BuiltIn">
1757<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
1758<arguments>
1759<arg>${result}==0</arg>
1760<arg>run keywords</arg>
1761<arg>Sleep</arg>
1762<arg>4s</arg>
1763<arg>AND</arg>
1764<arg>RteCtrl Relay</arg>
1765</arguments>
1766<kw name="Run Keywords" library="BuiltIn">
1767<doc>Executes all the given keywords in a sequence.</doc>
1768<arguments>
1769<arg>Sleep</arg>
1770<arg>4s</arg>
1771<arg>AND</arg>
1772<arg>RteCtrl Relay</arg>
1773</arguments>
1774<kw name="Sleep" library="BuiltIn">
1775<doc>Pauses the test executed for the given time.</doc>
1776<arguments>
1777<arg>4s</arg>
1778</arguments>
1779<msg timestamp="20191115 22:50:30.382" level="INFO">Slept 4 seconds</msg>
1780<status status="PASS" endtime="20191115 22:50:30.382" starttime="20191115 22:50:26.382"></status>
1781</kw>
1782<kw name="RteCtrl Relay" library="rtectrl">
1783<kw name="Create Dictionary" library="BuiltIn">
1784<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1785<arguments>
1786<arg>Content-Type=application/json</arg>
1787<arg>Accept=application/json</arg>
1788</arguments>
1789<assign>
1790<var>${headers}</var>
1791</assign>
1792<msg timestamp="20191115 22:50:30.384" level="INFO">${headers} = {u'Content-Type': u'application/json', u'Accept': u'application/json'}</msg>
1793<status status="PASS" endtime="20191115 22:50:30.384" starttime="20191115 22:50:30.384"></status>
1794</kw>
1795<kw name="Get Request" library="RequestsLibrary">
1796<doc>Send a GET request on the session object found using the
1797given `alias`</doc>
1798<arguments>
1799<arg>RteCtrl</arg>
1800<arg>/api/v1/gpio/0</arg>
1801<arg>${headers}</arg>
1802</arguments>
1803<assign>
1804<var>${relay}</var>
1805</assign>
1806<msg timestamp="20191115 22:50:30.393" level="INFO">Get Request using : alias=RteCtrl, uri=/api/v1/gpio/0, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'} json=None</msg>
1807<msg timestamp="20191115 22:50:30.393" level="INFO">${relay} = <Response [200]></msg>
1808<status status="PASS" endtime="20191115 22:50:30.393" starttime="20191115 22:50:30.385"></status>
1809</kw>
1810<kw name="Evaluate" library="BuiltIn">
1811<doc>Evaluates the given expression in Python and returns the results.</doc>
1812<arguments>
1813<arg>int((${relay.json()["state"]}+1)%2)</arg>
1814</arguments>
1815<assign>
1816<var>${state}</var>
1817</assign>
1818<msg timestamp="20191115 22:50:30.394" level="INFO">${state} = 1</msg>
1819<status status="PASS" endtime="20191115 22:50:30.395" starttime="20191115 22:50:30.394"></status>
1820</kw>
1821<kw name="Create Dictionary" library="BuiltIn">
1822<doc>Creates and returns a dictionary based on the given ``items``.</doc>
1823<arguments>
1824<arg>state=${state}</arg>
1825<arg>direction=out</arg>
1826<arg>time=${0}</arg>
1827</arguments>
1828<assign>
1829<var>${message}</var>
1830</assign>
1831<msg timestamp="20191115 22:50:30.396" level="INFO">${message} = {u'state': 1, u'direction': u'out', u'time': 0}</msg>
1832<status status="PASS" endtime="20191115 22:50:30.396" starttime="20191115 22:50:30.395"></status>
1833</kw>
1834<kw name="Patch Request" library="RequestsLibrary">
1835<doc>Send a PATCH request on the session object found using the
1836given `alias`</doc>
1837<arguments>
1838<arg>RteCtrl</arg>
1839<arg>/api/v1/gpio/0</arg>
1840<arg>${message}</arg>
1841<arg>headers=${headers}</arg>
1842</arguments>
1843<assign>
1844<var>${relay}</var>
1845</assign>
1846<msg timestamp="20191115 22:50:30.404" level="INFO">Patch Request using : alias=RteCtrl, uri=/api/v1/gpio/0, data={"state": 1, "direction": "out", "time": 0}, headers={u'Content-Type': u'application/json', u'Accept': u'application/json'}, files=None, allow_redirects=True </msg>
1847<msg timestamp="20191115 22:50:30.404" level="INFO">${relay} = <Response [200]></msg>
1848<status status="PASS" endtime="20191115 22:50:30.404" starttime="20191115 22:50:30.396"></status>
1849</kw>
1850<status status="PASS" endtime="20191115 22:50:30.405" starttime="20191115 22:50:30.383"></status>
1851</kw>
1852<status status="PASS" endtime="20191115 22:50:30.405" starttime="20191115 22:50:26.381"></status>
1853</kw>
1854<status status="PASS" endtime="20191115 22:50:30.405" starttime="20191115 22:50:26.380"></status>
1855</kw>
1856<status status="PASS" endtime="20191115 22:50:30.405" starttime="20191115 22:50:25.356"></status>
1857</kw>
1858<kw name="Check If iPXE Is Enabled" library="keywords">
1859<doc>Enable iPXE if network booting is disabled. Do nothing if
1860current config doesn't equal apuX.</doc>
1861<kw name="Return From Keyword If" library="BuiltIn">
1862<doc>Returns from the enclosing user keyword if ``condition`` is true.</doc>
1863<arguments>
1864<arg>not ${iPXE_config_support}</arg>
1865</arguments>
1866<msg timestamp="20191115 22:50:30.406" level="INFO">Returning from the enclosing user keyword.</msg>
1867<status status="PASS" endtime="20191115 22:50:30.406" starttime="20191115 22:50:30.406"></status>
1868</kw>
1869<status status="PASS" endtime="20191115 22:50:30.406" starttime="20191115 22:50:30.405"></status>
1870</kw>
1871<kw name="Get firmware version" library="keywords">
1872<doc>Return firmware version via Debian booted from iPXE.</doc>
1873<assign>
1874<var>${version}</var>
1875</assign>
1876<kw name="Boot Debian from iPXE" library="keywords">
1877<doc>Boot Debian from iPXE menu and login to system. Takes
1878PXE IP addres, http port number, ipxe filename, system
1879version and network port number as an arguments.</doc>
1880<arguments>
1881<arg>${pxe_ip}</arg>
1882<arg>${http_port}</arg>
1883<arg>${filename}</arg>
1884<arg>${debian_stable_ver}</arg>
1885</arguments>
1886<kw name="Enter iPXE" library="keywords">
1887<doc>Enter iPXE after device power cutoff.</doc>
1888<kw name="Enter SeaBIOS" library="keywords">
1889<doc>Enter SeaBIOS with key specified in platform-configs.</doc>
1890<kw name="Set Timeout" library="Telnet">
1891<doc>Sets the timeout used for waiting output in the current connection.</doc>
1892<arguments>
1893<arg>60s</arg>
1894</arguments>
1895<status status="PASS" endtime="20191115 22:50:30.409" starttime="20191115 22:50:30.409"></status>
1896</kw>
1897<kw name="Read Until" library="Telnet">
1898<doc>Reads output until ``expected`` text is encountered.</doc>
1899<arguments>
1900<arg>${seabios_string}</arg>
1901</arguments>
1902<msg timestamp="20191115 22:51:30.455" level="INFO">SeaBIOS (version rel-1.12.1-0-ga5cab58XHCI init on dev 00:10.0: regs @ 0xf7ea20s
1903XHCI extcap 0x1 @ 0xf7ea2500
1904XHCI protocol USB 3.00, 2 ports (offset 1), def 0
1905XHCI protocol USB 2.00, 2 ports (offset 3), def 10
1906XHCI extcap 0xa @ 0xf7ea2540
1907EHCI init on dev 00:13.0 (regs=0xf7ea6020)
1908WARNING - Timeout at i8042_flush:71!
1909ATA controller 1 at 4010/4020/0 (irq 0 dev 88)
1910ATA controller 2 at 4018/4024/0 (irq 0 dev 88)
1911Searching bootorder for: /pci@i0cf8/*@14,7
1912Found 1 lpt ports
1913Found 4 serial ports
1914Searching bootorder for: /rom@img/memtest
1915)
1916ata0-0: SanDisk SSD i110 16GB ATA-9 Hard-Disk (14566 MiBytes)
1917Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0
1918WARNING - Timeout at wait_bit:302!
1919Found sdcard at 0xf7ea7000: SD card SC16G 15193MiB
1920Initialized USB HUB (0 ports used)
1921All threads complete.
1922Scan for option roms
1923Running option rom at c000:0003
1924
1925
1926iPXE (http://ipxe.org) 01:00.0 C000 PCI2.10 PnP PMpmm call arg1=1
1927pmm call arg1=0
1928M+CFE4A52pmm call arg1=1
1929pmm call arg1=0
19300+CFD8A520 C000
1931
1932
1933
1934Running option rom at c100:0003
1935
1936
1937iPXE (http://ipxe.org) 02:00.0 C100 PCI2.10 PnP PMpmm call arg1=1
1938M CFE4A52pmm call arg1=1
19390 CFD8A520 C100
1940
1941
1942
1943Running option rom at c200:0003
1944
1945
1946iPXE (http://ipxe.org) 03:00.0 C200 PCI2.10 PnP PMpmm call arg1=1
1947M CFE4A52pmm call arg1=1
19480 CFD8A520 C200
1949 S0
1950Loading Linux 4.19.0-6-amd64 ...
1951Loading initial ramdisk ...
1952[ 0.065075] do_IRQ: 1.55 No irq handler for vector
1953[ 0.065075] do_IRQ: 2.55 No irq handler for vector
1954[ 0.065075] do_IRQ: 3.55 No irq handler for vector</msg>
1955<msg timestamp="20191115 22:51:30.456" level="FAIL">No match found for 'ESC' in 1 minute. Output:
1956SeaBIOS (version rel-1.12.1-0-ga5cab58XHCI init on dev 00:10.0: regs @ 0xf7ea20s
1957XHCI extcap 0x1 @ 0xf7ea2500
1958XHCI protocol USB 3.00, 2 ports (offset 1), def 0
1959XHCI protocol USB 2.00, 2 ports (offset 3), def 10
1960XHCI extcap 0xa @ 0xf7ea2540
1961EHCI init on dev 00:13.0 (regs=0xf7ea6020)
1962WARNING - Timeout at i8042_flush:71!
1963ATA controller 1 at 4010/4020/0 (irq 0 dev 88)
1964ATA controller 2 at 4018/4024/0 (irq 0 dev 88)
1965Searching bootorder for: /pci@i0cf8/*@14,7
1966Found 1 lpt ports
1967Found 4 serial ports
1968Searching bootorder for: /rom@img/memtest
1969)
1970ata0-0: SanDisk SSD i110 16GB ATA-9 Hard-Disk (14566 MiBytes)
1971Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0
1972WARNING - Timeout at wait_bit:302!
1973Found sdcard at 0xf7ea7000: SD card SC16G 15193MiB
1974Initialized USB HUB (0 ports used)
1975All threads complete.
1976Scan for option roms
1977Running option rom at c000:0003
1978
1979
1980iPXE (http://ipxe.org) 01:00.0 C000 PCI2.10 PnP PMpmm call arg1=1
1981pmm call arg1=0
1982M+CFE4A52pmm call arg1=1
1983pmm call arg1=0
19840+CFD8A520 C000
1985
1986
1987
1988Running option rom at c100:0003
1989
1990
1991iPXE (http://ipxe.org) 02:00.0 C100 PCI2.10 PnP PMpmm call arg1=1
1992M CFE4A52pmm call arg1=1
19930 CFD8A520 C100
1994
1995
1996
1997Running option rom at c200:0003
1998
1999
2000iPXE (http://ipxe.org) 03:00.0 C200 PCI2.10 PnP PMpmm call arg1=1
2001M CFE4A52pmm call arg1=1
20020 CFD8A520 C200
2003 S0
2004Loading Linux 4.19.0-6-amd64 ...
2005Loading initial ramdisk ...
2006[ 0.065075] do_IRQ: 1.55 No irq handler for vector
2007[ 0.065075] do_IRQ: 2.55 No irq handler for vector
2008[ 0.065075] do_IRQ: 3.55 No irq handler for vector</msg>
2009<status status="FAIL" endtime="20191115 22:51:30.456" starttime="20191115 22:50:30.409"></status>
2010</kw>
2011<status status="FAIL" endtime="20191115 22:51:30.456" starttime="20191115 22:50:30.408"></status>
2012</kw>
2013<status status="FAIL" endtime="20191115 22:51:30.456" starttime="20191115 22:50:30.408"></status>
2014</kw>
2015<status status="FAIL" endtime="20191115 22:51:30.457" starttime="20191115 22:50:30.407"></status>
2016</kw>
2017<status status="FAIL" endtime="20191115 22:51:30.457" starttime="20191115 22:50:30.407"></status>
2018</kw>
2019<status status="FAIL" endtime="20191115 22:51:30.457" critical="yes" starttime="20191115 22:50:09.560">No match found for 'ESC' in 1 minute. Output:
2020SeaBIOS (version rel-1.12.1-0-ga5cab58XHCI init on dev 00:10.0: regs @ 0xf7ea20s
2021XHCI extcap 0x1 @ 0xf7ea2500
2022XHCI protocol USB 3.00, 2 ports (offset 1), def 0
2023XHCI protocol USB 2.00, 2 ports (offset 3), def 10
2024XHCI extcap 0xa @ 0xf7ea2540
2025EHCI init on dev 00:13.0 (regs=0xf7ea6020)
2026WARNING - Timeout at i8042_flush:71!
2027ATA controller 1 at 4010/4020/0 (irq 0 dev 88)
2028ATA controller 2 at 4018/4024/0 (irq 0 dev 88)
2029Searching bootorder for: /pci@i0cf8/*@14,7
2030Found 1 lpt ports
2031Found 4 serial ports
2032Searching bootorder for: /rom@img/memtest
2033)
2034ata0-0: SanDisk SSD i110 16GB ATA-9 Hard-Disk (14566 MiBytes)
2035Searching bootorder for: /pci@i0cf8/*@11/drive@0/disk@0
2036WARNING - Timeout at wait_bit:302!
2037Found sdcard at 0xf7ea7000: SD card SC16G 15193MiB
2038 [ Message content over the limit has been removed. ]
2039
2040iPXE (http://ipxe.org) 02:00.0 C100 PCI2.10 PnP PMpmm call arg1=1
2041M CFE4A52pmm call arg1=1
20420 CFD8A520 C100
2043
2044
2045
2046Running option rom at c200:0003
2047
2048
2049iPXE (http://ipxe.org) 03:00.0 C200 PCI2.10 PnP PMpmm call arg1=1
2050M CFE4A52pmm call arg1=1
20510 CFD8A520 C200
2052 S0
2053Loading Linux 4.19.0-6-amd64 ...
2054Loading initial ramdisk ...
2055[ 0.065075] do_IRQ: 1.55 No irq handler for vector
2056[ 0.065075] do_IRQ: 2.55 No irq handler for vector
2057[ 0.065075] do_IRQ: 3.55 No irq handler for vector</status>
2058</test>
2059<kw type="teardown" name="Log Out And Close Connection" library="keywords">
2060<doc>Close all opened SSH, serial connections and checkin used
2061asset in SnipeIt.</doc>
2062<kw name="Close All Connections" library="SSHLibrary">
2063<doc>Closes all open connections.</doc>
2064<status status="PASS" endtime="20191115 22:51:30.467" starttime="20191115 22:51:30.459"></status>
2065</kw>
2066<kw name="Close All Connections" library="Telnet">
2067<doc>Closes all open connections and empties the connection cache.</doc>
2068<status status="PASS" endtime="20191115 22:51:30.468" starttime="20191115 22:51:30.467"></status>
2069</kw>
2070<kw name="Run Keyword If" library="BuiltIn">
2071<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
2072<arguments>
2073<arg>'${snipeit}'=='yes'</arg>
2074<arg>SnipeIt Checkin</arg>
2075<arg>${rte_ip}</arg>
2076</arguments>
2077<kw name="SnipeIt Checkin" library="snipeit-api">
2078<arguments>
2079<arg>${rte_ip}</arg>
2080</arguments>
2081<kw name="Run Keyword If" library="BuiltIn">
2082<doc>Runs the given keyword with the given arguments, if ``condition`` is true.</doc>
2083<arguments>
2084<arg>not ${checkout_status}</arg>
2085<arg>Return From Keyword</arg>
2086</arguments>
2087<kw name="Return From Keyword" library="BuiltIn">
2088<doc>Returns from the enclosing user keyword.</doc>
2089<msg timestamp="20191115 22:51:30.471" level="INFO">Returning from the enclosing user keyword.</msg>
2090<status status="PASS" endtime="20191115 22:51:30.471" starttime="20191115 22:51:30.470"></status>
2091</kw>
2092<status status="PASS" endtime="20191115 22:51:30.471" starttime="20191115 22:51:30.470"></status>
2093</kw>
2094<status status="PASS" endtime="20191115 22:51:30.471" starttime="20191115 22:51:30.469"></status>
2095</kw>
2096<status status="PASS" endtime="20191115 22:51:30.471" starttime="20191115 22:51:30.468"></status>
2097</kw>
2098<status status="PASS" endtime="20191115 22:51:30.471" starttime="20191115 22:51:30.458"></status>
2099</kw>
2100<status status="FAIL" endtime="20191115 22:51:30.471" starttime="20191115 22:50:05.167"></status>
2101</suite>
2102<statistics>
2103<total>
2104<stat fail="1" skip="0" pass="0">Critical Tests</stat>
2105<stat fail="1" skip="0" pass="0">All Tests</stat>
2106</total>
2107<tag>
2108</tag>
2109<suite>
2110<stat fail="1" skip="0" id="s1" name="Flash Coreboot" pass="0">Flash Coreboot</stat>
2111</suite>
2112</statistics>
2113<errors>
2114</errors>
2115</robot>