[OE-core] [PATCH 1/1] oeqa/concurrencytest: fix for locating meta-selftest

richard.purdie at linuxfoundation.org richard.purdie at linuxfoundation.org
Thu Dec 20 12:19:32 UTC 2018


On Thu, 2018-12-20 at 18:43 +0800, Robert Yang wrote:
> 
> On 12/20/18 6:14 PM, Richard Purdie wrote:
> > On Wed, 2018-12-19 at 23:43 -0800, Robert Yang wrote:
> > Sorry, but this change just swaps one problem for another. meta-
> > selftest is part of OE-Core so its position relative to bitbake
> > isn'tfixed.
> 
> I always thought that bitbake must be in oe-core, otherwise it didn't
> work, but seemed that it was incorrect?

bitbake doesn't have a fixed location relative to oe-core. It may
expose bugs but people do put it in different locations.

> > How about we use
> > 
> > from oeqa.utils.commands import get_test_layer
> 
> Thanks, that is much better, Updated in the repo:
> 
> commit 9d03cf9e726232a9df544435cadfe520020ef631
> Author: Robert Yang <liezhi.yang at windriver.com>
> Date:   Tue Dec 18 18:38:00 2018 -0800
> 
>      oeqa/concurrencytest: fix for locating meta-selftest
> 
>      The previous code assumed builddir and meta-selftest are in the
> same dir, but
>      this isn't always true, builddir can be anywhere, use
> get_test_layer() to
>      locate meta-selftest can fix the problem.
> 
>      Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> 
> diff --git a/meta/lib/oeqa/core/utils/concurrencytest.py 
> b/meta/lib/oeqa/core/utils/concurrencytest.py
> index f050289..6c403ac 100644
> --- a/meta/lib/oeqa/core/utils/concurrencytest.py
> +++ b/meta/lib/oeqa/core/utils/concurrencytest.py
> @@ -25,6 +25,7 @@ from itertools import cycle
>   from subunit import ProtocolTestCase, TestProtocolClient
>   from subunit.test_results import AutoTimingTestResultDecorator
>   from testtools import ThreadsafeForwardingResult, iterate_tests
> +from oeqa.utils.commands import get_test_layer
> 
>   import bb.utils
>   import oe.path
> @@ -166,7 +167,7 @@ def fork_for_tests(concurrency_num, suite):
>                   if 'BUILDDIR' in os.environ:
>                       builddir = os.environ['BUILDDIR']
>                       newbuilddir = builddir + "-st-" + str(ourpid)
> -                    selftestdir = os.path.abspath(builddir +
> "/../meta-selftest")
> +                    selftestdir = get_test_layer()
>                       newselftestdir = newbuilddir + "/meta-selftest"
> 
>                       bb.utils.mkdirhier(newbuilddir)

This broke on our autobuilder:

https://autobuilder.yoctoproject.org/typhoon/#/builders/56/builds/61

It basically creates a "stampeding herd" of bitbake startups as if you
specify -j 40, it would do this 40 times nearly all at once and that
causes retry problems.

We need to move the call outside the for loop as the value doesn't
change.

Cheers,

Richard





More information about the Openembedded-core mailing list