[OE-core] [PATCH 1/6] oeqa: Add selftest parallelisation support

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Thu Jul 26 11:11:56 UTC 2018


On Thu, 2018-07-26 at 17:37 +0800, ChenQi wrote:
> On 07/26/2018 05:18 PM, Robert Yang wrote:
> > 
> > 
> > On 07/26/2018 05:10 PM, richard.purdie at linuxfoundation.org wrote:
> > > On Thu, 2018-07-26 at 14:00 +0800, Robert Yang wrote:
> > > > 
> > > > On 07/26/2018 11:03 AM, Robert Yang wrote:
> > > > > Hi RP,
> > > > > 
> > > > > On 07/17/2018 12:33 AM, Richard Purdie wrote:
> > > > > > This allows oe-selftest to take a -j option which specifies
> > > > > > how
> > > > > > much test
> > > > > > parallelisation to use. Currently this is "module" based
> > > > > > with
> > > > > > each module
> > > > > > being split and run in a separate build directory. Further
> > > > > > splitting could
> > > > > > be done but this seems a good compromise between test setup
> > > > > > and
> > > > > > parallelism.
> > > > > > 
> > > > > > You need python-testtools and python-subunit installed to
> > > > > > use
> > > > > > this but only
> > > > > > when the -j option is specified.
> > > > > 
> > > > > Should we add python-testtools-native and python-subunit-
> > > > > native,
> > > > > please ?
> > > > > 
> > > > > And add them to TESTIMAGEDEPENDS ?
> > > > 
> > > > After talked with Qi, this won't work since we use host's
> > > > python3. So
> > > > we need install them on host, or use buildtools-tarball.
> > > 
> > > Correct, this is why the modules are only loaded if you use the
> > > -j
> > > option, so the dependency is only needed if you use bitbake -j.
> > > That at
> > >   least minimises the cross-section of users affected.
> > 
> > There might be a bug since we don't use -j in our build farm, but
> > I 
> > see the no
> > testtools module error, I will do more investigations on it.
> > 
> 
> In testsdk.bbclass, we have:
> processes = d.getVar("TESTIMAGE_NUMBER_THREADS") or 
> d.getVar("BB_NUMBER_THREADS")
> ....
>          if processes:
>              result = tc.runTests(processes=int(processes))
>          else:
>              result = tc.runTests()
> 
> processes will not be None even if we don't set 
> TESTIMAGE_NUMBER_THREADS. I think this is not expected.

Ah, yes, that was not intentional. We should perhaps put a:

try: 
    import testools, subunit
except ImportError: 
    xxx

in there...

Cheers,

Richard





More information about the Openembedded-core mailing list