summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2018-06-01 13:02:58 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-07-02 11:41:25 +0100
commit72f658348b0fdb55c6a10ed6628e99e80954b99c (patch)
tree6a23675c05a925e93e017f9cb2a8c10d9a7eafc1 /meta/lib
parent33eb2fb5cd939df14b764224c7fbc05644614f78 (diff)
downloadpoky-72f658348b0fdb55c6a10ed6628e99e80954b99c.tar.gz
oeqa/core/loader.py: support the 'auto' keyword
In previous OEQA, having 'auto' in TEST_SUITES results in executing as many test cases as possible. This behaviour is broken for now. From the codes in core/loader.py, I can see that it tries to use another keyword 'all'. But in fact, it does not work. I've checked the current manual. The manual says using 'auto'. Below is the current information in manual. """ Alternatively, you can provide the "auto" option to have all applicable tests run against the image. TEST_SUITES_append = " auto" """ So we should restore this behaviour. This patch does so. Also, output warning message is some module is named as 'auto', as this is a reserved keyword. (From OE-Core rev: a65460a063a958cc887c756db5f7ab18e3f5a8c1) (From OE-Core rev: 8c247f5141f15160d670b49d9963f4143faedff5) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/core/loader.py17
1 files changed, 13 insertions, 4 deletions
diff --git a/meta/lib/oeqa/core/loader.py b/meta/lib/oeqa/core/loader.py
index a4744dee03..98fc0f696a 100644
--- a/meta/lib/oeqa/core/loader.py
+++ b/meta/lib/oeqa/core/loader.py
@@ -155,7 +155,16 @@ class OETestLoader(unittest.TestLoader):
155 class_name = case.__class__.__name__ 155 class_name = case.__class__.__name__
156 test_name = case._testMethodName 156 test_name = case._testMethodName
157 157
158 if self.modules: 158 # 'auto' is a reserved key word to run test cases automatically
159 # warn users if their test case belong to a module named 'auto'
160 if module_name_small == "auto":
161 bb.warn("'auto' is a reserved key word for TEST_SUITES. "
162 "But test case '%s' is detected to belong to auto module. "
163 "Please condier using a new name for your module." % str(case))
164
165 # check if case belongs to any specified module
166 # if 'auto' is specified, such check is skipped
167 if self.modules and not 'auto' in self.modules:
159 module = None 168 module = None
160 try: 169 try:
161 module = self.modules[module_name_small] 170 module = self.modules[module_name_small]
@@ -245,7 +254,7 @@ class OETestLoader(unittest.TestLoader):
245 for tcName in testCaseNames: 254 for tcName in testCaseNames:
246 case = self._getTestCase(testCaseClass, tcName) 255 case = self._getTestCase(testCaseClass, tcName)
247 # Filer by case id 256 # Filer by case id
248 if not (self.tests and not 'all' in self.tests 257 if not (self.tests and not 'auto' in self.tests
249 and not getCaseID(case) in self.tests): 258 and not getCaseID(case) in self.tests):
250 self._handleTestCaseDecorators(case) 259 self._handleTestCaseDecorators(case)
251 260
@@ -309,14 +318,14 @@ class OETestLoader(unittest.TestLoader):
309 module_name = module.__name__ 318 module_name = module.__name__
310 319
311 # Normal test modules are loaded if no modules were specified, 320 # Normal test modules are loaded if no modules were specified,
312 # if module is in the specified module list or if 'all' is in 321 # if module is in the specified module list or if 'auto' is in
313 # module list. 322 # module list.
314 # Underscore modules are loaded only if specified in module list. 323 # Underscore modules are loaded only if specified in module list.
315 load_module = True if not module_name.startswith('_') \ 324 load_module = True if not module_name.startswith('_') \
316 and (not self.modules \ 325 and (not self.modules \
317 or module_name in self.modules \ 326 or module_name in self.modules \
318 or module_name_small in self.modules \ 327 or module_name_small in self.modules \
319 or 'all' in self.modules) \ 328 or 'auto' in self.modules) \
320 else False 329 else False
321 330
322 load_underscore = True if module_name.startswith('_') \ 331 load_underscore = True if module_name.startswith('_') \