diff --git a/interfaces/inner_api/inputmethod_ability/BUILD.gn b/interfaces/inner_api/inputmethod_ability/BUILD.gn index 5c4e7262ad78292ed8367b780b80abf0ca821442..1a65912eb3650ff6586d6eedf8aad9409ab77f56 100644 --- a/interfaces/inner_api/inputmethod_ability/BUILD.gn +++ b/interfaces/inner_api/inputmethod_ability/BUILD.gn @@ -547,3 +547,112 @@ ohos_static_library("inputmethod_ability_static") { subsystem_name = "inputmethod" part_name = "imf" } + +ohos_static_library("inputmethod_ability_fuzz_static") { + branch_protector_ret = "pac_ret" + + sources = [ + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_interface.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_ability_utils.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_agent_service_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_core_service_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/input_method_panel.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/task_manager.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/tasks/task.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_ability/src/window_change_listener_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_client_info.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_tools.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_utils.cpp", + "${inputmethod_path}/services/src/sys_cfg_parser.cpp", + ] + + external_deps = [ + "ability_base:configuration", + "ability_base:want", + "ability_runtime:ability_context_native", + "bundle_framework:appexecfwk_base", + "c_utils:utils", + "config_policy:configpolicy_util", + "eventhandler:libeventhandler", + "graphic_2d:librender_service_client", + "graphic_2d:window_animation", + "hilog:libhilog", + "input:libmmi-client", + "ipc:ipc_single", + "napi:ace_napi", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + "window_manager:libdm", + "window_manager:libwsutils", + ] + + public_external_deps = [ "window_manager:libwm" ] + + deps = [ + ":input_control_channel_interface", + ":input_data_channel_interface", + ":input_method_core_interface", + ":input_method_system_ability_interface", + ":keyevent_consumer_interface", + ":system_cmd_channel_interface", + "${inputmethod_path}/common:inputmethod_common", + "${inputmethod_path}/common/imf_hisysevent:imf_hisysevent", + "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_proxy", + "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:input_method_agent_stub", + "${inputmethod_path}/services/file:imf_file_static", + "${inputmethod_path}/services/json:imf_json_static", + ] + + input_control_channel_output_values = + get_target_outputs(":input_control_channel_interface") + sources += filter_include(input_control_channel_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + data_channel_output_values = + get_target_outputs(":input_data_channel_interface") + sources += filter_include(data_channel_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + core_output_values = get_target_outputs(":input_method_core_interface") + sources += filter_include(core_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + system_cmd_channel_output_values = + get_target_outputs(":system_cmd_channel_interface") + sources += filter_include(system_cmd_channel_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + input_method_system_ability_output_values = + get_target_outputs(":input_method_system_ability_interface") + sources += filter_include(input_method_system_ability_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + keyevent_consumer_output_values = + get_target_outputs(":keyevent_consumer_interface") + sources += filter_include(keyevent_consumer_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + public_configs = [ ":inputmethod_ability_native_public_config" ] + + subsystem_name = "inputmethod" + part_name = "imf" +} diff --git a/interfaces/inner_api/inputmethod_controller/BUILD.gn b/interfaces/inner_api/inputmethod_controller/BUILD.gn index d63bff863d47c10fe06509f442b05c118f265f14..073fcbae3996e067428861ef40d0cfc3f569fe1e 100644 --- a/interfaces/inner_api/inputmethod_controller/BUILD.gn +++ b/interfaces/inner_api/inputmethod_controller/BUILD.gn @@ -315,3 +315,71 @@ ohos_static_library("inputmethod_client_static") { subsystem_name = "inputmethod" part_name = "imf" } + +ohos_static_library("inputmethod_client_fuzz_static") { + testonly = true + branch_protector_ret = "pac_ret" + sanitize = { + boundary_sanitize = true + integer_overflow = true + ubsan = true + } + sources = [ + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/ime_event_monitor_manager.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/ime_event_monitor_manager_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/ime_system_channel.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_client_info.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_client_service_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_data_channel_service_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_controller.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_tools.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/input_method_utils.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/keyevent_consumer_service_impl.cpp", + "${inputmethod_path}/frameworks/native/inputmethod_controller/src/system_cmd_channel_service_impl.cpp", + ] + + public_configs = [ ":inputmethod_client_native_public_config" ] + + deps = [ + ":input_client_interface", + ":input_method_agent_interface", + "${inputmethod_path}/common:inputmethod_common", + "${inputmethod_path}/common/imf_hisysevent:imf_hisysevent", + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:input_data_channel_stub", + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:input_method_core_proxy", + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:input_method_system_ability_proxy", + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:keyevent_consumer_stub", + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:system_cmd_channel_stub", + ] + + external_deps = [ + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "cJSON:cjson", + "c_utils:utils", + "eventhandler:libeventhandler", + "hilog:libhilog", + "input:libmmi-client", + "ipc:ipc_single", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] + + client_output_values = get_target_outputs(":input_client_interface") + sources += filter_include(client_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + agent_output_values = get_target_outputs(":input_method_agent_interface") + sources += filter_include(agent_output_values, + [ + "*_proxy.cpp", + "*_stub.cpp", + ]) + + public_external_deps = [ "ability_base:want" ] + + subsystem_name = "inputmethod" + part_name = "imf" +} diff --git a/test/common/BUILD.gn b/test/common/BUILD.gn index 1991140f4ff11632dfbc718bb47798a65eae35cc..795392dab400124898dbce36c89fda4be7180630 100644 --- a/test/common/BUILD.gn +++ b/test/common/BUILD.gn @@ -59,3 +59,28 @@ ohos_static_library("inputmethod_test_common") { subsystem_name = "inputmethod" part_name = "imf" } + +ohos_static_library("inputmethod_fuzztest_common") { + testonly = true + branch_protector_ret = "pac_ret" + sources = [ + "src/ime_setting_listener_test_impl.cpp", + "src/input_method_engine_listener_impl.cpp", + "src/keyboard_listener_test_impl.cpp", + "src/text_listener.cpp", + ] + configs = [ ":test_common_config" ] + public_configs = [ ":test_common_public_config" ] + deps = [ + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:inputmethod_ability", + "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_fuzz_static", + ] + external_deps = [ + "hilog:libhilog", + "input:libmmi-client", + "ipc:ipc_single", + ] + + subsystem_name = "inputmethod" + part_name = "imf" +} diff --git a/test/fuzztest/inputmethodcontroller_fuzzer/BUILD.gn b/test/fuzztest/inputmethodcontroller_fuzzer/BUILD.gn index ae396959389668d756918ec42c3a2013680a7430..875d838324e0e574ba54ae7e879fd0314a68c617 100644 --- a/test/fuzztest/inputmethodcontroller_fuzzer/BUILD.gn +++ b/test/fuzztest/inputmethodcontroller_fuzzer/BUILD.gn @@ -42,7 +42,7 @@ ohos_fuzztest("InputMethodControllerFuzzTest") { deps = [ "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client", "${inputmethod_path}/services:inputmethod_service", - "${inputmethod_path}/test/common:inputmethod_test_common", + "${inputmethod_path}/test/common:inputmethod_fuzztest_common", ] external_deps = [ diff --git a/test/fuzztest/systemcmdchannelstub_fuzzer/BUILD.gn b/test/fuzztest/systemcmdchannelstub_fuzzer/BUILD.gn index 2e43cee8cc5c783a9f82cdc4a93b21aa1176229e..c09c378d38474f5625443eeb4f2d25736fbaa02a 100644 --- a/test/fuzztest/systemcmdchannelstub_fuzzer/BUILD.gn +++ b/test/fuzztest/systemcmdchannelstub_fuzzer/BUILD.gn @@ -41,8 +41,8 @@ ohos_fuzztest("SystemCmdChannelStubFuzzTest") { sources = [ "systemcmdchannelstub_fuzzer.cpp" ] deps = [ - "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:inputmethod_ability_static", - "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_static", + "${inputmethod_path}/interfaces/inner_api/inputmethod_ability:inputmethod_ability_fuzz_static", + "${inputmethod_path}/interfaces/inner_api/inputmethod_controller:inputmethod_client_fuzz_static", ] external_deps = [