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

Robert Yang liezhi.yang at windriver.com
Fri Jul 27 03:18:50 UTC 2018



On 07/26/2018 07:11 PM, richard.purdie at linuxfoundation.org wrote:
> 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...

I've sent a patch for it:

testsdk.bbclass: check python module testools and subunit

// Robert

> 
> Cheers,
> 
> Richard
> 
> 
> 



More information about the Openembedded-core mailing list