From 186cdc71bf9bdd00be1df87d90d1a4c57790208c Mon Sep 17 00:00:00 2001 From: xudan Date: Mon, 25 Sep 2017 23:30:08 -0400 Subject: Support to run mandatory or optional test cases separately 1. Currently, dovetail can run a test suite or a test area in that test suite. 2. The test areas in one test suite are not divided into optional and mandatory. 3. Split them and support to run just mandatory or optional. 4. Support to run multiple test areas. JIRA: DOVETAIL-505 Change-Id: I42cd7b4e11c3e3674c806e9bc999b782bf5c85c6 Signed-off-by: xudan --- dovetail/testcase.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'dovetail/testcase.py') diff --git a/dovetail/testcase.py b/dovetail/testcase.py index b6819964..99845484 100644 --- a/dovetail/testcase.py +++ b/dovetail/testcase.py @@ -243,6 +243,44 @@ class Testcase(object): return cls.testcase_list[testcase_name] return None + @classmethod + def check_testarea(cls, testarea): + area_no_duplicate = [] + area_full = ['full'] + + # testarea is empty, run full testsuite + if not testarea: + return True, area_full + + mandatory_list = dt_cfg.dovetail_config['mandatory'] + optional_list = dt_cfg.dovetail_config['optional'] + for area in testarea: + if area not in dt_cfg.dovetail_config['testarea_supported']: + return False, None + if area == 'full': + return True, area_full + if area == 'mandatory': + for mandatory_area in mandatory_list: + area_no_duplicate.append(mandatory_area) + continue + if area == 'optional': + for optional_area in optional_list: + area_no_duplicate.append(optional_area) + continue + area_no_duplicate.append(area) + area_no_duplicate = list(set(area_no_duplicate)) + return True, area_no_duplicate + + @classmethod + def get_testcase_list(cls, testsuite, testarea): + testcase_list = [] + for value in testsuite['testcases_list']: + for area in testarea: + if value is not None and (area == 'full' or area in value): + testcase_list.append(value) + break + return testcase_list + class FunctestTestcase(Testcase): -- cgit 1.2.3-korg