140f5d65dSopenharmony_ci# Copyright (c) 2022-2024 Huawei Device Co., Ltd. 240f5d65dSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 340f5d65dSopenharmony_ci# you may not use this file except in compliance with the License. 440f5d65dSopenharmony_ci# You may obtain a copy of the License at 540f5d65dSopenharmony_ci# 640f5d65dSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 740f5d65dSopenharmony_ci# 840f5d65dSopenharmony_ci# Unless required by applicable law or agreed to in writing, software 940f5d65dSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 1040f5d65dSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1140f5d65dSopenharmony_ci# See the License for the specific language governing permissions and 1240f5d65dSopenharmony_ci# limitations under the License. 1340f5d65dSopenharmony_ci 1440f5d65dSopenharmony_ciimport("//build/test.gni") 1540f5d65dSopenharmony_ciimport("//foundation/filemanagement/app_file_service/backup.gni") 1640f5d65dSopenharmony_ci 1740f5d65dSopenharmony_ciohos_unittest("b_error_test") { 1840f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 1940f5d65dSopenharmony_ci sanitize = { 2040f5d65dSopenharmony_ci integer_overflow = true 2140f5d65dSopenharmony_ci cfi = true 2240f5d65dSopenharmony_ci cfi_cross_dso = true 2340f5d65dSopenharmony_ci debug = false 2440f5d65dSopenharmony_ci } 2540f5d65dSopenharmony_ci 2640f5d65dSopenharmony_ci module_out_path = path_module_out_tests 2740f5d65dSopenharmony_ci 2840f5d65dSopenharmony_ci sources = [ "b_error/b_error_test.cpp" ] 2940f5d65dSopenharmony_ci 3040f5d65dSopenharmony_ci deps = [ 3140f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 3240f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 3340f5d65dSopenharmony_ci ] 3440f5d65dSopenharmony_ci 3540f5d65dSopenharmony_ci external_deps = [ "hilog:libhilog" ] 3640f5d65dSopenharmony_ci 3740f5d65dSopenharmony_ci defines = [ "private = public" ] 3840f5d65dSopenharmony_ci 3940f5d65dSopenharmony_ci use_exceptions = true 4040f5d65dSopenharmony_ci} 4140f5d65dSopenharmony_ci 4240f5d65dSopenharmony_ciohos_unittest("b_file_test") { 4340f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 4440f5d65dSopenharmony_ci sanitize = { 4540f5d65dSopenharmony_ci integer_overflow = true 4640f5d65dSopenharmony_ci cfi = true 4740f5d65dSopenharmony_ci cfi_cross_dso = true 4840f5d65dSopenharmony_ci debug = false 4940f5d65dSopenharmony_ci } 5040f5d65dSopenharmony_ci 5140f5d65dSopenharmony_ci module_out_path = path_module_out_tests 5240f5d65dSopenharmony_ci 5340f5d65dSopenharmony_ci sources = [ 5440f5d65dSopenharmony_ci "b_filesystem/b_dir_test.cpp", 5540f5d65dSopenharmony_ci "b_filesystem/b_file_hash_test.cpp", 5640f5d65dSopenharmony_ci "b_filesystem/b_file_test.cpp", 5740f5d65dSopenharmony_ci ] 5840f5d65dSopenharmony_ci 5940f5d65dSopenharmony_ci include_dirs = [ "${path_backup}/utils/src/b_filesystem" ] 6040f5d65dSopenharmony_ci 6140f5d65dSopenharmony_ci deps = [ 6240f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 6340f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 6440f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 6540f5d65dSopenharmony_ci ] 6640f5d65dSopenharmony_ci 6740f5d65dSopenharmony_ci external_deps = [ 6840f5d65dSopenharmony_ci "c_utils:utils", 6940f5d65dSopenharmony_ci "hilog:libhilog", 7040f5d65dSopenharmony_ci ] 7140f5d65dSopenharmony_ci 7240f5d65dSopenharmony_ci use_exceptions = true 7340f5d65dSopenharmony_ci} 7440f5d65dSopenharmony_ci 7540f5d65dSopenharmony_ciohos_unittest("b_jsonutil_test") { 7640f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 7740f5d65dSopenharmony_ci sanitize = { 7840f5d65dSopenharmony_ci integer_overflow = true 7940f5d65dSopenharmony_ci cfi = true 8040f5d65dSopenharmony_ci cfi_cross_dso = true 8140f5d65dSopenharmony_ci debug = false 8240f5d65dSopenharmony_ci } 8340f5d65dSopenharmony_ci 8440f5d65dSopenharmony_ci module_out_path = path_module_out_tests 8540f5d65dSopenharmony_ci 8640f5d65dSopenharmony_ci sources = [ "b_jsonutil/b_jsonutil_test.cpp" ] 8740f5d65dSopenharmony_ci 8840f5d65dSopenharmony_ci deps = [ 8940f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 9040f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 9140f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 9240f5d65dSopenharmony_ci ] 9340f5d65dSopenharmony_ci 9440f5d65dSopenharmony_ci external_deps = [ 9540f5d65dSopenharmony_ci "cJSON:cjson", 9640f5d65dSopenharmony_ci "c_utils:utils", 9740f5d65dSopenharmony_ci "hilog:libhilog", 9840f5d65dSopenharmony_ci ] 9940f5d65dSopenharmony_ci 10040f5d65dSopenharmony_ci use_exceptions = true 10140f5d65dSopenharmony_ci} 10240f5d65dSopenharmony_ci 10340f5d65dSopenharmony_ciohos_unittest("b_json_test") { 10440f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 10540f5d65dSopenharmony_ci 10640f5d65dSopenharmony_ci module_out_path = path_module_out_tests 10740f5d65dSopenharmony_ci 10840f5d65dSopenharmony_ci sources = [ 10940f5d65dSopenharmony_ci "${path_backup}/utils/src/b_json/b_json_entity_extension_config.cpp", 11040f5d65dSopenharmony_ci "${path_backup}/utils/src/b_json/b_json_service_disposal_config.cpp", 11140f5d65dSopenharmony_ci "b_json/b_json_cached_entity_test.cpp", 11240f5d65dSopenharmony_ci "b_json/b_json_entity_ext_manage_test.cpp", 11340f5d65dSopenharmony_ci "b_json/b_json_entity_extension_config_test.cpp", 11440f5d65dSopenharmony_ci "b_json/b_json_service_disposal_config_test.cpp", 11540f5d65dSopenharmony_ci "b_json/b_report_entity_test.cpp", 11640f5d65dSopenharmony_ci ] 11740f5d65dSopenharmony_ci sources += backup_mock_parameter_src 11840f5d65dSopenharmony_ci 11940f5d65dSopenharmony_ci include_dirs = [ 12040f5d65dSopenharmony_ci "${path_backup}/utils", 12140f5d65dSopenharmony_ci "${path_base}/include", 12240f5d65dSopenharmony_ci ] 12340f5d65dSopenharmony_ci include_dirs += backup_mock_parameter_include_dirs 12440f5d65dSopenharmony_ci 12540f5d65dSopenharmony_ci deps = [ 12640f5d65dSopenharmony_ci "${path_backup}/interfaces/innerkits/native:sandbox_helper_native", 12740f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 12840f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 12940f5d65dSopenharmony_ci "${path_googletest}:gmock_main", 13040f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 13140f5d65dSopenharmony_ci ] 13240f5d65dSopenharmony_ci 13340f5d65dSopenharmony_ci external_deps = [ 13440f5d65dSopenharmony_ci "cJSON:cjson", 13540f5d65dSopenharmony_ci "c_utils:utils", 13640f5d65dSopenharmony_ci "hilog:libhilog", 13740f5d65dSopenharmony_ci ] 13840f5d65dSopenharmony_ci 13940f5d65dSopenharmony_ci defines = [ 14040f5d65dSopenharmony_ci "LOG_TAG=\"app_file_service\"", 14140f5d65dSopenharmony_ci "LOG_DOMAIN=0xD004303", 14240f5d65dSopenharmony_ci "private = public", 14340f5d65dSopenharmony_ci "protected = public", 14440f5d65dSopenharmony_ci ] 14540f5d65dSopenharmony_ci 14640f5d65dSopenharmony_ci sanitize = { 14740f5d65dSopenharmony_ci integer_overflow = true 14840f5d65dSopenharmony_ci cfi = true 14940f5d65dSopenharmony_ci cfi_cross_dso = true 15040f5d65dSopenharmony_ci debug = false 15140f5d65dSopenharmony_ci } 15240f5d65dSopenharmony_ci 15340f5d65dSopenharmony_ci use_exceptions = true 15440f5d65dSopenharmony_ci} 15540f5d65dSopenharmony_ci 15640f5d65dSopenharmony_ciohos_unittest("b_tarball_cmdline_test") { 15740f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 15840f5d65dSopenharmony_ci sanitize = { 15940f5d65dSopenharmony_ci integer_overflow = true 16040f5d65dSopenharmony_ci cfi = true 16140f5d65dSopenharmony_ci cfi_cross_dso = true 16240f5d65dSopenharmony_ci debug = false 16340f5d65dSopenharmony_ci } 16440f5d65dSopenharmony_ci 16540f5d65dSopenharmony_ci module_out_path = path_module_out_tests 16640f5d65dSopenharmony_ci 16740f5d65dSopenharmony_ci sources = [ 16840f5d65dSopenharmony_ci "${path_backup_mock}/b_process/b_process_mock.cpp", 16940f5d65dSopenharmony_ci "b_tarball/b_tarball_cmdline_test.cpp", 17040f5d65dSopenharmony_ci ] 17140f5d65dSopenharmony_ci 17240f5d65dSopenharmony_ci include_dirs = [ 17340f5d65dSopenharmony_ci "${path_base}/include", 17440f5d65dSopenharmony_ci "${path_backup}/utils/include", 17540f5d65dSopenharmony_ci ] 17640f5d65dSopenharmony_ci 17740f5d65dSopenharmony_ci deps = [ 17840f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 17940f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 18040f5d65dSopenharmony_ci "${path_googletest}:gmock_main", 18140f5d65dSopenharmony_ci ] 18240f5d65dSopenharmony_ci 18340f5d65dSopenharmony_ci external_deps = [ 18440f5d65dSopenharmony_ci "c_utils:utils", 18540f5d65dSopenharmony_ci "hilog:libhilog", 18640f5d65dSopenharmony_ci ] 18740f5d65dSopenharmony_ci 18840f5d65dSopenharmony_ci use_exceptions = true 18940f5d65dSopenharmony_ci} 19040f5d65dSopenharmony_ci 19140f5d65dSopenharmony_ciohos_unittest("b_tarball_factory_test") { 19240f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 19340f5d65dSopenharmony_ci sanitize = { 19440f5d65dSopenharmony_ci integer_overflow = true 19540f5d65dSopenharmony_ci cfi = true 19640f5d65dSopenharmony_ci cfi_cross_dso = true 19740f5d65dSopenharmony_ci debug = false 19840f5d65dSopenharmony_ci } 19940f5d65dSopenharmony_ci 20040f5d65dSopenharmony_ci module_out_path = path_module_out_tests 20140f5d65dSopenharmony_ci 20240f5d65dSopenharmony_ci sources = [ 20340f5d65dSopenharmony_ci "${path_backup_mock}/b_tarball/b_tarball_cmdline_mock.cpp", 20440f5d65dSopenharmony_ci "b_tarball/b_tarball_factory_test.cpp", 20540f5d65dSopenharmony_ci ] 20640f5d65dSopenharmony_ci 20740f5d65dSopenharmony_ci include_dirs = [ 20840f5d65dSopenharmony_ci "${path_base}/include", 20940f5d65dSopenharmony_ci "${path_backup}/utils/include", 21040f5d65dSopenharmony_ci ] 21140f5d65dSopenharmony_ci 21240f5d65dSopenharmony_ci deps = [ 21340f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 21440f5d65dSopenharmony_ci "${path_googletest}:gmock_main", 21540f5d65dSopenharmony_ci ] 21640f5d65dSopenharmony_ci external_deps = [ "c_utils:utils" ] 21740f5d65dSopenharmony_ci use_exceptions = true 21840f5d65dSopenharmony_ci} 21940f5d65dSopenharmony_ci 22040f5d65dSopenharmony_ciohos_unittest("b_process_test") { 22140f5d65dSopenharmony_ci branch_protector_ret = "pac_ret" 22240f5d65dSopenharmony_ci sanitize = { 22340f5d65dSopenharmony_ci integer_overflow = true 22440f5d65dSopenharmony_ci cfi = true 22540f5d65dSopenharmony_ci cfi_cross_dso = true 22640f5d65dSopenharmony_ci debug = false 22740f5d65dSopenharmony_ci } 22840f5d65dSopenharmony_ci 22940f5d65dSopenharmony_ci module_out_path = path_module_out_tests 23040f5d65dSopenharmony_ci 23140f5d65dSopenharmony_ci sources = [ "b_process/b_process_test.cpp" ] 23240f5d65dSopenharmony_ci 23340f5d65dSopenharmony_ci include_dirs = [ 23440f5d65dSopenharmony_ci "${path_base}/include", 23540f5d65dSopenharmony_ci "${path_backup}/utils/include", 23640f5d65dSopenharmony_ci ] 23740f5d65dSopenharmony_ci 23840f5d65dSopenharmony_ci deps = [ 23940f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 24040f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 24140f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 24240f5d65dSopenharmony_ci ] 24340f5d65dSopenharmony_ci external_deps = [ 24440f5d65dSopenharmony_ci "c_utils:utils", 24540f5d65dSopenharmony_ci "hilog:libhilog", 24640f5d65dSopenharmony_ci ] 24740f5d65dSopenharmony_ci 24840f5d65dSopenharmony_ci use_exceptions = true 24940f5d65dSopenharmony_ci} 25040f5d65dSopenharmony_ci 25140f5d65dSopenharmony_ciohos_unittest("b_json_other_test") { 25240f5d65dSopenharmony_ci module_out_path = path_module_out_tests 25340f5d65dSopenharmony_ci 25440f5d65dSopenharmony_ci sources = [ 25540f5d65dSopenharmony_ci "${path_backup}/tests/mock/cJson/src/cJsonMock.cpp", 25640f5d65dSopenharmony_ci "${path_backup}/tests/unittests/backup_utils/b_json/b_json_service_disposal_config_other_test.cpp", 25740f5d65dSopenharmony_ci "${path_backup}/utils/src/b_json/b_json_service_disposal_config.cpp", 25840f5d65dSopenharmony_ci ] 25940f5d65dSopenharmony_ci sources += backup_mock_parameter_src 26040f5d65dSopenharmony_ci 26140f5d65dSopenharmony_ci include_dirs = [ 26240f5d65dSopenharmony_ci "${path_backup}/utils", 26340f5d65dSopenharmony_ci "${path_base}/include", 26440f5d65dSopenharmony_ci "${path_backup}/tests/mock/cJson/include", 26540f5d65dSopenharmony_ci ] 26640f5d65dSopenharmony_ci include_dirs += backup_mock_parameter_include_dirs 26740f5d65dSopenharmony_ci 26840f5d65dSopenharmony_ci deps = [ 26940f5d65dSopenharmony_ci "${path_backup}/interfaces/innerkits/native:sandbox_helper_native", 27040f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 27140f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 27240f5d65dSopenharmony_ci "${path_googletest}:gmock_main", 27340f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 27440f5d65dSopenharmony_ci ] 27540f5d65dSopenharmony_ci 27640f5d65dSopenharmony_ci external_deps = [ 27740f5d65dSopenharmony_ci "cJSON:cjson", 27840f5d65dSopenharmony_ci "c_utils:utils", 27940f5d65dSopenharmony_ci "hilog:libhilog", 28040f5d65dSopenharmony_ci ] 28140f5d65dSopenharmony_ci 28240f5d65dSopenharmony_ci defines = [ 28340f5d65dSopenharmony_ci "LOG_TAG=\"app_file_service\"", 28440f5d65dSopenharmony_ci "LOG_DOMAIN=0xD004303", 28540f5d65dSopenharmony_ci "private = public", 28640f5d65dSopenharmony_ci "protected = public", 28740f5d65dSopenharmony_ci ] 28840f5d65dSopenharmony_ci 28940f5d65dSopenharmony_ci use_exceptions = true 29040f5d65dSopenharmony_ci} 29140f5d65dSopenharmony_ci 29240f5d65dSopenharmony_ciohos_unittest("b_jsonutil_other_test") { 29340f5d65dSopenharmony_ci module_out_path = path_module_out_tests 29440f5d65dSopenharmony_ci 29540f5d65dSopenharmony_ci sources = [ 29640f5d65dSopenharmony_ci "${path_backup}/tests/mock/cJson/src/cJsonMock.cpp", 29740f5d65dSopenharmony_ci "${path_backup}/tests/unittests/backup_utils/b_jsonutil/b_jsonutil_other_test.cpp", 29840f5d65dSopenharmony_ci "${path_backup}/utils/src/b_jsonutil/b_jsonutil.cpp", 29940f5d65dSopenharmony_ci ] 30040f5d65dSopenharmony_ci sources += backup_mock_parameter_src 30140f5d65dSopenharmony_ci 30240f5d65dSopenharmony_ci include_dirs = [ 30340f5d65dSopenharmony_ci "${path_backup}/utils", 30440f5d65dSopenharmony_ci "${path_base}/include", 30540f5d65dSopenharmony_ci "${path_backup}/tests/mock/cJson/include", 30640f5d65dSopenharmony_ci ] 30740f5d65dSopenharmony_ci include_dirs += backup_mock_parameter_include_dirs 30840f5d65dSopenharmony_ci 30940f5d65dSopenharmony_ci deps = [ 31040f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 31140f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 31240f5d65dSopenharmony_ci "${path_googletest}:gmock_main", 31340f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 31440f5d65dSopenharmony_ci ] 31540f5d65dSopenharmony_ci 31640f5d65dSopenharmony_ci external_deps = [ 31740f5d65dSopenharmony_ci "cJSON:cjson", 31840f5d65dSopenharmony_ci "c_utils:utils", 31940f5d65dSopenharmony_ci "hilog:libhilog", 32040f5d65dSopenharmony_ci ] 32140f5d65dSopenharmony_ci 32240f5d65dSopenharmony_ci defines = [ 32340f5d65dSopenharmony_ci "LOG_TAG=\"app_file_service\"", 32440f5d65dSopenharmony_ci "LOG_DOMAIN=0xD004303", 32540f5d65dSopenharmony_ci "private = public", 32640f5d65dSopenharmony_ci "protected = public", 32740f5d65dSopenharmony_ci ] 32840f5d65dSopenharmony_ci 32940f5d65dSopenharmony_ci use_exceptions = true 33040f5d65dSopenharmony_ci} 33140f5d65dSopenharmony_ci 33240f5d65dSopenharmony_ciohos_unittest("b_json_clear_data_test") { 33340f5d65dSopenharmony_ci module_out_path = path_module_out_tests 33440f5d65dSopenharmony_ci 33540f5d65dSopenharmony_ci sources = [ 33640f5d65dSopenharmony_ci "${path_backup}/tests/mock/cJson/src/cJsonMock.cpp", 33740f5d65dSopenharmony_ci "${path_backup}/tests/unittests/backup_utils/b_json/b_json_clear_data_config_test.cpp", 33840f5d65dSopenharmony_ci "${path_backup}/utils/src/b_json/b_json_clear_data_config.cpp", 33940f5d65dSopenharmony_ci ] 34040f5d65dSopenharmony_ci sources += backup_mock_parameter_src 34140f5d65dSopenharmony_ci 34240f5d65dSopenharmony_ci include_dirs = [ 34340f5d65dSopenharmony_ci "${path_backup}/utils", 34440f5d65dSopenharmony_ci "${path_base}/include", 34540f5d65dSopenharmony_ci "${path_backup}/tests/mock/cJson/include", 34640f5d65dSopenharmony_ci ] 34740f5d65dSopenharmony_ci include_dirs += backup_mock_parameter_include_dirs 34840f5d65dSopenharmony_ci 34940f5d65dSopenharmony_ci deps = [ 35040f5d65dSopenharmony_ci "${path_backup}/interfaces/innerkits/native:sandbox_helper_native", 35140f5d65dSopenharmony_ci "${path_backup}/tests/utils:backup_test_utils", 35240f5d65dSopenharmony_ci "${path_backup}/utils/:backup_utils", 35340f5d65dSopenharmony_ci "${path_googletest}:gmock_main", 35440f5d65dSopenharmony_ci "${path_jsoncpp}:jsoncpp", 35540f5d65dSopenharmony_ci ] 35640f5d65dSopenharmony_ci 35740f5d65dSopenharmony_ci external_deps = [ 35840f5d65dSopenharmony_ci "cJSON:cjson", 35940f5d65dSopenharmony_ci "c_utils:utils", 36040f5d65dSopenharmony_ci "hilog:libhilog", 36140f5d65dSopenharmony_ci ] 36240f5d65dSopenharmony_ci 36340f5d65dSopenharmony_ci defines = [ 36440f5d65dSopenharmony_ci "LOG_TAG=\"app_file_service\"", 36540f5d65dSopenharmony_ci "LOG_DOMAIN=0xD004303", 36640f5d65dSopenharmony_ci "private = public", 36740f5d65dSopenharmony_ci "protected = public", 36840f5d65dSopenharmony_ci ] 36940f5d65dSopenharmony_ci 37040f5d65dSopenharmony_ci use_exceptions = true 37140f5d65dSopenharmony_ci} 37240f5d65dSopenharmony_ci 37340f5d65dSopenharmony_cigroup("backup_test") { 37440f5d65dSopenharmony_ci testonly = true 37540f5d65dSopenharmony_ci 37640f5d65dSopenharmony_ci deps = [ 37740f5d65dSopenharmony_ci ":b_error_test", 37840f5d65dSopenharmony_ci ":b_file_test", 37940f5d65dSopenharmony_ci ":b_json_clear_data_test", 38040f5d65dSopenharmony_ci ":b_json_other_test", 38140f5d65dSopenharmony_ci ":b_json_test", 38240f5d65dSopenharmony_ci ":b_jsonutil_other_test", 38340f5d65dSopenharmony_ci ":b_jsonutil_test", 38440f5d65dSopenharmony_ci ":b_process_test", 38540f5d65dSopenharmony_ci ":b_tarball_cmdline_test", 38640f5d65dSopenharmony_ci ":b_tarball_factory_test", 38740f5d65dSopenharmony_ci ] 38840f5d65dSopenharmony_ci} 389