def idf_custom_test(app=TestApp, dut=IDFDUT, chip="ESP32", module="misc", execution_time=1, level="integration", erase_nvs=True, config_name=None, group="test-apps", **kwargs): """ decorator for idf custom tests (with default values for some keyword args). :param app: test application class :param dut: dut class :param chip: chip supported, string or tuple :param module: module, string :param execution_time: execution time in minutes, int :param level: test level, could be used to filter test cases, string :param erase_nvs: if need to erase_nvs in DUT.start_app() :param config_name: if specified, name of the app configuration :param group: identifier to group custom tests (unused for now, defaults to "test-apps") :param kwargs: other keyword args :return: test method """ try: # try to config the default behavior of erase nvs dut.ERASE_NVS = erase_nvs except AttributeError: pass original_method = TinyFW.test_method(app=app, dut=dut, chip=chip, module=module, execution_time=execution_time, level=level, **kwargs) def test(func): test_func = original_method(func) test_func.case_info["ID"] = format_case_id(chip, test_func.case_info["name"]) return test_func return test
def idf_unit_test(app=UT, dut=IDFDUT, chip="ESP32", module="unit-test", execution_time=1, level="unit", erase_nvs=True, **kwargs): """ decorator for testing idf unit tests (with default values for some keyword args). :param app: test application class :param dut: dut class :param chip: chip supported, string or tuple :param module: module, string :param execution_time: execution time in minutes, int :param level: test level, could be used to filter test cases, string :param erase_nvs: if need to erase_nvs in DUT.start_app() :param kwargs: other keyword args :return: test method """ try: # try to config the default behavior of erase nvs dut.ERASE_NVS = erase_nvs except AttributeError: pass original_method = TinyFW.test_method(app=app, dut=dut, chip=chip, module=module, execution_time=execution_time, level=level, **kwargs) def test(func): test_func = original_method(func) test_func.case_info["ID"] = format_case_id(chip, test_func.case_info["name"]) return test_func return test
def test_func_generator(func, app, target, ci_target, module, execution_time, level, erase_nvs, drop_kwargs_dut=False, **kwargs): test_target = local_test_check(target) dut = get_dut_class(test_target, erase_nvs) if drop_kwargs_dut and 'dut' in kwargs: # panic_test() will inject dut, resolve conflicts here dut = kwargs['dut'] del kwargs['dut'] original_method = TinyFW.test_method( app=app, dut=dut, target=upper_list_or_str(target), ci_target=upper_list_or_str(ci_target), module=module, execution_time=execution_time, level=level, erase_nvs=erase_nvs, dut_dict=TARGET_DUT_CLS_DICT, **kwargs) test_func = original_method(func) test_func.case_info["ID"] = format_case_id(target, test_func.case_info["name"]) return test_func
def test_func_generator(func, app, target, ci_target, module, execution_time, level, erase_nvs, **kwargs): target = upper_list_or_str(target) test_target = local_test_check(target) if 'additional_duts' in kwargs: dut_classes = deepcopy(TARGET_DUT_CLS_DICT) dut_classes.update(kwargs['additional_duts']) else: dut_classes = TARGET_DUT_CLS_DICT dut = get_dut_class(test_target, dut_classes, erase_nvs) original_method = TinyFW.test_method( app=app, dut=dut, target=target, ci_target=upper_list_or_str(ci_target), module=module, execution_time=execution_time, level=level, erase_nvs=erase_nvs, dut_dict=dut_classes, **kwargs) test_func = original_method(func) test_func.case_info["ID"] = format_case_id(target, test_func.case_info["name"]) return test_func
def test(func): test_target = local_test_check(target) dut = get_dut_class(test_target, erase_nvs) original_method = TinyFW.test_method( app=app, dut=dut, target=upper_list_or_str(target), ci_target=upper_list_or_str(ci_target), module=module, execution_time=execution_time, level=level, erase_nvs=erase_nvs, dut_dict=TARGET_DUT_CLS_DICT, **kwargs ) test_func = original_method(func) test_func.case_info["ID"] = format_case_id(target, test_func.case_info["name"]) return test_func
def idf_example_test(app=Example, dut=IDFDUT, chip="ESP32", module="examples", execution_time=1, level="example", erase_nvs=True, config_name=None, **kwargs): """ decorator for testing idf examples (with default values for some keyword args). :param app: test application class :param dut: dut class :param chip: chip supported, string or tuple :param module: module, string :param execution_time: execution time in minutes, int :param level: test level, could be used to filter test cases, string :param erase_nvs: if need to erase_nvs in DUT.start_app() :param config_name: if specified, name of the app configuration :param kwargs: other keyword args :return: test method """ try: # try to config the default behavior of erase nvs dut.ERASE_NVS = erase_nvs except AttributeError: pass original_method = TinyFW.test_method(app=app, dut=dut, chip=chip, module=module, execution_time=execution_time, level=level, **kwargs) def test(func): test_func = original_method(func) return test_func return test