diff options
authorRobert Yang <>2017-12-20 13:28:26 +0800
committerRobert Yang <>2017-12-21 09:59:48 +0800
commit6bed2ead820cbb22462e458b49c82c71ece0ff85 (patch)
parent978472c58629d1448399207873bbead96b27102e (diff)
oeqa/core/ fix re for module
Fixed: $ oe-selftest -r eSDK.oeSDKExtSelfTest.test_image_generation_binary_feeds Traceback (most recent call last): [snip] File "/workspace2/lyang1/poky/meta/lib/oeqa/core/", line 49, in _built_modules_dict module_name, class_name, test_name = m.groups() AttributeError: 'NoneType' object has no attribute 'groups' The old code assumed the arg should be: module.Class.test Note about the module and Class, the lower and upper cases matters, which can't handle the testcases like eSDK.oeSDKExtSelfTest.test_image_generation_binary_feeds and gotoolchain.oeGoToolchainSelfTest.test_go_dep_build. Use a new re to fix the problem, now all of the following commmands can work: $ oe-selftest -r eSDK $ oe-selftest -r eSDK.oeSDKExtSelfTest $ oe-selftest -r eSDK.oeSDKExtSelfTest.test_image_generation_binary_feeds [YOCTO #12438] Signed-off-by: Robert Yang <>
1 files changed, 4 insertions, 3 deletions
diff --git a/meta/lib/oeqa/core/ b/meta/lib/oeqa/core/
index 975a081ba4..25078ba345 100644
--- a/meta/lib/oeqa/core/
+++ b/meta/lib/oeqa/core/
@@ -41,9 +41,10 @@ def _built_modules_dict(modules):
return modules_dict
for module in modules:
- # Assumption: package and module names do not contain upper case
- # characters, whereas class names do
- m = re.match(r'^([^A-Z]+)(?:\.([A-Z][^.]*)(?:\.([^.]+))?)?$', module)
+ # The format is module.class.test, while .class and .test is optional.
+ m = re.match(r'([^\.]+)(?:\.([^\.]+))?(?:\.([^\.]*))?', module)
+ if not m:
+ raise OEQATestNotFound("Not found %s in loaded test cases" % module)
module_name, class_name, test_name = m.groups()