# Copyright (c) 2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//base/notification/distributed_notification_service/notification.gni") import("//build/config/features.gni") import("//build/test.gni") # advancednotificationservice_fuzztest公共配置模板 template("advancednotificationservice_fuzztest_target") { assert(defined(invoker.sources_value), "sources_value must be defined") assert(defined(invoker.fuzz_config_file_value), "fuzz_config_file_value must be defined") ohos_fuzztest(target_name) { module_out_path = service_fuzz_test_path sources = [ "${component_path}/test/fuzztest/fuzz_common_base/mock/mock_notification_func.cpp", ] sources += invoker.sources_value fuzz_config_file = invoker.fuzz_config_file_value include_dirs = [ "${services_path}/ans/include" ] cflags = [ "-fno-math-errno", "-fno-unroll-loops", "-fmerge-all-constants", "-fno-ident", "-Oz", "-flto", "-ffunction-sections", "-fdata-sections", ] defines = [] deps = [] if (defined(invoker.defines_value)) { defines += invoker.defines_value } if (defined(invoker.deps_value)) { deps += invoker.deps_value } if (defined(invoker.common_deps_value)) { deps += invoker.common_deps_value } # 公共外部依赖 external_deps = [ "ability_base:configuration", "ability_runtime:ability_manager", "ability_runtime:app_manager", "ability_runtime:appkit_native", "ability_runtime:dataobs_manager", "ability_runtime:extension_manager", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "c_utils:utils", "common_event_service:cesfwk_innerkits", "config_policy:configpolicy_util", "data_share:datashare_common", "data_share:datashare_consumer", "data_share:datashare_permission", "device_manager:devicemanagersdk", "ffrt:libffrt", "hilog:libhilog", "i18n:intl_util", "image_framework:image_native", "init:libbegetutil", "kv_store:distributeddata_inner", "openssl:libcrypto_shared", "os_account:os_account_innerkits", "relational_store:native_rdb", "resource_management:global_resmgr", "time_service:time_client", ] external_deps += component_external_deps # 条件编译标志 if (is_double_framework) { cflags += [ "-DCONFIG_DUAL_FRAMEWORK" ] } if (distributed_notification_supported) { defines += [ "DISTRIBUTED_NOTIFICATION_SUPPORTED" ] deps += [ "${services_path}/distributed:libans_distributed" ] include_dirs += [ "${services_path}/distributed/include" ] } if (notification_smart_reminder_supported) { defines += [ "NOTIFICATION_SMART_REMINDER_SUPPORTED" ] } if (device_usage) { external_deps += [ "device_usage_statistics:usagestatsinner" ] defines += [ "DEVICE_USAGE_STATISTICS_ENABLE" ] } if (hisysevent_usage) { cflags += [ "-DHAS_HISYSEVENT_PART" ] external_deps += [ "hisysevent:libhisysevent" ] } if (standby_enable) { external_deps += [ "device_standby:standby_innerkits" ] defines += [ "DEVICE_STANDBY_ENABLE" ] } if (player_framework) { external_deps += [ "player_framework:media_client" ] defines += [ "PLAYER_FRAMEWORK_ENABLE" ] } if (ans_hitrace_usage) { external_deps += [ "hitrace:hitrace_meter" ] defines += [ "HITRACE_METER_ENABLE" ] } if (ans_config_policy_enable) { external_deps += [ "config_policy:configpolicy_util" ] defines += [ "CONFIG_POLICY_ENABLE" ] } if (screenlock_mgr_enable) { external_deps += [ "screenlock_mgr:screenlock_client" ] defines += [ "SCREENLOCK_MGR_ENABLE" ] } if (distributed_notification_service_feature_additional_control || distributed_notification_service_feature_privileged_message) { defines += [ "ENABLE_ANS_EXT_WRAPPER" ] } if (distributed_notification_service_feature_additional_control) { defines += [ "ENABLE_ANS_ADDITIONAL_CONTROL" ] } if (telephony_cust) { defines += [ "ENABLE_ANS_TELEPHONY_CUST_WRAPPER" ] } if (distributed_notification_service_feature_disable_fa_model) { defines += [ "ANS_DISABLE_FA_MODEL" ] } } } # 公共依赖(所有 fuzzer 共享) common_deps = [ "${component_path}/test/fuzztest/fuzz_common_base:fuzz_common_base", "${component_path}/test/fuzztest/fuzz_common_base:fuzz_mock_object", "${frameworks_module_ans_path}:ans_innerkits", "${services_path}/ans:ans_service_sources" ]