mirror of
https://git.yoctoproject.org/poky
synced 2026-02-11 03:03:02 +01:00
testsdk: Enable multiprocess execution
This uses the new concurrenttest code to enable parallel test execution if specified. (From OE-Core rev: 07d19fb3adab7a8d83ba83d9a16395f70d7b7a47) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -42,6 +42,8 @@ def testsdk_main(d):
|
||||
host_pkg_manifest = OESDKTestContextExecutor._load_manifest(
|
||||
d.expand("${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"))
|
||||
|
||||
processes = d.getVar("TESTIMAGE_NUMBER_THREADS") or d.getVar("BB_NUMBER_THREADS")
|
||||
|
||||
sdk_dir = d.expand("${WORKDIR}/testimage-sdk/")
|
||||
bb.utils.remove(sdk_dir, True)
|
||||
bb.utils.mkdirhier(sdk_dir)
|
||||
@@ -65,7 +67,10 @@ def testsdk_main(d):
|
||||
import traceback
|
||||
bb.fatal("Loading tests failed:\n%s" % traceback.format_exc())
|
||||
|
||||
result = tc.runTests()
|
||||
if processes:
|
||||
result = tc.runTests(processes=int(processes))
|
||||
else:
|
||||
result = tc.runTests()
|
||||
|
||||
component = "%s %s" % (pn, OESDKTestContextExecutor.name)
|
||||
context_msg = "%s:%s" % (os.path.basename(tcname), os.path.basename(sdk_env))
|
||||
|
||||
@@ -65,6 +65,9 @@ class OESDKTestContextExecutor(OETestContextExecutor):
|
||||
sdk_rgroup.add_argument('--sdk-dir', required=False, action='store',
|
||||
help='sdk installed directory')
|
||||
|
||||
self.parser.add_argument('-j', '--num-processes', dest='processes', action='store',
|
||||
type=int, help="number of processes to execute in parallel with")
|
||||
|
||||
@staticmethod
|
||||
def _load_manifest(manifest):
|
||||
pkg_manifest = {}
|
||||
@@ -85,6 +88,7 @@ class OESDKTestContextExecutor(OETestContextExecutor):
|
||||
OESDKTestContextExecutor._load_manifest(args.target_manifest)
|
||||
self.tc_kwargs['init']['host_pkg_manifest'] = \
|
||||
OESDKTestContextExecutor._load_manifest(args.host_manifest)
|
||||
self.tc_kwargs['run']['processes'] = args.processes
|
||||
|
||||
@staticmethod
|
||||
def _get_sdk_environs(sdk_dir):
|
||||
|
||||
Reference in New Issue
Block a user