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 subprocess 21ca0551cfSopenharmony_ciimport time 22ca0551cfSopenharmony_cifrom enum import Enum 23ca0551cfSopenharmony_ciimport inspect 24ca0551cfSopenharmony_ci 25ca0551cfSopenharmony_ci 26ca0551cfSopenharmony_ciclass RetStatus(Enum): 27ca0551cfSopenharmony_ci OK = 0 28ca0551cfSopenharmony_ci ERR = 255 29ca0551cfSopenharmony_ci 30ca0551cfSopenharmony_ci 31ca0551cfSopenharmony_cidef get_idl(): 32ca0551cfSopenharmony_ci current_path = os.path.dirname(os.path.abspath(__file__)) 33ca0551cfSopenharmony_ci relative_path = os.path.join(current_path, "..", "..", "idl_tool_2", "idl-gen") 34ca0551cfSopenharmony_ci return os.path.realpath(relative_path) 35ca0551cfSopenharmony_ci 36ca0551cfSopenharmony_ci 37ca0551cfSopenharmony_cidef get_caller_info(): 38ca0551cfSopenharmony_ci frame = inspect.currentframe().f_back.f_back 39ca0551cfSopenharmony_ci caller_function = frame.f_code.co_name 40ca0551cfSopenharmony_ci caller_lineno = frame.f_lineno 41ca0551cfSopenharmony_ci caller_class = None 42ca0551cfSopenharmony_ci if 'self' in frame.f_locals: 43ca0551cfSopenharmony_ci caller_class = frame.f_locals['self'].__class__.__name__ 44ca0551cfSopenharmony_ci return caller_class, caller_function, caller_lineno 45ca0551cfSopenharmony_ci 46ca0551cfSopenharmony_ci 47ca0551cfSopenharmony_cidef get_time_stamp(): 48ca0551cfSopenharmony_ci return int(round(time.time() * 1000)) 49ca0551cfSopenharmony_ci 50ca0551cfSopenharmony_ci 51ca0551cfSopenharmony_cidef print_success(info): 52ca0551cfSopenharmony_ci print("\033[32m{}\033[0m".format(info)) 53ca0551cfSopenharmony_ci 54ca0551cfSopenharmony_ci 55ca0551cfSopenharmony_cidef print_failure(info): 56ca0551cfSopenharmony_ci print("\033[31m{}\033[0m".format(info)) 57ca0551cfSopenharmony_ci 58ca0551cfSopenharmony_ci 59ca0551cfSopenharmony_cidef compare_file(first_file, second_file): 60ca0551cfSopenharmony_ci with open(first_file, 'r') as first_hash_file: 61ca0551cfSopenharmony_ci with open(second_file, 'r') as second_hash_file: 62ca0551cfSopenharmony_ci first_hash_info = first_hash_file.read() 63ca0551cfSopenharmony_ci second_hash_info = second_hash_file.read() 64ca0551cfSopenharmony_ci return first_hash_info == second_hash_info 65ca0551cfSopenharmony_ci 66ca0551cfSopenharmony_cidef file_exists(file_path): 67ca0551cfSopenharmony_ci return os.path.isfile(file_path) 68ca0551cfSopenharmony_ci 69ca0551cfSopenharmony_cidef exec_command_check(command, expect_result, exp_status): 70ca0551cfSopenharmony_ci status, exec_result = subprocess.getstatusoutput(command) 71ca0551cfSopenharmony_ci caller_class, caller_function, caller_lineno = get_caller_info() 72ca0551cfSopenharmony_ci if status != exp_status.value: 73ca0551cfSopenharmony_ci print_failure(f"[{caller_class}:{caller_function}:{caller_lineno}][{command}][{status}:{exp_status}]" 74ca0551cfSopenharmony_ci f"{exec_result}") 75ca0551cfSopenharmony_ci return False 76ca0551cfSopenharmony_ci 77ca0551cfSopenharmony_ci if exec_result != expect_result: 78ca0551cfSopenharmony_ci print_success("=====expect=====\n" 79ca0551cfSopenharmony_ci f"[{caller_class}:{caller_function}:{caller_lineno}][{command}]{expect_result}") 80ca0551cfSopenharmony_ci print_failure("=====actual=====\n" 81ca0551cfSopenharmony_ci f"[{caller_class}:{caller_function}:{caller_lineno}][{command}]{exec_result}") 82ca0551cfSopenharmony_ci return False 83ca0551cfSopenharmony_ci 84ca0551cfSopenharmony_ci return True 85ca0551cfSopenharmony_ci 86ca0551cfSopenharmony_ciclass Test: 87ca0551cfSopenharmony_ci def __init__(self): 88ca0551cfSopenharmony_ci self.name = self.__class__.__name__ 89ca0551cfSopenharmony_ci self.cmd = get_idl() 90ca0551cfSopenharmony_ci 91ca0551cfSopenharmony_ci def run(self): 92ca0551cfSopenharmony_ci # please add test code here 93ca0551cfSopenharmony_ci return False 94ca0551cfSopenharmony_ci 95ca0551cfSopenharmony_ci def test(self): 96ca0551cfSopenharmony_ci print_success("[ RUN ] {}".format(self.name)) 97ca0551cfSopenharmony_ci start_time = get_time_stamp() 98ca0551cfSopenharmony_ci result = self.run() 99ca0551cfSopenharmony_ci end_time = get_time_stamp() 100ca0551cfSopenharmony_ci 101ca0551cfSopenharmony_ci if result: 102ca0551cfSopenharmony_ci print_success("[ OK ] {} ({}ms)".format(self.name, end_time - start_time)) 103ca0551cfSopenharmony_ci else: 104ca0551cfSopenharmony_ci print_failure("[ FAILED ] {} ({}ms)".format(self.name, end_time - start_time)) 105ca0551cfSopenharmony_ci return result 106ca0551cfSopenharmony_ci 107ca0551cfSopenharmony_ci# print help info 108ca0551cfSopenharmony_ciclass TestCmdPrintHelp(Test): 109ca0551cfSopenharmony_ci def run(self): 110ca0551cfSopenharmony_ci expect_result = "Compile a .idl file and generate C/C++/Ts/Rust and Java codes.\n" 111ca0551cfSopenharmony_ci expect_result += "Usage: idl [options] file\n" 112ca0551cfSopenharmony_ci expect_result += "Options:\n" 113ca0551cfSopenharmony_ci expect_result += " -h, --help Display command line options\n" 114ca0551cfSopenharmony_ci expect_result += " -v, --version Display toolchain version information\n" 115ca0551cfSopenharmony_ci expect_result += \ 116ca0551cfSopenharmony_ci " --system <value> "\ 117ca0551cfSopenharmony_ci "Set system level 'mini','lite' or 'full', the default value is 'full', only support 'intf-type hdi'\n" 118ca0551cfSopenharmony_ci expect_result += \ 119ca0551cfSopenharmony_ci " -m, --mode <value> "\ 120ca0551cfSopenharmony_ci "Set generate code mode 'low', 'passthrough', 'ipc' or 'kernel', the default value is 'ipc', "\ 121ca0551cfSopenharmony_ci "only support 'intf-type hdi'\n" 122ca0551cfSopenharmony_ci expect_result += " -p, --package <package name> Set package of idl files, only support 'intf-type hdi'\n" 123ca0551cfSopenharmony_ci expect_result += " --dump-ast Display the AST of the compiled file\n" 124ca0551cfSopenharmony_ci expect_result += \ 125ca0551cfSopenharmony_ci " --dump-metadata "\ 126ca0551cfSopenharmony_ci "Display the metadata generated from the compiled file, only support 'intf-type sa'\n" 127ca0551cfSopenharmony_ci expect_result += \ 128ca0551cfSopenharmony_ci " --hash Generate hash info of idl files, only support 'intf-type hdi'\n" 129ca0551cfSopenharmony_ci expect_result += \ 130ca0551cfSopenharmony_ci " -r <rootPackage>:<rootPath> Set root path of root package, only support 'intf-type hdi'\n" 131ca0551cfSopenharmony_ci expect_result += " -c Compile the .idl file\n" 132ca0551cfSopenharmony_ci expect_result += " -D <directory> Directory of the idl file, only support 'intf-type hdi'\n" 133ca0551cfSopenharmony_ci expect_result += " -d <directory> Place generated codes into <directory>\n" 134ca0551cfSopenharmony_ci expect_result += \ 135ca0551cfSopenharmony_ci " -o <file> Place the output into <file>, only support 'intf-type hdi'\n" 136ca0551cfSopenharmony_ci expect_result += \ 137ca0551cfSopenharmony_ci " -s <file> Place the metadata into <file>, only support 'intf-type sa'\n" 138ca0551cfSopenharmony_ci expect_result += " --gen-c Generate C codes, only support 'intf-type hdi'\n" 139ca0551cfSopenharmony_ci expect_result += " --gen-cpp Generate C++ codes\n" 140ca0551cfSopenharmony_ci expect_result += " --gen-java Generate Java codes, only support 'intf-type hdi'\n" 141ca0551cfSopenharmony_ci expect_result += " --gen-rust Generate Rust codes, only support 'intf-type sa'\n" 142ca0551cfSopenharmony_ci expect_result += " --gen-ts Generate Ts codes, only support 'intf-type sa'\n" 143ca0551cfSopenharmony_ci expect_result += \ 144ca0551cfSopenharmony_ci " --log-domainid <domainid> "\ 145ca0551cfSopenharmony_ci "Place the service domain in <domainid>, Enable log(Pair with -log-tag), only support 'intf-type sa'\n" 146ca0551cfSopenharmony_ci expect_result += \ 147ca0551cfSopenharmony_ci " --log-tag <tag> "\ 148ca0551cfSopenharmony_ci "Place the subsystem name in <tag>, Enable log(Pair with -log-domainid), only support 'intf-type sa'\n" 149ca0551cfSopenharmony_ci expect_result += \ 150ca0551cfSopenharmony_ci " -t <hitrace tag> "\ 151ca0551cfSopenharmony_ci "Place the constant name from hitrace_meter.h file in <hitrace tag>, only support 'intf-type sa'\n" 152ca0551cfSopenharmony_ci expect_result += \ 153ca0551cfSopenharmony_ci " --intf-type <tag> Set type of generated codes 'sa' or 'hdi', default type is 'sa'" 154ca0551cfSopenharmony_ci command = f"{self.cmd} -h" 155ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.OK) 156ca0551cfSopenharmony_ci command = f"{self.cmd} --help" 157ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 158ca0551cfSopenharmony_ci return ret 159ca0551cfSopenharmony_ci 160ca0551cfSopenharmony_ci 161ca0551cfSopenharmony_ci# print version info 162ca0551cfSopenharmony_ciclass TestCmdPrintVersion(Test): 163ca0551cfSopenharmony_ci def run(self): 164ca0551cfSopenharmony_ci expect_result = "idl 1.0\n" 165ca0551cfSopenharmony_ci expect_result += "Copyright (c) Hua"\ 166ca0551cfSopenharmony_ci "wei Technologies Co., Ltd. 2024. All rights reserved.\n" 167ca0551cfSopenharmony_ci command = f"{self.cmd} -v" 168ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.OK) 169ca0551cfSopenharmony_ci command = f"{self.cmd} --version" 170ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 171ca0551cfSopenharmony_ci return ret 172ca0551cfSopenharmony_ci 173ca0551cfSopenharmony_ci 174ca0551cfSopenharmony_ci# exec not support cmd 175ca0551cfSopenharmony_ciclass TestCmdNotSupport(Test): 176ca0551cfSopenharmony_ci def run_sa(self): 177ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-abc" is illegal.\n""" 178ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 179ca0551cfSopenharmony_ci command = f"{self.cmd} -abc" 180ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 181ca0551cfSopenharmony_ci 182ca0551cfSopenharmony_ci # sa not support cmd 183ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'system'.\n" 184ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 185ca0551cfSopenharmony_ci command = f"{self.cmd} --system full" 186ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 187ca0551cfSopenharmony_ci 188ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'm' or 'mode'.\n" 189ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 190ca0551cfSopenharmony_ci command = f"{self.cmd} --mode ipc" 191ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 192ca0551cfSopenharmony_ci command = f"{self.cmd} -m ipc" 193ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 194ca0551cfSopenharmony_ci 195ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'p' or 'package'.\n" 196ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 197ca0551cfSopenharmony_ci command = f"{self.cmd} -p abc.test" 198ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 199ca0551cfSopenharmony_ci command = f"{self.cmd} --package abc.test" 200ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 201ca0551cfSopenharmony_ci 202ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'hash'.\n" 203ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 204ca0551cfSopenharmony_ci command = f"{self.cmd} --hash" 205ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 206ca0551cfSopenharmony_ci 207ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'r'.\n" 208ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 209ca0551cfSopenharmony_ci command = f"{self.cmd} -r abc:./" 210ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 211ca0551cfSopenharmony_ci 212ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'o'.\n" 213ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 214ca0551cfSopenharmony_ci command = f"{self.cmd} -o test.file" 215ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 216ca0551cfSopenharmony_ci 217ca0551cfSopenharmony_ci expect_result = \ 218ca0551cfSopenharmony_ci "[IDL-GEN]: Option 'intf-type sa' only support language option 'gen-cpp', 'gen-rust' or 'gen-ts'.\n" 219ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 220ca0551cfSopenharmony_ci command = f"{self.cmd} --gen-c" 221ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 222ca0551cfSopenharmony_ci return ret 223ca0551cfSopenharmony_ci 224ca0551cfSopenharmony_ci def run_hdi(self): 225ca0551cfSopenharmony_ci # hdi not support cmd 226ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type hdi' not support option 'dump-metadata'.\n" 227ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 228ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --dump-metadata" 229ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 230ca0551cfSopenharmony_ci 231ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-s" is illegal.\n""" 232ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 233ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -s" 234ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 235ca0551cfSopenharmony_ci 236ca0551cfSopenharmony_ci expect_result = \ 237ca0551cfSopenharmony_ci "[IDL-GEN]: Option 'intf-type hdi' only support language option 'gen-c', 'gen-cpp' or 'gen-java'.\n" 238ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 239ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-ts" 240ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 241ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-rust" 242ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 243ca0551cfSopenharmony_ci return ret 244ca0551cfSopenharmony_ci 245ca0551cfSopenharmony_ci def run(self): 246ca0551cfSopenharmony_ci ret = self.run_sa() 247ca0551cfSopenharmony_ci ret &= self.run_hdi() 248ca0551cfSopenharmony_ci return ret 249ca0551cfSopenharmony_ci 250ca0551cfSopenharmony_ci 251ca0551cfSopenharmony_ci# set not support value 252ca0551cfSopenharmony_ciclass TestCmdNotSupportValue(Test): 253ca0551cfSopenharmony_ci def run(self): 254ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: The Option \"-abc\" is illegal.\n" 255ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 256ca0551cfSopenharmony_ci command = f"{self.cmd} -abc" 257ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 258ca0551cfSopenharmony_ci return ret 259ca0551cfSopenharmony_ci 260ca0551cfSopenharmony_ciclass TestCmdModeTypeTest(Test): 261ca0551cfSopenharmony_ci def run(self): 262ca0551cfSopenharmony_ci expect_result = "" 263ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --mode low" 264ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.OK) 265ca0551cfSopenharmony_ci 266ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -m passthrough" 267ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 268ca0551cfSopenharmony_ci 269ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --mode ipc" 270ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 271ca0551cfSopenharmony_ci 272ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -m kernel" 273ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 274ca0551cfSopenharmony_ci 275ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: invalid generate mode set: 'abc', please input low/passthrough/ipc/kernel/sa." 276ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --mode abc" 277ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 278ca0551cfSopenharmony_ci return ret 279ca0551cfSopenharmony_ci 280ca0551cfSopenharmony_ci 281ca0551cfSopenharmony_ciclass TestCmdPackageTypeTest(Test): 282ca0551cfSopenharmony_ci def run(self): 283ca0551cfSopenharmony_ci expect_result = "" 284ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -p abc" 285ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.OK) 286ca0551cfSopenharmony_ci 287ca0551cfSopenharmony_ci return ret 288ca0551cfSopenharmony_ci 289ca0551cfSopenharmony_ci 290ca0551cfSopenharmony_ciclass TestCmdDumpAstTypeTest(Test): 291ca0551cfSopenharmony_ci def run(self): 292ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: no idl files.""" 293ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --dump-ast" 294ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 295ca0551cfSopenharmony_ci 296ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 297ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --dump-ast" 298ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 299ca0551cfSopenharmony_ci 300ca0551cfSopenharmony_ci command = f"{self.cmd} --dump-ast" 301ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 302ca0551cfSopenharmony_ci 303ca0551cfSopenharmony_ci return ret 304ca0551cfSopenharmony_ci 305ca0551cfSopenharmony_ci 306ca0551cfSopenharmony_ciclass TestCmdDumpMetaDataTest(Test): 307ca0551cfSopenharmony_ci def run(self): 308ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type hdi' not support option 'dump-metadata'.\n" 309ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 310ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --dump-metadata" 311ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 312ca0551cfSopenharmony_ci 313ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 314ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --dump-metadata" 315ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 316ca0551cfSopenharmony_ci 317ca0551cfSopenharmony_ci return ret 318ca0551cfSopenharmony_ci 319ca0551cfSopenharmony_ci 320ca0551cfSopenharmony_ciclass TestCmdHashTest(Test): 321ca0551cfSopenharmony_ci def run(self): 322ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: no idl files." 323ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --hash" 324ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 325ca0551cfSopenharmony_ci 326ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'hash'.\n" 327ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 328ca0551cfSopenharmony_ci command = f"{self.cmd} --hash" 329ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 330ca0551cfSopenharmony_ci 331ca0551cfSopenharmony_ci return ret 332ca0551cfSopenharmony_ci 333ca0551cfSopenharmony_ci 334ca0551cfSopenharmony_ciclass TestCmdRootPackageTest(Test): 335ca0551cfSopenharmony_ci def run(self): 336ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-r" is illegal.\n""" 337ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 338ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -r" 339ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 340ca0551cfSopenharmony_ci 341ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: invalid path 'xx'." 342ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -r x:xx" 343ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 344ca0551cfSopenharmony_ci 345ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' not support option 'r'.\n""" 346ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 347ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -r x:./" 348ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 349ca0551cfSopenharmony_ci 350ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-r" is illegal.\n""" 351ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 352ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -r" 353ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 354ca0551cfSopenharmony_ci 355ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: invalid path 'xx'." 356ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -r x:xx" 357ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 358ca0551cfSopenharmony_ci 359ca0551cfSopenharmony_ci expect_result = "" 360ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -r x:./" 361ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 362ca0551cfSopenharmony_ci 363ca0551cfSopenharmony_ci return ret 364ca0551cfSopenharmony_ci 365ca0551cfSopenharmony_ci 366ca0551cfSopenharmony_ciclass TestCmdDirectoryTest(Test): 367ca0551cfSopenharmony_ci def run(self): 368ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-D" is illegal.\n""" 369ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 370ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -D" 371ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 372ca0551cfSopenharmony_ci 373ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'D'.\n" 374ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 375ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -D ./" 376ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 377ca0551cfSopenharmony_ci 378ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: failed to open './x/', errno:2\n" 379ca0551cfSopenharmony_ci expect_result += """[IDL-GEN]: Option 'intf-type sa' not support option 'D'.\n""" 380ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 381ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -D ./x" 382ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 383ca0551cfSopenharmony_ci 384ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-D" is illegal.\n""" 385ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 386ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -D" 387ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 388ca0551cfSopenharmony_ci 389ca0551cfSopenharmony_ci expect_result = "" 390ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -D {os.path.dirname(os.path.abspath(__file__))}" 391ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 392ca0551cfSopenharmony_ci 393ca0551cfSopenharmony_ci expect_result = f"[IDL-GEN]: failed to open '{os.path.dirname(os.path.abspath(__file__))}/x/', errno:2" 394ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -D {os.path.dirname(os.path.abspath(__file__))}/x" 395ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 396ca0551cfSopenharmony_ci 397ca0551cfSopenharmony_ci return ret 398ca0551cfSopenharmony_ci 399ca0551cfSopenharmony_ci 400ca0551cfSopenharmony_ciclass TestCmdPlaceGenerateDirectoryTest(Test): 401ca0551cfSopenharmony_ci def run(self): 402ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-d" is illegal.\n""" 403ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 404ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -d" 405ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 406ca0551cfSopenharmony_ci 407ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 408ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -d ./" 409ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 410ca0551cfSopenharmony_ci 411ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 412ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -d x" 413ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 414ca0551cfSopenharmony_ci 415ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-d" is illegal.\n""" 416ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 417ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -d" 418ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 419ca0551cfSopenharmony_ci 420ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: no idl files." 421ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -d ./" 422ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 423ca0551cfSopenharmony_ci 424ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: no idl files." 425ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -d x" 426ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 427ca0551cfSopenharmony_ci 428ca0551cfSopenharmony_ci return ret 429ca0551cfSopenharmony_ci 430ca0551cfSopenharmony_ci 431ca0551cfSopenharmony_ciclass TestCmdPlaceOutputFileTest(Test): 432ca0551cfSopenharmony_ci def run(self): 433ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-o" is illegal.\n""" 434ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 435ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -o" 436ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 437ca0551cfSopenharmony_ci 438ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'o'.\n" 439ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 440ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -o xx" 441ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 442ca0551cfSopenharmony_ci 443ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-o" is illegal.\n""" 444ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 445ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -o" 446ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 447ca0551cfSopenharmony_ci 448ca0551cfSopenharmony_ci expect_result = "" 449ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -o xx" 450ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 451ca0551cfSopenharmony_ci 452ca0551cfSopenharmony_ci return ret 453ca0551cfSopenharmony_ci 454ca0551cfSopenharmony_ci 455ca0551cfSopenharmony_ciclass TestCmdPlaceMetadataInfoTest(Test): 456ca0551cfSopenharmony_ci def run(self): 457ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-s" is illegal.\n""" 458ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 459ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -s" 460ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 461ca0551cfSopenharmony_ci 462ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type hdi' not support option '-s'.\n" 463ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 464ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -s aaa" 465ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 466ca0551cfSopenharmony_ci 467ca0551cfSopenharmony_ci return ret 468ca0551cfSopenharmony_ci 469ca0551cfSopenharmony_ci 470ca0551cfSopenharmony_ciclass TestCmdGenCTest(Test): 471ca0551cfSopenharmony_ci def run(self): 472ca0551cfSopenharmony_ci expect_result = \ 473ca0551cfSopenharmony_ci "[IDL-GEN]: Option 'intf-type sa' only support language option 'gen-cpp', 'gen-rust' or 'gen-ts'.\n" 474ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 475ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --gen-c" 476ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 477ca0551cfSopenharmony_ci 478ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: no idl files." 479ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-c" 480ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 481ca0551cfSopenharmony_ci 482ca0551cfSopenharmony_ci return ret 483ca0551cfSopenharmony_ci 484ca0551cfSopenharmony_ci 485ca0551cfSopenharmony_ciclass TestCmdGenCppTest(Test): 486ca0551cfSopenharmony_ci def run(self): 487ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 488ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --gen-cpp" 489ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 490ca0551cfSopenharmony_ci 491ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: no idl files." 492ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-cpp" 493ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 494ca0551cfSopenharmony_ci 495ca0551cfSopenharmony_ci return ret 496ca0551cfSopenharmony_ci 497ca0551cfSopenharmony_ci 498ca0551cfSopenharmony_ciclass TestCmdGenJavaTest(Test): 499ca0551cfSopenharmony_ci def run(self): 500ca0551cfSopenharmony_ci expect_result = \ 501ca0551cfSopenharmony_ci "[IDL-GEN]: Option 'intf-type sa' only support language option 'gen-cpp', 'gen-rust' or 'gen-ts'.\n" 502ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 503ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --gen-java" 504ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 505ca0551cfSopenharmony_ci 506ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: no idl files." 507ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-java" 508ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 509ca0551cfSopenharmony_ci 510ca0551cfSopenharmony_ci return ret 511ca0551cfSopenharmony_ci 512ca0551cfSopenharmony_ciclass TestCmdGenRustTest(Test): 513ca0551cfSopenharmony_ci def run(self): 514ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 515ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --gen-rust" 516ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 517ca0551cfSopenharmony_ci 518ca0551cfSopenharmony_ci expect_result = \ 519ca0551cfSopenharmony_ci """[IDL-GEN]: Option 'intf-type hdi' only support language option 'gen-c', 'gen-cpp' or 'gen-java'.\n""" 520ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 521ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-rust" 522ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 523ca0551cfSopenharmony_ci 524ca0551cfSopenharmony_ci return ret 525ca0551cfSopenharmony_ci 526ca0551cfSopenharmony_ci 527ca0551cfSopenharmony_ciclass TestCmdGenTsTest(Test): 528ca0551cfSopenharmony_ci def run(self): 529ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 530ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --gen-ts" 531ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 532ca0551cfSopenharmony_ci 533ca0551cfSopenharmony_ci expect_result = \ 534ca0551cfSopenharmony_ci "[IDL-GEN]: Option 'intf-type hdi' only support language option 'gen-c', 'gen-cpp' or 'gen-java'.\n" 535ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 536ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --gen-ts" 537ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 538ca0551cfSopenharmony_ci 539ca0551cfSopenharmony_ci return ret 540ca0551cfSopenharmony_ci 541ca0551cfSopenharmony_ci 542ca0551cfSopenharmony_ciclass TestCmdGenLogDomainIdTest(Test): 543ca0551cfSopenharmony_ci def run(self): 544ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 545ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --log-domainid xx" 546ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 547ca0551cfSopenharmony_ci 548ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type hdi' not support option '-t', '-log-domainid' or '-log-tag'.\n" 549ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 550ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --log-domainid xx" 551ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 552ca0551cfSopenharmony_ci 553ca0551cfSopenharmony_ci return ret 554ca0551cfSopenharmony_ci 555ca0551cfSopenharmony_ci 556ca0551cfSopenharmony_ciclass TestCmdGenLogDomainTagTest(Test): 557ca0551cfSopenharmony_ci def run(self): 558ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "--log-tag" is illegal.\n""" 559ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 560ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --log-tag" 561ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 562ca0551cfSopenharmony_ci 563ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 564ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --log-tag xx" 565ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 566ca0551cfSopenharmony_ci 567ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 568ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --log-domainid xx --log-tag xx" 569ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 570ca0551cfSopenharmony_ci 571ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "---log-tag" is illegal.\n""" 572ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 573ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi ---log-tag xx" 574ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 575ca0551cfSopenharmony_ci 576ca0551cfSopenharmony_ci return ret 577ca0551cfSopenharmony_ci 578ca0551cfSopenharmony_ci 579ca0551cfSopenharmony_ciclass TestCmdHiTraceTest(Test): 580ca0551cfSopenharmony_ci def run(self): 581ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-t" is illegal.\n""" 582ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 583ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -t" 584ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 585ca0551cfSopenharmony_ci 586ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 587ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa -t xx" 588ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 589ca0551cfSopenharmony_ci 590ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "-t" is illegal.\n""" 591ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 592ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -t" 593ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 594ca0551cfSopenharmony_ci 595ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type hdi' not support option '-t', '-log-domainid' or '-log-tag'.\n" 596ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 597ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi -t xx" 598ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 599ca0551cfSopenharmony_ci 600ca0551cfSopenharmony_ci return ret 601ca0551cfSopenharmony_ci 602ca0551cfSopenharmony_ciclass TestCmdSystemTest(Test): 603ca0551cfSopenharmony_ci def run(self): 604ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "--system" is illegal.\n""" 605ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 606ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --system" 607ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 608ca0551cfSopenharmony_ci 609ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: invalid system level set: 'xx', please input mini/lite/full" 610ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --system xx" 611ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 612ca0551cfSopenharmony_ci 613ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: Option 'intf-type sa' not support option 'system'.\n" 614ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 615ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa --system mini" 616ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 617ca0551cfSopenharmony_ci 618ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "--system" is illegal.\n""" 619ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 620ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --system" 621ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 622ca0551cfSopenharmony_ci 623ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: invalid system level set: 'xx', please input mini/lite/full" 624ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --system xx" 625ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 626ca0551cfSopenharmony_ci 627ca0551cfSopenharmony_ci expect_result = "" 628ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --system mini" 629ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 630ca0551cfSopenharmony_ci 631ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --system lite" 632ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 633ca0551cfSopenharmony_ci 634ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi --system full" 635ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 636ca0551cfSopenharmony_ci return ret 637ca0551cfSopenharmony_ci 638ca0551cfSopenharmony_ciclass TestCmdIntfTypeTest(Test): 639ca0551cfSopenharmony_ci def run(self): 640ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: Option 'intf-type sa' must set idl file.""" 641ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type sa" 642ca0551cfSopenharmony_ci ret = exec_command_check(command, expect_result, RetStatus.ERR) 643ca0551cfSopenharmony_ci 644ca0551cfSopenharmony_ci expect_result = "" 645ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type hdi" 646ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.OK) 647ca0551cfSopenharmony_ci 648ca0551cfSopenharmony_ci expect_result = "[IDL-GEN]: invalid interface type set: 'xxx', please input hdi/sa." 649ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type xxx" 650ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 651ca0551cfSopenharmony_ci 652ca0551cfSopenharmony_ci expect_result = """[IDL-GEN]: The Option "--intf-type" is illegal.\n""" 653ca0551cfSopenharmony_ci expect_result += """Use "-h, --help" to show usage.""" 654ca0551cfSopenharmony_ci command = f"{self.cmd} --intf-type" 655ca0551cfSopenharmony_ci ret &= exec_command_check(command, expect_result, RetStatus.ERR) 656ca0551cfSopenharmony_ci 657ca0551cfSopenharmony_ci return ret 658ca0551cfSopenharmony_ci 659ca0551cfSopenharmony_cidef get_subclasses(cls): 660ca0551cfSopenharmony_ci return cls.__subclasses__() 661ca0551cfSopenharmony_ci 662ca0551cfSopenharmony_ci 663ca0551cfSopenharmony_ciclass Tests: 664ca0551cfSopenharmony_ci test_cases = get_subclasses(Test) 665ca0551cfSopenharmony_ci pass 666ca0551cfSopenharmony_ci 667ca0551cfSopenharmony_ci @staticmethod 668ca0551cfSopenharmony_ci def set_up_test_case(): 669ca0551cfSopenharmony_ci hdi_gen_file = get_idl() 670ca0551cfSopenharmony_ci ret = file_exists(hdi_gen_file) 671ca0551cfSopenharmony_ci if not ret: 672ca0551cfSopenharmony_ci print_failure("[===========] no such file:{}".format(hdi_gen_file)) 673ca0551cfSopenharmony_ci return ret 674ca0551cfSopenharmony_ci 675ca0551cfSopenharmony_ci @staticmethod 676ca0551cfSopenharmony_ci def set_down_test_case(): 677ca0551cfSopenharmony_ci pass 678ca0551cfSopenharmony_ci 679ca0551cfSopenharmony_ci @staticmethod 680ca0551cfSopenharmony_ci def test(): 681ca0551cfSopenharmony_ci test_case_num = len(Tests.test_cases) 682ca0551cfSopenharmony_ci success_case_num = 0 683ca0551cfSopenharmony_ci print_success("[===========] start {} test".format(test_case_num)) 684ca0551cfSopenharmony_ci for test_case in Tests.test_cases: 685ca0551cfSopenharmony_ci obj = test_case() 686ca0551cfSopenharmony_ci if obj.test(): 687ca0551cfSopenharmony_ci success_case_num += 1 688ca0551cfSopenharmony_ci print_success("[ PASSED ] {} test".format(success_case_num)) 689ca0551cfSopenharmony_ci failure_case_num = test_case_num - success_case_num 690ca0551cfSopenharmony_ci if failure_case_num > 0: 691ca0551cfSopenharmony_ci print_failure("[ FAILED ] {} test".format(failure_case_num)) 692ca0551cfSopenharmony_ci 693ca0551cfSopenharmony_ci 694ca0551cfSopenharmony_ciif __name__ == "__main__": 695ca0551cfSopenharmony_ci if not Tests.set_up_test_case(): 696ca0551cfSopenharmony_ci exit(-1) 697ca0551cfSopenharmony_ci Tests.test() 698ca0551cfSopenharmony_ci Tests.set_down_test_case() 699