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
>
>
next prev parent 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.