# Copyright (C) 2013 - 2016 Intel Corporation 
 | 
# 
 | 
# Released under the MIT license (see COPYING.MIT) 
 | 
  
 | 
# testsdk.bbclass enables testing for SDK and Extensible SDK 
 | 
# 
 | 
# To run SDK tests, run the commands: 
 | 
# $ bitbake <image-name> -c populate_sdk 
 | 
# $ bitbake <image-name> -c testsdk 
 | 
# 
 | 
# To run eSDK tests, run the commands: 
 | 
# $ bitbake <image-name> -c populate_sdk_ext 
 | 
# $ bitbake <image-name> -c testsdkext 
 | 
# 
 | 
# where "<image-name>" is an image like core-image-sato. 
 | 
  
 | 
TESTSDK_CLASS_NAME ?= "oeqa.sdk.testsdk.TestSDK" 
 | 
TESTSDKEXT_CLASS_NAME ?= "oeqa.sdkext.testsdk.TestSDKExt" 
 | 
  
 | 
def import_and_run(name, d): 
 | 
    import importlib 
 | 
  
 | 
    class_name = d.getVar(name) 
 | 
    if class_name: 
 | 
        module, cls = class_name.rsplit('.', 1) 
 | 
        m = importlib.import_module(module) 
 | 
        c = getattr(m, cls)() 
 | 
        c.run(d) 
 | 
    else: 
 | 
        bb.warn('No tests were run because %s did not define a class' % name) 
 | 
  
 | 
import_and_run[vardepsexclude] = "DATETIME BB_ORIGENV" 
 | 
  
 | 
python do_testsdk() { 
 | 
    import_and_run('TESTSDK_CLASS_NAME', d) 
 | 
} 
 | 
addtask testsdk 
 | 
do_testsdk[nostamp] = "1" 
 | 
  
 | 
python do_testsdkext() { 
 | 
    import_and_run('TESTSDKEXT_CLASS_NAME', d) 
 | 
} 
 | 
addtask testsdkext 
 | 
do_testsdkext[nostamp] = "1" 
 | 
  
 | 
python () { 
 | 
    if oe.types.boolean(d.getVar("TESTIMAGE_AUTO") or "False"): 
 | 
        bb.build.addtask("testsdk", None, "do_populate_sdk", d) 
 | 
        bb.build.addtask("testsdkext", None, "do_populate_sdk_ext", d) 
 | 
} 
 |