summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/oe-selftest12
1 files changed, 10 insertions, 2 deletions
diff --git a/scripts/oe-selftest b/scripts/oe-selftest
index df76f94f7a..303b1d52ea 100755
--- a/scripts/oe-selftest
+++ b/scripts/oe-selftest
@@ -262,16 +262,22 @@ def get_testsuite_by(criteria, keyword):
262 result = [] 262 result = []
263 remaining = values[:] 263 remaining = values[:]
264 for key in keyword: 264 for key in keyword:
265 found = False
265 if key in remaining: 266 if key in remaining:
266 # Regular matching of exact item 267 # Regular matching of exact item
267 result.append(key) 268 result.append(key)
268 remaining.remove(key) 269 remaining.remove(key)
270 found = True
269 else: 271 else:
270 # Wildcard matching 272 # Wildcard matching
271 pattern = re.compile(fnmatch.translate(r"%s" % key)) 273 pattern = re.compile(fnmatch.translate(r"%s" % key))
272 added = [x for x in remaining if pattern.match(x)] 274 added = [x for x in remaining if pattern.match(x)]
273 result.extend(added) 275 if added:
274 remaining = [x for x in remaining if x not in added] 276 result.extend(added)
277 remaining = [x for x in remaining if x not in added]
278 found = True
279 if not found:
280 log.error("Failed to find test: %s" % key)
275 281
276 return result 282 return result
277 283
@@ -455,6 +461,8 @@ def main():
455 criteria = args.run_tests_by[0] 461 criteria = args.run_tests_by[0]
456 keyword = args.run_tests_by[1:] 462 keyword = args.run_tests_by[1:]
457 ts = sorted([ tc.fullpath for tc in get_testsuite_by(criteria, keyword) ]) 463 ts = sorted([ tc.fullpath for tc in get_testsuite_by(criteria, keyword) ])
464 if not ts:
465 return 1
458 466
459 if args.list_tests_by and len(args.list_tests_by) >= 2: 467 if args.list_tests_by and len(args.list_tests_by) >= 2:
460 valid_options = ['name', 'class', 'module', 'id', 'tag'] 468 valid_options = ['name', 'class', 'module', 'id', 'tag']