mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 12:29:55 +00:00
testimage: filter proper test cases by tags
If a test case is decorate by oeqa.utils.decorators.tag, this case will by add a tag, testrunner will filter these tags by TEST_SUITES_TAGS [YOCTO #7849] (From OE-Core rev: 085589b1018ba4d950baf7bcfb499be02c1b29fc) Signed-off-by: zjh <junhuix.zhang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -185,4 +185,36 @@ def timeout(seconds):
|
||||
return wrapped_f
|
||||
else:
|
||||
return fn
|
||||
return decorator
|
||||
return decorator
|
||||
|
||||
__tag_prefix = "tag__"
|
||||
def tag(*args, **kwargs):
|
||||
"""Decorator that adds attributes to classes or functions
|
||||
for use with the Attribute (-a) plugin.
|
||||
"""
|
||||
def wrap_ob(ob):
|
||||
for name in args:
|
||||
setattr(ob, __tag_prefix + name, True)
|
||||
for name, value in kwargs.iteritems():
|
||||
setattr(ob, __tag_prefix + name, value)
|
||||
return ob
|
||||
return wrap_ob
|
||||
|
||||
def gettag(obj, key, default=None):
|
||||
key = __tag_prefix + key
|
||||
if not isinstance(obj, unittest.TestCase):
|
||||
return getattr(obj, key, default)
|
||||
tc_method = getattr(obj, obj._testMethodName)
|
||||
ret = getattr(tc_method, key, getattr(obj, key, default))
|
||||
return ret
|
||||
|
||||
def getAllTags(obj):
|
||||
def __gettags(o):
|
||||
r = {k[len(__tag_prefix):]:getattr(o,k) for k in dir(o) if k.startswith(__tag_prefix)}
|
||||
return r
|
||||
if not isinstance(obj, unittest.TestCase):
|
||||
return __gettags(obj)
|
||||
tc_method = getattr(obj, obj._testMethodName)
|
||||
ret = __gettags(obj)
|
||||
ret.update(__gettags(tc_method))
|
||||
return ret
|
||||
|
||||
Reference in New Issue
Block a user