mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-09 04:25:32 +00:00
move ci_target_check to ttfw_idf, move ci_target_filter to AssignTest
mark `supported_in_ci` for AssignTest filter.
This commit is contained in:
@@ -166,21 +166,6 @@ def test_method(**kwargs):
|
||||
case_info["name"] = case_info["ID"] = test_func.__name__
|
||||
case_info["junit_report_by_case"] = False
|
||||
|
||||
def _filter_ci_target(target, ci_target):
|
||||
if not ci_target:
|
||||
return target
|
||||
if isinstance(target, str):
|
||||
if isinstance(ci_target, str) and target == ci_target:
|
||||
return ci_target
|
||||
else:
|
||||
if isinstance(ci_target, str) and ci_target in target:
|
||||
return ci_target
|
||||
elif isinstance(ci_target, list) and set(ci_target).issubset(set(target)):
|
||||
return ci_target
|
||||
raise ValueError('ci_target must be a subset of target')
|
||||
|
||||
if os.getenv('CI_JOB_NAME') and 'ci_target' in kwargs:
|
||||
kwargs['target'] = _filter_ci_target(kwargs['target'], kwargs['ci_target'])
|
||||
case_info.update(kwargs)
|
||||
|
||||
@functools.wraps(test_func)
|
||||
@@ -230,7 +215,7 @@ def test_method(**kwargs):
|
||||
|
||||
dut_dict = kwargs['dut_dict']
|
||||
if target not in dut_dict:
|
||||
raise Exception('target can only be {%s}' % ', '.join(dut_dict.keys()))
|
||||
raise Exception('target can only be {%s} (case insensitive)' % ', '.join(dut_dict.keys()))
|
||||
|
||||
dut = dut_dict[target]
|
||||
try:
|
||||
|
@@ -143,6 +143,7 @@ class AssignTest(object):
|
||||
DEFAULT_FILTER = {
|
||||
"category": "function",
|
||||
"ignore": False,
|
||||
"supported_in_ci": True,
|
||||
}
|
||||
|
||||
def __init__(self, test_case_path, ci_config_file, case_group=Group):
|
||||
|
@@ -127,7 +127,6 @@ def filter_test_cases(test_methods, case_filter):
|
||||
* user case filter is ``chip: ["esp32", "esp32c"]``, case attribute is ``chip: "esp32"``
|
||||
* user case filter is ``chip: "esp32"``, case attribute is ``chip: "esp32"``
|
||||
|
||||
|
||||
:param test_methods: a list of test methods functions
|
||||
:param case_filter: case filter
|
||||
:return: filtered test methods
|
||||
|
@@ -106,6 +106,16 @@ class Search(object):
|
||||
key = replicate_config.pop()
|
||||
replicated_cases = _replicate_for_key(replicated_cases, key, case.case_info[key])
|
||||
|
||||
# mark the cases with targets not in ci_target
|
||||
for case in replicated_cases:
|
||||
ci_target = case.case_info['ci_target']
|
||||
if isinstance(ci_target, str):
|
||||
ci_target = [ci_target]
|
||||
if not ci_target or case.case_info['target'] in ci_target:
|
||||
case.case_info['supported_in_ci'] = True
|
||||
else:
|
||||
case.case_info['supported_in_ci'] = False
|
||||
|
||||
return replicated_cases
|
||||
|
||||
@classmethod
|
||||
|
Reference in New Issue
Block a user