[OE-core] [PATCH 1/1] oeqa/concurrencytest: fix for locating meta-selftest
Robert Yang
liezhi.yang at windriver.com
Thu Dec 20 07:43:21 UTC 2018
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 at 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"
bb.utils.mkdirhier(newbuilddir)
--
2.10.2
More information about the Openembedded-core
mailing list