summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/sdk/context.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/sdk/context.py')
-rw-r--r--meta/lib/oeqa/sdk/context.py43
1 files changed, 31 insertions, 12 deletions
diff --git a/meta/lib/oeqa/sdk/context.py b/meta/lib/oeqa/sdk/context.py
index b3d7c75183..01c38c24e6 100644
--- a/meta/lib/oeqa/sdk/context.py
+++ b/meta/lib/oeqa/sdk/context.py
@@ -1,15 +1,17 @@
+#
# Copyright (C) 2016 Intel Corporation
-# Released under the MIT license (see COPYING.MIT)
+#
+# SPDX-License-Identifier: MIT
+#
import os
import sys
import glob
import re
-from oeqa.core.context import OETestContextExecutor
-from oeqa.core.threaded import OETestContextThreaded
+from oeqa.core.context import OETestContext, OETestContextExecutor
-class OESDKTestContext(OETestContextThreaded):
+class OESDKTestContext(OETestContext):
sdk_files_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "files")
def __init__(self, td=None, logger=None, sdk_dir=None, sdk_env=None,
@@ -21,17 +23,30 @@ class OESDKTestContext(OETestContextThreaded):
self.target_pkg_manifest = target_pkg_manifest
self.host_pkg_manifest = host_pkg_manifest
- def _hasPackage(self, manifest, pkg):
- for host_pkg in manifest.keys():
- if re.search(pkg, host_pkg):
+ def _hasPackage(self, manifest, pkg, regex=False):
+ if regex:
+ # do regex match
+ pat = re.compile(pkg)
+ for p in manifest.keys():
+ if pat.search(p):
+ return True
+ else:
+ # do exact match
+ if pkg in manifest.keys():
return True
return False
- def hasHostPackage(self, pkg):
- return self._hasPackage(self.host_pkg_manifest, pkg)
+ def hasHostPackage(self, pkg, regex=False):
+ return self._hasPackage(self.host_pkg_manifest, pkg, regex=regex)
- def hasTargetPackage(self, pkg):
- return self._hasPackage(self.target_pkg_manifest, pkg)
+ def hasTargetPackage(self, pkg, multilib=False, regex=False):
+ if multilib:
+ # match multilib according to sdk_env
+ mls = self.td.get('MULTILIB_VARIANTS', '').split()
+ for ml in mls:
+ if ('ml'+ml) in self.sdk_env:
+ pkg = ml + '-' + pkg
+ return self._hasPackage(self.target_pkg_manifest, pkg, regex=regex)
class OESDKTestContextExecutor(OETestContextExecutor):
_context_class = OESDKTestContext
@@ -66,6 +81,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 = {}
@@ -86,6 +104,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):
@@ -117,7 +136,7 @@ class OESDKTestContextExecutor(OETestContextExecutor):
sdk_envs = OESDKTestContextExecutor._get_sdk_environs(args.sdk_dir)
if not sdk_envs:
raise argparse_oe.ArgumentUsageError("No available SDK "\
- "enviroments found at %s" % args.sdk_dir, self.name)
+ "environments found at %s" % args.sdk_dir, self.name)
if args.list_sdk_env:
self._display_sdk_envs(logger.info, args, sdk_envs)