From 9f8b63da387ea3f31a4abcbfc3489f6171c016a8 Mon Sep 17 00:00:00 2001 From: Fu Hanxi Date: Wed, 8 Apr 2020 11:32:25 +0800 Subject: [PATCH] Pass current target to test_method **overwrite. --- tools/ci/python_packages/tiny_test_fw/TinyFW.py | 7 +++++-- .../python_packages/tiny_test_fw/Utility/CaseConfig.py | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/ci/python_packages/tiny_test_fw/TinyFW.py b/tools/ci/python_packages/tiny_test_fw/TinyFW.py index 77eaab154..d5287f7c2 100644 --- a/tools/ci/python_packages/tiny_test_fw/TinyFW.py +++ b/tools/ci/python_packages/tiny_test_fw/TinyFW.py @@ -180,17 +180,20 @@ def test_method(**kwargs): if key in env_config: env_config[key] = kwargs[key] + # Runner.py should overwrite target with the current target. env_config.update(overwrite) - # FIXME: CI need more variable here. add `if CI_TARGET: ...` later with CI. + # This code block is used to run test script locally without + # Runner.py target = env_config['target'] if 'target' in env_config else kwargs['target'] - dut_dict = kwargs['dut_dict'] if isinstance(target, list): target = target[0] elif isinstance(target, str): target = target else: raise TypeError('keyword targets can only be list or str') + + dut_dict = kwargs['dut_dict'] if target not in dut_dict: raise Exception('target can only be {%s}' % ', '.join(dut_dict.keys())) diff --git a/tools/ci/python_packages/tiny_test_fw/Utility/CaseConfig.py b/tools/ci/python_packages/tiny_test_fw/Utility/CaseConfig.py index 8f373bce9..6205a8e85 100644 --- a/tools/ci/python_packages/tiny_test_fw/Utility/CaseConfig.py +++ b/tools/ci/python_packages/tiny_test_fw/Utility/CaseConfig.py @@ -190,6 +190,15 @@ class Parser(object): _overwrite = cls.handle_overwrite_args(_config.pop("overwrite", dict())) _extra_data = _config.pop("extra_data", None) _filter.update(_config) + + # Try get target from yml + try: + _target = _filter['target'] + except KeyError: + pass + else: + _overwrite.update({'target': _target}) + for test_method in test_methods: if _filter_one_case(test_method, _filter): test_case_list.append(TestCase.TestCase(test_method, _extra_data, **_overwrite))