1ca0551cfSopenharmony_ci#!/usr/bin/env python3 2ca0551cfSopenharmony_ci# -*- coding: utf-8 -*- 3ca0551cfSopenharmony_ci 4ca0551cfSopenharmony_ci# 5ca0551cfSopenharmony_ci# Copyright (c) 2024 Huawei Device Co., Ltd. 6ca0551cfSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 7ca0551cfSopenharmony_ci# you may not use this file except in compliance with the License. 8ca0551cfSopenharmony_ci# You may obtain a copy of the License at 9ca0551cfSopenharmony_ci# 10ca0551cfSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 11ca0551cfSopenharmony_ci# 12ca0551cfSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 13ca0551cfSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 14ca0551cfSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15ca0551cfSopenharmony_ci# See the License for the specific language governing permissions and 16ca0551cfSopenharmony_ci# limitations under the License. 17ca0551cfSopenharmony_ci# 18ca0551cfSopenharmony_ci 19ca0551cfSopenharmony_cifrom base import file_exists, make_binary_file, print_failure, print_success, get_subclasses, get_idl 20ca0551cfSopenharmony_cifrom base import Test 21ca0551cfSopenharmony_cifrom hdi_hash_test import __all__ 22ca0551cfSopenharmony_ciimport importlib 23ca0551cfSopenharmony_ci 24ca0551cfSopenharmony_cifor module_name in __all__: 25ca0551cfSopenharmony_ci module = importlib.import_module(f'hdi_hash_test.{module_name}') 26ca0551cfSopenharmony_ci 27ca0551cfSopenharmony_ci 28ca0551cfSopenharmony_ciclass Tests: 29ca0551cfSopenharmony_ci test_cases = get_subclasses(Test) 30ca0551cfSopenharmony_ci test_objs = list() 31ca0551cfSopenharmony_ci 32ca0551cfSopenharmony_ci @staticmethod 33ca0551cfSopenharmony_ci def set_up_test_case(): 34ca0551cfSopenharmony_ci hdi_gen_file = get_idl() 35ca0551cfSopenharmony_ci ret = file_exists(hdi_gen_file) 36ca0551cfSopenharmony_ci if not ret: 37ca0551cfSopenharmony_ci hdi_gen_path = "../../" 38ca0551cfSopenharmony_ci if make_binary_file(hdi_gen_path)[0] == 0: 39ca0551cfSopenharmony_ci ret = True 40ca0551cfSopenharmony_ci if not ret: 41ca0551cfSopenharmony_ci print_failure("[===========] failed to make idl-gen") 42ca0551cfSopenharmony_ci return ret 43ca0551cfSopenharmony_ci 44ca0551cfSopenharmony_ci @staticmethod 45ca0551cfSopenharmony_ci def tear_down_test_case(): 46ca0551cfSopenharmony_ci for case in Tests.test_objs: 47ca0551cfSopenharmony_ci case.remove_output() 48ca0551cfSopenharmony_ci 49ca0551cfSopenharmony_ci @staticmethod 50ca0551cfSopenharmony_ci def test(): 51ca0551cfSopenharmony_ci test_case_num = len(Tests.test_cases) 52ca0551cfSopenharmony_ci success_case_num = 0 53ca0551cfSopenharmony_ci print_success("[===========] start {} test".format(test_case_num)) 54ca0551cfSopenharmony_ci for test_case in Tests.test_cases: 55ca0551cfSopenharmony_ci obj = test_case() 56ca0551cfSopenharmony_ci Tests.test_objs.append(obj) 57ca0551cfSopenharmony_ci if obj.test(): 58ca0551cfSopenharmony_ci success_case_num += 1 59ca0551cfSopenharmony_ci print_success("[ PASSED ] {} test".format(success_case_num)) 60ca0551cfSopenharmony_ci failure_case_num = test_case_num - success_case_num 61ca0551cfSopenharmony_ci if failure_case_num > 0: 62ca0551cfSopenharmony_ci print_failure("[ FAILED ] {} test".format(failure_case_num)) 63ca0551cfSopenharmony_ci 64ca0551cfSopenharmony_ci 65ca0551cfSopenharmony_ciif __name__ == "__main__": 66ca0551cfSopenharmony_ci if not Tests.set_up_test_case(): 67ca0551cfSopenharmony_ci print_failure("test case set up failed!") 68ca0551cfSopenharmony_ci exit(-1) 69ca0551cfSopenharmony_ci Tests.test() 70ca0551cfSopenharmony_ci Tests.tear_down_test_case() 71