]> code.ossystems Code Review - openembedded-core.git/commitdiff
oeqa/core/loader: refine regex to find module
authorLee Chee Yang <chee.yang.lee@intel.com>
Wed, 1 Jul 2020 14:39:08 +0000 (22:39 +0800)
committerSteve Sakoman <steve@sakoman.com>
Tue, 7 Jul 2020 00:33:20 +0000 (14:33 -1000)
test case in format <module name>.<class name>.<test case name>
this is clear when test cases is only 3 item deep.

but confused when it is 4 item deep, eg,
oelib.types.TestList.test_list_nosep

in this case, oelib and oelib.types can both be treated as module
since module name contains only lower cases and class name should
contain atleast one upper case.
so, always treat leading item without upper case as module also allow
module name to contain dot.

[YOCTO #13941]

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ad81ea90a815389e45ff302a85151724c71f71c3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/lib/oeqa/core/loader.py

index 0d7970d49e3d7e33561b9faa91b60a01ba08d20c..73c57885082d33e13fd1ae60e920cb57d69bda68 100644 (file)
@@ -46,7 +46,7 @@ def _built_modules_dict(modules):
     for module in modules:
         # Assumption: package and module names do not contain upper case
         # characters, whereas class names do
-        m = re.match(r'^(\w+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII)
+        m = re.match(r'^([1-2a-z_.]+)(?:\.(\w[^.]*)(?:\.([^.]+))?)?$', module, flags=re.ASCII)
         if not m:
             continue