]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
oeqa/core/loader.py: fix re for module
authorRobert Yang <liezhi.yang@windriver.com>
Wed, 20 Dec 2017 05:28:26 +0000 (13:28 +0800)
committerRobert Yang <liezhi.yang@windriver.com>
Thu, 21 Dec 2017 01:59:48 +0000 (09:59 +0800)
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/loader.py", 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 <liezhi.yang@windriver.com>
meta/lib/oeqa/core/loader.py

index 975a081ba4d0167d9181c3773d612b854bead08f..25078ba3453ae9e564ec6b9d0773948d28b20e77 100644 (file)
@@ -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()