]> code.ossystems Code Review - openembedded-core.git/commitdiff
testsdk: Enable multiprocess execution
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 13 Jul 2018 15:23:54 +0000 (15:23 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 16 Jul 2018 20:26:15 +0000 (21:26 +0100)
This uses the new concurrenttest code to enable parallel test execution
if specified.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/testsdk.bbclass
meta/lib/oeqa/sdk/context.py

index 2b5d66b1931fafd4d08ca32665244076876c4f6d..5df17bfa9e3a00c7cb241e7214c1cd7e76832ca9 100644 (file)
@@ -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))
index 82e4c19bfc129a74e1a8b61ad9bfb039e58ece04..7c091c0534cdadbc604f37971f4d22e4bb3aa637 100644 (file)
@@ -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):