[yocto] RFC: automated runtime testing on real hardware

Paul Eggleton paul.eggleton at linux.intel.com
Tue Aug 27 04:11:56 PDT 2013


Hi Darren,

On Friday 23 August 2013 20:52:41 Darren Hart wrote:
> On Tue, 2013-08-13 at 12:00 +0100, Paul Eggleton wrote:
> > Automated testing on real hardware is something that a lot of us do
> > already, but the likelihood is that we've all been coming up with our own
> > solutions for this, so it would be really great if we could have a single
> > working solution to cover the generally applicable use cases. As a start
> > though it would be interesting to hear from people who have existing test
> > setups or who are generally interested in this area. I'd like to hear
> > feedback on the following:
> >  * What hardware setup do you use for automated testing?
> 
> I am starting to put something together using a customized 19" rack
> along the lines of those used by OSADL for their real-time farm:
> 
> https://www.osadl.org/Test-Rack.test-rack.0.html
> 
> This is a poor man's BladeCenter for embedded boards in that it provides
> a common interface to each board for the rack infrastructure. The board
> specific stuff sits on the trays themselves. The trays are easily
> removable to take a board to a desk for hands-on work.
> 
> A smart-switch, web-power strip, and serial concentrator feed into a
> "gateway server" where services like conmux glue it all together.

All makes sense.

> >  * Do you use any software to manage the hardware? Does this include any
> > existing open source tools?
> 
> conmux
> dnsmasq
> udev (for static usb uart naming)
> 
> The testrack has some early-stage tools to support it, but I'm still
> sorting those out and they aren't particularly robust for initial setup
> quite yet.

Having a standard way to set up the software side for this kind of 
infrastructure would certainly be worthwhile I think. One tricky part would 
perhaps be supporting variations of infrastructure hardware; doing some 
searches I haven't found a completely definitive open source project for 
controlling remotely accessible power strips for example, although there are a 
few scattered projects for doing that with varying levels of recent 
maintenance.

> >  * What would you like to see in a common framework to enable this kind of
> > testing?
> 
> To simplify the board management you allude to above, I believe a pull
> model, rather than a push, is a better architecture.
> 
> Your builders can complete builds and inject test records into a
> database with a priority. The boards sit in a
> boot/check-db/deploy-test-img/reboot-to-test-image/run-tests loop and
> push the results back to the database. They select tests based on
> priority, and the builder doesn't have to do anything at all to manage
> the boards. This also decouples the builder from the test
> infrastructure.

Interesting. This would present some challenges with the way the automated 
tests are currently defined; there's nothing unsolvable that precludes them 
being run outside of the build environment but they will have to be run 
somewhere that has python and any required modules installed, presumably an 
intermediate machine rather than the target machine itself (the latter would 
not be impossible; but if we did do it that way you couldn't test an image 
that didn't have python in it.)

We'd also need to come up with a standard definition for the results database 
and tools to generate reports out of it, but that's something that will likely 
be needed regardless of the model used for running tests, especially when it 
comes to recording the results from ptest.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list