<div dir="ltr"><div class="gmail_extra"><div class="gmail_extra">Paul, </div><div class="gmail_extra"><br></div><div><br></div><div class="gmail_quote">On Fri, Nov 29, 2013 at 4:58 PM, Paul Eggleton <span dir="ltr">&lt;<a href="mailto:paul.eggleton@linux.intel.com" target="_blank">paul.eggleton@linux.intel.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1hk" style="overflow:hidden">LAVA<br>
-----<br>
<br>
A number of people had suggested I look at LAVA [1]. It is split into different<br>
components for each function, some of which should be usable independently so<br>
you don&#39;t have to use the entire framework. Many of the components could be<br>
useful assuming they are independent, but in terms of being able to actually<br>
run our tests, the one that stands out as being most relevant is lava-<br>
dispatcher. This is the component that deploys images, and boots the hardware<br>
in order to run the tests.<br>
<br>
I&#39;ve looked at lava-dispatcher a couple of times; firstly at the code, and<br>
yesterday I looked at actually running it. Initially it looked very promising<br>
- reasonably licensed, written in Python, has some rudimentary support for OE<br>
images. However while looking at it I found the following:<br>
<br>
* It requires root to run, since it mounts the images temporarily and modifies<br>
the contents. We&#39;ve done quite a lot to avoid having to run as root in OE, so<br>
this is a hard sell.<br></div></blockquote><div><br></div><div>i have forwarded this email to the relevant people in Linaro working on LAVA. I hope to be able to bring more information about that, as I am not involved with LAVA, just a &#39;user&#39; of it. By &#39;root&#39; here, you mean on the server side, e.g. the LAVA instance, which will typically not be the &#39;builder&#39;, or do you want to couple build and test on the same &#39;server&#39;? LAVA jobs are generally submitted by a CI instance (Jenkins in our case). </div>

<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1hk" style="overflow:hidden">
<br>
* It expects images to be created by linaro-media-create, which in turn<br>
requires an &quot;hwpack&quot; [2]. The hwpack concept seems primarily geared to Ubuntu<br>
and distributions like it where you&#39;d have a generic base image upon which<br>
you&#39;d install some board-specific packages in order to make it work on the<br>
board. OE doesn&#39;t work that way - we just build images specific to the board,<br>
which makes this mechanism completely superfluous for our usage; but the tool<br>
appears to require it.<br></div></blockquote><div><br></div><div>that is no longer the case. we do have support for &#39;native&#39; OE images, and we&#39;ve had that for a while. That is what I am using for my project at Linaro. None of our projects/jobs deliverable are &#39;public&#39; at the moment, so you won&#39;t find them, but i can confirm that what we deploy for our jobs is the output of OE (e.g. what is in the deploy/image folder). hwpack was something mostly meant to make it simpler to work with Ubuntu and Android root FS, and is not suited for OE.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1hk" style="overflow:hidden">
<br>
* There is a general lack of abstraction and far too much hardcoding. For<br>
example, even at the most abstract level, the &quot;Target&quot; class (which is the<br>
base class for defining what to do for different types of targets) has hardcoded<br>
deploy_linaro / deploy_android functions:<br>
<br>
<a href="https://git.linaro.org/gitweb?p=lava/lava-dispatcher.git;a=blob;f=lava_dispatcher/device/target.py" target="_blank">https://git.linaro.org/gitweb?p=lava/lava-dispatcher.git;a=blob;f=lava_dispatcher/device/target.py</a><br>


<br>
* It&#39;s not clear to me how well it will work across different host<br>
distributions that we want to support; the main LAVA installer quits if it<br>
isn&#39;t run on Ubuntu. For convenience I happened to be using an Ubuntu VM, and<br>
I wasn&#39;t running the full installer so I avoided this check altogether. It<br>
just concerns me that such a check would even be there.<br></div></blockquote><div><br></div><div>I agree that this is a problem and we should fix. Our IT infrastructure is largely based on Ubuntu servers, but that should not affect what we create that much.</div>

<div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":1hk" style="overflow:hidden">
<br>
Of course, none of these problems are impossible to overcome, if we&#39;re<br>
prepared to put a significant amount of engineering into resolving them. In<br>
terms of enabling the Yocto Project QA team to test images on real hardware in<br>
the 1.6 development cycle however, I don&#39;t believe this is going to be<br>
deliverable.</div></blockquote></div><br></div><div class="gmail_extra"><br></div></div>