All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Yang <liezhi.yang@windriver.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>,
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] oeqa/concurrencytest: fix for locating meta-selftest
Date: Thu, 20 Dec 2018 18:43:12 +0800	[thread overview]
Message-ID: <50ccbdb3-12b8-e381-5931-b52b5b5efdf5@windriver.com> (raw)
In-Reply-To: <53c222052c0da6a7db056bfa1318371c8b7db2dc.camel@linuxfoundation.org>



On 12/20/18 6:14 PM, Richard Purdie wrote:
> On Wed, 2018-12-19 at 23:43 -0800, Robert Yang wrote:
>> The previous code assumed builddir and meta-selftest are in the same
>> dir, but this isn't always true, builddir can be anywhere, use
>> bitbake to locate meta-selftest can fix the problem.
>>
>> The bb.fatal() doesn't work (no error message is print), so I use
>> raise Exception to print error messages.
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>>   meta/lib/oeqa/core/utils/concurrencytest.py | 16 +++++++++++++++-
>>   1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/lib/oeqa/core/utils/concurrencytest.py
>> b/meta/lib/oeqa/core/utils/concurrencytest.py
>> index f050289..ef1698c 100644
>> --- a/meta/lib/oeqa/core/utils/concurrencytest.py
>> +++ b/meta/lib/oeqa/core/utils/concurrencytest.py
>> @@ -139,6 +139,20 @@ def removebuilddir(d):
>>           delay = delay - 1
>>       bb.utils.prunedir(d)
>>   
>> +def get_selftestdir():
>> +    """
>> +    Use 'which bitbake' to locate meta-selftest dir
>> +    """
>> +    cmd = 'which bitbake'
>> +    retval, bitbake_path = subprocess.getstatusoutput(cmd)
>> +    if retval != 0:
>> +        raise Exception('Failed to run %s' % cmd)
>> +    topdir = os.path.realpath('%s/../../' %
>> os.path.dirname(bitbake_path))
>> +    selftestdir = os.path.join(topdir, 'meta-selftest')
>> +    if not os.path.exists(selftestdir):
>> +        raise Exception('Failed to run %s' % cmd)
>> +    return selftestdir
>> +
>>   def fork_for_tests(concurrency_num, suite):
>>       result = []
>>       test_blocks = partition_tests(suite, concurrency_num)
>> @@ -166,7 +180,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_selftestdir()
>>                       newselftestdir = newbuilddir + "/meta-selftest"
> 
> Sorry, but this change just swaps one problem for another. meta-
> selftest is part of OE-Core so its position relative to bitbake isn't
> fixed.

I always thought that bitbake must be in oe-core, otherwise it didn't work,
but seemed that it was incorrect?

> 
> 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@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@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)

// Robert

> 
> ?
> 
> Cheers,
> 
> Richard
> 
> 


  reply	other threads:[~2018-12-20 10:38 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-20  7:43 [PATCH 0/1] oeqa/concurrencytest: fix for locating meta-selftest Robert Yang
2018-12-20  7:43 ` [PATCH 1/1] " Robert Yang
2018-12-20 10:14   ` Richard Purdie
2018-12-20 10:43     ` Robert Yang [this message]
2018-12-20 12:19       ` richard.purdie
2018-12-20 15:06         ` Richard Purdie
2018-12-21  6:46           ` Yang, Liezhi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50ccbdb3-12b8-e381-5931-b52b5b5efdf5@windriver.com \
    --to=liezhi.yang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.