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_ciimport os 20ca0551cfSopenharmony_ciimport importlib 21ca0551cfSopenharmony_ci 22ca0551cfSopenharmony_cifrom util import file_exists, make_binary_file, print_failure, print_success, get_subclasses, get_idl 23ca0551cfSopenharmony_cifrom test_base import Test 24ca0551cfSopenharmony_ci 25ca0551cfSopenharmony_ciexclude_file = ["test_base.py", "unit_test.py", "util.py"] 26ca0551cfSopenharmony_cifor file_name in os.listdir(os.path.dirname(os.path.abspath(__file__))): 27ca0551cfSopenharmony_ci if file_name.endswith('.py'): 28ca0551cfSopenharmony_ci if file_name in exclude_file: 29ca0551cfSopenharmony_ci continue 30ca0551cfSopenharmony_ci module_name = file_name[:-3] 31ca0551cfSopenharmony_ci importlib.import_module(module_name) 32ca0551cfSopenharmony_ci 33ca0551cfSopenharmony_ci 34ca0551cfSopenharmony_ciclass Suite: 35ca0551cfSopenharmony_ci test_cases = get_subclasses(Test) 36ca0551cfSopenharmony_ci test_objs = list() 37ca0551cfSopenharmony_ci 38ca0551cfSopenharmony_ci @staticmethod 39ca0551cfSopenharmony_ci def set_up_test_case(): 40ca0551cfSopenharmony_ci hdi_gen_file = get_idl() 41ca0551cfSopenharmony_ci ret = file_exists(hdi_gen_file) 42ca0551cfSopenharmony_ci if not ret: 43ca0551cfSopenharmony_ci hdi_gen_path = "../../" 44ca0551cfSopenharmony_ci if make_binary_file(hdi_gen_path)[0] == 0: 45ca0551cfSopenharmony_ci ret = True 46ca0551cfSopenharmony_ci if not ret: 47ca0551cfSopenharmony_ci print_failure("[===========] failed to make idl-gen") 48ca0551cfSopenharmony_ci return ret 49ca0551cfSopenharmony_ci 50ca0551cfSopenharmony_ci @staticmethod 51ca0551cfSopenharmony_ci def run_suite(): 52ca0551cfSopenharmony_ci test_case_num = len(Suite.test_cases) 53ca0551cfSopenharmony_ci success_case_num = 0 54ca0551cfSopenharmony_ci print_success("[===========] start {} test".format(test_case_num)) 55ca0551cfSopenharmony_ci for test_case in Suite.test_cases: 56ca0551cfSopenharmony_ci obj = test_case() 57ca0551cfSopenharmony_ci Suite.test_objs.append(obj) 58ca0551cfSopenharmony_ci if obj.test(): 59ca0551cfSopenharmony_ci success_case_num += 1 60ca0551cfSopenharmony_ci print_success("[ PASSED ] {} test".format(success_case_num)) 61ca0551cfSopenharmony_ci failure_case_num = test_case_num - success_case_num 62ca0551cfSopenharmony_ci if failure_case_num > 0: 63ca0551cfSopenharmony_ci print_failure("[ FAILED ] {} test".format(failure_case_num)) 64ca0551cfSopenharmony_ci 65ca0551cfSopenharmony_ci 66ca0551cfSopenharmony_ciif __name__ == "__main__": 67ca0551cfSopenharmony_ci if not Suite.set_up_test_case(): 68ca0551cfSopenharmony_ci print_failure("test case set up failed!") 69ca0551cfSopenharmony_ci exit(-1) 70ca0551cfSopenharmony_ci Suite.run_suite() 71