summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2016-05-24 12:44:13 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-05-30 15:58:13 +0100
commit8a6891095831f9d2b58d5c943093f21eda8e7616 (patch)
treeb9f3d79e114e0ae1d9cfd99694121de54449fc10 /meta/lib
parent3a81a3d8c348183c361eae45c904831edfb7ab27 (diff)
downloadpoky-8a6891095831f9d2b58d5c943093f21eda8e7616.tar.gz
oetest.py: Add json file support to specify packages needed in runtime tests
This adds the functionality to use a json file to specify the packages needed for a particular test. The content of the json file is a dictionary with dictionaries inside, using the test name as the hash. The json file must have the same name as the class module name and must be in the same path. [YOCTO #7850] (From OE-Core rev: 1f24ef9a339a2ad34e010f39aa93abdc8d085c85) Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/oetest.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/meta/lib/oeqa/oetest.py b/meta/lib/oeqa/oetest.py
index 8ad3715aec..7abd850f63 100644
--- a/meta/lib/oeqa/oetest.py
+++ b/meta/lib/oeqa/oetest.py
@@ -385,6 +385,43 @@ class RuntimeTestContext(TestContext):
385 if oeTest.hasPackage("procps"): 385 if oeTest.hasPackage("procps"):
386 oeRuntimeTest.pscmd = "ps -ef" 386 oeRuntimeTest.pscmd = "ps -ef"
387 387
388 def _getJsonFile(self, module):
389 """
390 Returns the path of the JSON file for a module, empty if doesn't exitst.
391 """
392
393 module_file = module.filename
394 json_file = "%s.json" % module_file.rsplit(".", 1)[0]
395 if os.path.isfile(module_file) and os.path.isfile(json_file):
396 return json_file
397 else:
398 return ""
399
400 def _getNeededPackages(self, json_file, test=None):
401 """
402 Returns a dict with needed packages based on a JSON file.
403
404
405 If a test is specified it will return the dict just for that test.
406 """
407
408 import json
409
410 needed_packages = {}
411
412 with open(json_file) as f:
413 test_packages = json.load(f)
414 for key,value in test_packages.items():
415 needed_packages[key] = value
416
417 if test:
418 if test in needed_packages:
419 needed_packages = needed_packages[test]
420 else:
421 needed_packages = {}
422
423 return needed_packages
424
388class ImageTestContext(RuntimeTestContext): 425class ImageTestContext(RuntimeTestContext):
389 def __init__(self, d, target, host_dumper): 426 def __init__(self, d, target, host_dumper):
390 super(ImageTestContext, self).__init__(d, target) 427 super(ImageTestContext, self).__init__(d, target)