From 331a102e05de9c47c68f75832017be46dcde6b2c Mon Sep 17 00:00:00 2001 From: yjguo Date: Mon, 25 Aug 2025 15:05:08 +0800 Subject: [PATCH 1/5] add Signed-off-by: yjguo --- .../audioa2dpdevice_fuzzer/BUILD.gn | 28 +- .../audio_a2dp_device_fuzzer.cpp | 0 .../audioa2dpdevice_fuzzer/corpus/init | 0 .../audioa2dpdevice_fuzzer/project.xml | 0 .../audioactivedevice_fuzzer/BUILD.gn | 34 +- .../audio_active_device_fuzzer.cpp | 0 .../audioactivedevice_fuzzer/corpus/init | 0 .../audioactivedevice_fuzzer/project.xml | 0 .../audioconnecteddevice_fuzzer/BUILD.gn | 36 +- .../audio_connected_device_fuzzer.cpp | 0 .../audioconnecteddevice_fuzzer/corpus/init | 0 .../audioconnecteddevice_fuzzer/project.xml | 0 .../audiodevicecommon_fuzzer/BUILD.gn | 40 +- .../audio_device_common_fuzzer.cpp | 0 .../audiodevicecommon_fuzzer/corpus/init | 0 .../audiodevicecommon_fuzzer/project.xml | 0 .../audiodevicelock_fuzzer/BUILD.gn | 34 +- .../audio_device_lock_fuzzer.cpp | 0 .../audiodevicelock_fuzzer/corpus/init | 0 .../audiodevicelock_fuzzer/project.xml | 0 .../BUILD.gn | 28 +- .../audio_interrupt_dfx_collector_fuzzer.cpp | 0 .../corpus/init | 0 .../project.xml | 0 .../audiointerruptgroupinfo_fuzzer/BUILD.gn | 113 ++ .../audio_interrupt_group_info_fuzzer.cpp | 134 ++ .../corpus/init | 13 + .../project.xml | 0 .../audiointerruptservice_fuzzer/BUILD.gn | 97 ++ .../audio_interrupt_service_fuzzer.cpp | 1490 +++++++++++++++++ .../audiointerruptservice_fuzzer/project.xml | 25 + .../audiointerruptservicemore_fuzzer/BUILD.gn | 149 ++ .../audio_interrupt_service_more_fuzzer.cpp | 211 +++ .../project.xml | 25 + .../audiointerruptzone_fuzzer/BUILD.gn | 113 ++ .../audio_interrupt_zone_fuzzer.cpp | 202 +++ .../audiointerruptzone_fuzzer/corpus/init | 13 + .../audiointerruptzone_fuzzer/project.xml | 25 + .../audiorecoverydevice_fuzzer/BUILD.gn | 34 +- .../audio_recovery_device_fuzzer.cpp | 0 .../audiorecoverydevice_fuzzer/corpus/init | 0 .../audiorecoverydevice_fuzzer/project.xml | 25 + 42 files changed, 2752 insertions(+), 117 deletions(-) rename test/fuzztest/{ => audio_policy_fuzzer}/audioa2dpdevice_fuzzer/BUILD.gn (77%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioa2dpdevice_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioa2dpdevice_fuzzer/project.xml (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioactivedevice_fuzzer/BUILD.gn (74%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioactivedevice_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioactivedevice_fuzzer/project.xml (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioconnecteddevice_fuzzer/BUILD.gn (72%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioconnecteddevice_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audioconnecteddevice_fuzzer/project.xml (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicecommon_fuzzer/BUILD.gn (72%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicecommon_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicecommon_fuzzer/project.xml (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicelock_fuzzer/BUILD.gn (73%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicelock_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicelock_fuzzer/project.xml (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiointerruptdfxcollector_fuzzer/BUILD.gn (77%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiointerruptdfxcollector_fuzzer/audio_interrupt_dfx_collector_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiointerruptdfxcollector_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiointerruptdfxcollector_fuzzer/project.xml (100%) create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/BUILD.gn create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/audio_interrupt_group_info_fuzzer.cpp create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/corpus/init rename test/fuzztest/{audiorecoverydevice_fuzzer => audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer}/project.xml (100%) create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/BUILD.gn create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/audio_interrupt_service_fuzzer.cpp create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/project.xml create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/BUILD.gn create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/audio_interrupt_service_more_fuzzer.cpp create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/project.xml create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/BUILD.gn create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/audio_interrupt_zone_fuzzer.cpp create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/corpus/init create mode 100644 test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/project.xml rename test/fuzztest/{ => audio_policy_fuzzer}/audiorecoverydevice_fuzzer/BUILD.gn (74%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiorecoverydevice_fuzzer/audio_recovery_device_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiorecoverydevice_fuzzer/corpus/init (100%) create mode 100644 test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/project.xml diff --git a/test/fuzztest/audioa2dpdevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn similarity index 77% rename from test/fuzztest/audioa2dpdevice_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn index 7290a49f56..8a812cbc17 100644 --- a/test/fuzztest/audioa2dpdevice_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn @@ -13,19 +13,19 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioA2dpDeviceFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audioa2dpdevice_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", ] cflags = [ "-g", @@ -34,17 +34,17 @@ ohos_fuzztest("AudioA2dpDeviceFuzzTest") { "-fno-omit-frame-pointer", "-fno-access-control", ] - configs = [ "../../../services/audio_policy:audio_policy_public_config" ] + configs = [ "../../../../services/audio_policy:audio_policy_public_config" ] sources = [ "audio_a2dp_device_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", ] external_deps = [ diff --git a/test/fuzztest/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp diff --git a/test/fuzztest/audioa2dpdevice_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audioa2dpdevice_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/corpus/init diff --git a/test/fuzztest/audioa2dpdevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audioa2dpdevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml diff --git a/test/fuzztest/audioactivedevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn similarity index 74% rename from test/fuzztest/audioactivedevice_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn index 24236a4776..cf7d0cca3b 100644 --- a/test/fuzztest/audioactivedevice_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn @@ -13,20 +13,20 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioActiveDeviceFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audioactivedevice_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", - "../../../services/audio_service/server/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + "../../../../services/audio_service/server/include", ] cflags = [ @@ -38,20 +38,20 @@ ohos_fuzztest("AudioActiveDeviceFuzzTest") { ] configs = [ - "../../../services/audio_policy:audio_policy_public_config", - "../../../services/audio_engine:audio_engine_node_config", + "../../../../services/audio_policy:audio_policy_public_config", + "../../../../services/audio_engine:audio_engine_node_config", ] sources = [ "audio_active_device_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", - "../../../services/audio_engine:audio_engine_utils", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", + "../../../../services/audio_engine:audio_engine_utils", ] external_deps = [ diff --git a/test/fuzztest/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp diff --git a/test/fuzztest/audioactivedevice_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audioactivedevice_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/corpus/init diff --git a/test/fuzztest/audioactivedevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audioactivedevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml diff --git a/test/fuzztest/audioconnecteddevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/BUILD.gn similarity index 72% rename from test/fuzztest/audioconnecteddevice_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/BUILD.gn index c57ea99bc6..0b13ca1b70 100644 --- a/test/fuzztest/audioconnecteddevice_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/BUILD.gn @@ -13,20 +13,20 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioConnectedDeviceFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audioconnecteddevice_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", - "../../../services/audio_service/server/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + "../../../../services/audio_service/server/include", ] cflags = [ @@ -38,21 +38,21 @@ ohos_fuzztest("AudioConnectedDeviceFuzzTest") { ] configs = [ - "../../../services/audio_policy:audio_policy_public_config", - "../../../services/audio_engine:audio_engine_node_config", + "../../../../services/audio_policy:audio_policy_public_config", + "../../../../services/audio_engine:audio_engine_node_config", ] sources = [ "audio_connected_device_fuzzer.cpp" ] deps = [ - "../../../services/audio_service/idl:audio_framework_interface", - "../../../frameworks/native/audioclock:audio_clock", - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_engine:audio_engine_manager", - "../../../services/audio_engine:audio_engine_utils", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", + "../../../../services/audio_service/idl:audio_framework_interface", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_engine:audio_engine_manager", + "../../../../services/audio_engine:audio_engine_utils", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", ] external_deps = [ diff --git a/test/fuzztest/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp diff --git a/test/fuzztest/audioconnecteddevice_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audioconnecteddevice_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/corpus/init diff --git a/test/fuzztest/audioconnecteddevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audioconnecteddevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/project.xml diff --git a/test/fuzztest/audiodevicecommon_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/BUILD.gn similarity index 72% rename from test/fuzztest/audiodevicecommon_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/BUILD.gn index 891f82c0ab..20d4b12367 100644 --- a/test/fuzztest/audiodevicecommon_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/BUILD.gn @@ -13,22 +13,22 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioDeviceCommonFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audiodevicecommon_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", - "../../../frameworks/native/audioinnercall/include", - "../../../services/audio_service/server/include", - "../../../services/audio_policy/client/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + "../../../../frameworks/native/audioinnercall/include", + "../../../../services/audio_service/server/include", + "../../../../services/audio_policy/client/include", ] cflags = [ "-g", @@ -38,21 +38,21 @@ ohos_fuzztest("AudioDeviceCommonFuzzTest") { "-fno-access-control", ] configs = [ - "../../../services/audio_policy:audio_policy_public_config", - "../../../services/audio_service:audio_service_config" + "../../../../services/audio_policy:audio_policy_public_config", + "../../../../services/audio_service:audio_service_config" ] sources = [ "audio_device_common_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", - "../../../services/audio_policy:audio_policy_client", - "../../../services/audio_service:audio_service_static", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", + "../../../../services/audio_policy:audio_policy_client", + "../../../../services/audio_service:audio_service_static", ] external_deps = [ diff --git a/test/fuzztest/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp similarity index 100% rename from test/fuzztest/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp diff --git a/test/fuzztest/audiodevicecommon_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audiodevicecommon_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/corpus/init diff --git a/test/fuzztest/audiodevicecommon_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audiodevicecommon_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/project.xml diff --git a/test/fuzztest/audiodevicelock_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/BUILD.gn similarity index 73% rename from test/fuzztest/audiodevicelock_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/BUILD.gn index e7ce687ba0..b0071a9a5f 100644 --- a/test/fuzztest/audiodevicelock_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/BUILD.gn @@ -13,20 +13,20 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioDeviceLockFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audiodevicelock_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", - "../../../services/audio_service/server/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + "../../../../services/audio_service/server/include", ] cflags = [ @@ -38,20 +38,20 @@ ohos_fuzztest("AudioDeviceLockFuzzTest") { ] configs = [ - "../../../services/audio_policy:audio_policy_public_config", - "../../../services/audio_engine:audio_engine_node_config", + "../../../../services/audio_policy:audio_policy_public_config", + "../../../../services/audio_engine:audio_engine_node_config", ] sources = [ "audio_device_lock_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", - "../../../services/audio_engine:audio_engine_utils", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", + "../../../../services/audio_engine:audio_engine_utils", ] external_deps = [ diff --git a/test/fuzztest/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp similarity index 100% rename from test/fuzztest/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp diff --git a/test/fuzztest/audiodevicelock_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audiodevicelock_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/corpus/init diff --git a/test/fuzztest/audiodevicelock_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audiodevicelock_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/project.xml diff --git a/test/fuzztest/audiointerruptdfxcollector_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/BUILD.gn similarity index 77% rename from test/fuzztest/audiointerruptdfxcollector_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/BUILD.gn index 1a098826a2..b555389446 100644 --- a/test/fuzztest/audiointerruptdfxcollector_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/BUILD.gn @@ -13,19 +13,19 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioInterruptDfxCollectorFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audiointerruptdfxcollector_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", ] cflags = [ "-g", @@ -34,17 +34,17 @@ ohos_fuzztest("AudioInterruptDfxCollectorFuzzTest") { "-fno-omit-frame-pointer", "-fno-access-control", ] - configs = [ "../../../services/audio_policy:audio_policy_public_config" ] + configs = [ "../../../../services/audio_policy:audio_policy_public_config" ] sources = [ "audio_interrupt_dfx_collector_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", ] external_deps = [ diff --git a/test/fuzztest/audiointerruptdfxcollector_fuzzer/audio_interrupt_dfx_collector_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/audio_interrupt_dfx_collector_fuzzer.cpp similarity index 100% rename from test/fuzztest/audiointerruptdfxcollector_fuzzer/audio_interrupt_dfx_collector_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/audio_interrupt_dfx_collector_fuzzer.cpp diff --git a/test/fuzztest/audiointerruptdfxcollector_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audiointerruptdfxcollector_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/corpus/init diff --git a/test/fuzztest/audiointerruptdfxcollector_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audiointerruptdfxcollector_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer/project.xml diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/BUILD.gn new file mode 100644 index 0000000000..cd9fddd028 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/BUILD.gn @@ -0,0 +1,113 @@ +# 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("//build/config/features.gni") +import("//build/test.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") + +ohos_fuzztest("AudioInterruptGroupInfoFuzzTest") { + module_out_path = "audio_framework/audio_framework_route" + fuzz_config_file = "../audiointerruptgroupinfo_fuzzer" + + include_dirs = [ + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + ] + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-fno-access-control", + ] + configs = [ "../../../../services/audio_policy:audio_policy_public_config" ] + + sources = [ "audio_interrupt_group_info_fuzzer.cpp" ] + + deps = [ + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:extension_manager", + "ability_runtime:wantagent_innerkits", + "access_token:libaccesstoken_sdk", + "access_token:libnativetoken_shared", + "access_token:libprivacy_sdk", + "access_token:libtokenid_sdk", + "access_token:libtokensetproc_shared", + "background_task_mgr:bgtaskmgr_innerkits", + "bounds_checking_function:libsec_shared", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "c_utils:utils", + "data_share:datashare_common", + "data_share:datashare_consumer", + "eventhandler:libeventhandler", + "hdf_core:libhdf_ipc_adapter", + "hdf_core:libhdi", + "hdf_core:libpub_utils", + "hicollie:libhicollie", + "hilog:libhilog", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "init:libbegetutil", + "ipc:ipc_single", + "kv_store:distributeddata_inner", + "media_foundation:media_monitor_client", + "media_foundation:media_monitor_common", + "os_account:os_account_innerkits", + "power_manager:powermgr_client", + "relational_store:native_appdatafwk", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + "bluetooth:btframework" + ] + if (sonic_enable == true) { + external_deps += [ "pulseaudio:sonic" ] + } + if (accessibility_enable == true) { + external_deps += [ + "accessibility:accessibility_common", + "accessibility:accessibilityconfig", + ] + } + + defines = [] + if (use_libfuzzer || use_clang_coverage) { + defines += [ "TEST_COVERAGE" ] + } + if (audio_framework_feature_dtmf_tone) { + defines += [ "FEATURE_DTMF_TONE" ] + } + if (audio_framework_feature_input) { + defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ] + } +} + + + +group("fuzztest") { + testonly = true + deps = [ ":AudioInterruptGroupInfoFuzzTest" ] +} diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/audio_interrupt_group_info_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/audio_interrupt_group_info_fuzzer.cpp new file mode 100644 index 0000000000..9d461f888c --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/audio_interrupt_group_info_fuzzer.cpp @@ -0,0 +1,134 @@ +/* +* 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. +*/ + +#include +#include +#include +#include +#include "audio_info.h" +#include "audio_policy_server.h" +#include "audio_policy_service.h" +#include "audio_device_info.h" +#include "audio_utils.h" +#include "accesstoken_kit.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" +#include "access_token.h" +#include "audio_channel_blend.h" +#include "volume_ramp.h" +#include "audio_speed.h" + +#include "audio_policy_utils.h" +#include "audio_stream_descriptor.h" +#include "audio_limiter_manager.h" +#include "dfx_msg_manager.h" + +#include "audio_source_clock.h" +#include "capturer_clock_manager.h" +#include "hpae_policy_manager.h" +#include "audio_policy_state_monitor.h" +#include "audio_device_info.h" +#include "audio_spatialization_service.h" + +namespace OHOS { +namespace AudioStandard { +using namespace std; + +static const uint8_t* RAW_DATA = nullptr; +static size_t g_dataSize = 0; +static size_t g_pos; +const size_t THRESHOLD = 10; + +typedef void (*TestFuncs)(); + +template +T GetData() +{ + T object {}; + size_t objectSize = sizeof(object); + if (RAW_DATA == nullptr || objectSize > g_dataSize - g_pos) { + return object; + } + errno_t ret = memcpy_s(&object, objectSize, RAW_DATA + g_pos, objectSize); + if (ret != EOK) { + return {}; + } + g_pos += objectSize; + return object; +} + +template +uint32_t GetArrLength(T& arr) +{ + if (arr == nullptr) { + AUDIO_INFO_LOG("%{public}s: The array length is equal to 0", __func__); + return 0; + } + return sizeof(arr) / sizeof(arr[0]); +} + +void MarshallingFuzzTest() +{ + InterruptGroupInfo interruptGroupInfo; + Parcel parcel; + interruptGroupInfo.Marshalling(parcel); +} + +void UnmarshallingFuzzTest() +{ + InterruptGroupInfo interruptGroupInfo; + Parcel in; + interruptGroupInfo.Unmarshalling(in); +} + +TestFuncs g_testFuncs[] = { + MarshallingFuzzTest, + UnmarshallingFuzzTest, +}; + +bool FuzzTest(const uint8_t* rawData, size_t size) +{ + if (rawData == nullptr) { + return false; + } + + // initialize data + RAW_DATA = rawData; + g_dataSize = size; + g_pos = 0; + + uint32_t code = GetData(); + uint32_t len = GetArrLength(g_testFuncs); + if (len > 0) { + g_testFuncs[code % len](); + } else { + AUDIO_INFO_LOG("%{public}s: The len length is equal to 0", __func__); + } + + return true; +} +} // namespace AudioStandard +} // namesapce OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + if (size < OHOS::AudioStandard::THRESHOLD) { + return 0; + } + + OHOS::AudioStandard::FuzzTest(data, size); + return 0; +} diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/corpus/init new file mode 100644 index 0000000000..8f37f09254 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/corpus/init @@ -0,0 +1,13 @@ +# 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. +FUZZ \ No newline at end of file diff --git a/test/fuzztest/audiorecoverydevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audiorecoverydevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer/project.xml diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/BUILD.gn new file mode 100644 index 0000000000..35f4a00ece --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/BUILD.gn @@ -0,0 +1,97 @@ +# Copyright (c) 2024 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("//build/config/features.gni") +import("//build/test.gni") +import("../../../../accessibility.gni") +import("../../../../bluetooth_part.gni") +import("../../../../config.gni") + +ohos_fuzztest("AudioInterruptServiceFuzzTest") { + module_out_path = "audio_framework/audio_framework_route" + fuzz_config_file = "../audiointerruptservice_fuzzer" + + include_dirs = [ + "../../../../services/audio_policy/server/include", + "../../../../interfaces/inner_api/native/audiomanager/include", + "../../../../frameworks/native/commcon/include", + "../../../../interfaces/inner_api/native/audiocommon/include", + "../../../../services/audio_policy/server/domain/interrupt/include", + "../../../../utils/system/safwk/native/include", + ] + + cflags = [ + "-g", + "-O0", + "-fno-omit-frame-pointer", + "-fno-access-control", + ] + + cflags_cc = cflags + cflags_cc += [ "-fno-access-control" ] + + sources = [ "audio_interrupt_service_fuzzer.cpp" ] + + deps = [ + "../../../../services/audio_service/idl:audio_framework_interface", + "../../../../services/audio_policy:audio_policy_service_static", + ] + external_deps = [ + "ability_base:want", + "ability_runtime:app_manager", + "ability_runtime:wantagent_innerkits", + "access_token:libaccesstoken_sdk", + "access_token:libtokensetproc_shared", + "background_task_mgr:bgtaskmgr_innerkits", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "c_utils:utils", + "data_share:datashare_common", + "data_share:datashare_consumer", + "hdf_core:libhdf_ipc_adapter", + "hdf_core:libhdi", + "hdf_core:libpub_utils", + "hilog:libhilog", + "ipc:ipc_single", + "kv_store:distributeddata_inner", + "media_foundation:media_monitor_client", + "media_foundation:media_monitor_common", + "os_account:os_account_innerkits", + "power_manager:powermgr_client", + "safwk:system_ability_fwk", + ] + if (accessibility_enable == true) { + external_deps += [ + "accessibility:accessibility_common", + "accessibility:accessibilityconfig", + ] + } + defines = [] + if (use_libfuzzer || use_clang_coverage) { + defines += [ "TEST_COVERAGE" ] + } + if (audio_framework_feature_dtmf_tone) { + defines += [ "FEATURE_DTMF_TONE" ] + } + if (audio_framework_feature_input) { + defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ] + } + if (bluetooth_part_enable == true) { + external_deps += [ "bluetooth:btframework" ] + } +} + +group("fuzztest") { + testonly = true + deps = [ ":AudioInterruptServiceFuzzTest" ] +} diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/audio_interrupt_service_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/audio_interrupt_service_fuzzer.cpp new file mode 100644 index 0000000000..b61078910a --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/audio_interrupt_service_fuzzer.cpp @@ -0,0 +1,1490 @@ +/* + * Copyright (c) 2024 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. + */ + +#include +#include +#include +#undef private + +#include "../fuzz_utils.h" +#include "audio_info.h" +#include "audio_policy_server.h" +#include "audio_interrupt_service.h" + +using namespace std; + +namespace OHOS { +namespace AudioStandard { +using namespace std; +const int32_t LIMITSIZE = 4; +const std::u16string FORMMGR_INTERFACE_TOKEN = u"IAudioPolicy"; +const uint32_t TEST_ID_MODULO = 3; +constexpr uint32_t BOOL_MODULO = 2; +typedef void (*TestPtr)(const uint8_t *, size_t); + +class AudioInterruptCallbackFuzzTest : public AudioInterruptCallback { +public: + void OnInterrupt(const InterruptEventInternal &interruptEvent) override {}; +}; + +static void CreateAudioSessionService(shared_ptr &interruptService, bool isNull, int32_t id) +{ + if (interruptService == nullptr) { + return; + } + interruptService->sessionService_ = std::make_shared(); + if (isNull) { + interruptService->sessionService_ = nullptr; + return; + } + if (interruptService->sessionService_ == nullptr) { + return; + } + AudioSessionStrategy strategy; + interruptService->sessionService_->sessionMap_.insert( + std::make_pair(id, std::make_shared(id, strategy, make_shared()))); +} + +void InitFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + sptr server = nullptr; + std::shared_ptr interruptService = std::make_shared(); + + interruptService->Init(server); +} + +void AddDumpInfoFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + std::unordered_map> audioInterruptZonesMapDump; + + interruptService->AddDumpInfo(audioInterruptZonesMapDump); +} + +void SetCallbackHandlerFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr handler = DelayedSingleton::GetInstance(); + std::shared_ptr interruptService = std::make_shared(); + + interruptService->SetCallbackHandler(handler); +} + +void SetAudioManagerInterruptCallbackFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(rawData, size); + data.RewindRead(0); + + sptr object = data.ReadRemoteObject(); + std::shared_ptr interruptService = std::make_shared(); + + interruptService->SetAudioManagerInterruptCallback(object); +} + +void ActivateAudioInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.contentType = *reinterpret_cast(rawData); + audioInterrupt.streamUsage = *reinterpret_cast(rawData); + audioInterrupt.audioFocusType.streamType = *reinterpret_cast(rawData); + + interruptService->ActivateAudioInterrupt(zoneId, audioInterrupt); +} + +void DeactivateAudioInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.contentType = *reinterpret_cast(rawData); + audioInterrupt.streamUsage = *reinterpret_cast(rawData); + audioInterrupt.audioFocusType.streamType = *reinterpret_cast(rawData); + + interruptService->DeactivateAudioInterrupt(zoneId, audioInterrupt); +} + +void CreateAudioInterruptZoneFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(rawData, size); + data.RewindRead(0); + std::set pids; + pids.insert(data.ReadInt32()); + int32_t zoneId = *reinterpret_cast(rawData); + + interruptService->CreateAudioInterruptZone(zoneId); +} + +void ReleaseAudioInterruptZoneFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + + auto getZoneFunc = [](int32_t uid, const std::string &deviceTag, + const std::string &streamTag, const StreamUsage &usage)->int32_t { + return 0; + }; + + interruptService->ReleaseAudioInterruptZone(zoneId, getZoneFunc); +} + +void RemoveAudioInterruptZonePidsFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(rawData, size); + data.RewindRead(0); + std::set pids; + pids.insert(data.ReadInt32()); + int32_t zoneId = *reinterpret_cast(rawData); + + auto getZoneFunc = [](int32_t uid, const std::string &deviceTag, + const std::string &streamTag, const StreamUsage &usage)->int32_t { + return 0; + }; + interruptService->MigrateAudioInterruptZone(zoneId, getZoneFunc); +} + +void GetStreamInFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + + interruptService->GetStreamInFocus(zoneId); +} + +void GetSessionInfoInFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.contentType = *reinterpret_cast(rawData); + audioInterrupt.streamUsage = *reinterpret_cast(rawData); + audioInterrupt.audioFocusType.streamType = *reinterpret_cast(rawData); + + interruptService->GetSessionInfoInFocus(audioInterrupt, zoneId); +} + +void DispatchInterruptEventWithStreamIdFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + uint32_t sessionId = *reinterpret_cast(rawData); + InterruptEventInternal interruptEvent = {}; + interruptEvent.eventType = *reinterpret_cast(rawData); + interruptEvent.forceType = *reinterpret_cast(rawData); + interruptEvent.hintType = *reinterpret_cast(rawData); + interruptEvent.duckVolume = 0; + + interruptService->DispatchInterruptEventWithStreamId(sessionId, interruptEvent); +} + +void RequestAudioFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t clientId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.contentType = *reinterpret_cast(rawData); + audioInterrupt.streamUsage = *reinterpret_cast(rawData); + audioInterrupt.audioFocusType.streamType = *reinterpret_cast(rawData); + + interruptService->RequestAudioFocus(clientId, audioInterrupt); +} + +void AbandonAudioFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t clientId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.contentType = *reinterpret_cast(rawData); + audioInterrupt.streamUsage = *reinterpret_cast(rawData); + audioInterrupt.audioFocusType.streamType = *reinterpret_cast(rawData); + + interruptService->AbandonAudioFocus(clientId, audioInterrupt); +} + +void SetAudioInterruptCallbackFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(rawData, size); + data.RewindRead(0); + sptr object = data.ReadRemoteObject(); + + int32_t zoneId = *reinterpret_cast(rawData); + uint32_t sessionId = *reinterpret_cast(rawData); + uint32_t uid = *reinterpret_cast(rawData); + + interruptService->SetAudioInterruptCallback(zoneId, sessionId, object, uid); +} + +void UnsetAudioInterruptCallbackFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + uint32_t sessionId = *reinterpret_cast(rawData); + + interruptService->UnsetAudioInterruptCallback(zoneId, sessionId); +} + +void AddAudioInterruptZonePidsFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + + int32_t zoneId = *reinterpret_cast(rawData); + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(rawData, size); + data.RewindRead(0); + std::set pids; + pids.insert(data.ReadInt32()); + + auto getZoneFunc = [](int32_t uid, const std::string &deviceTag, + const std::string &streamTag, const StreamUsage &usage)->int32_t { + return 0; + }; + interruptService->MigrateAudioInterruptZone(zoneId, getZoneFunc); +} + +void UpdateAudioSceneFromInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(rawData, size); + data.RewindRead(0); + AudioScene audioScene = *reinterpret_cast(rawData); + AudioInterruptChangeType changeType = *reinterpret_cast(rawData); + + std::shared_ptr interruptService = std::make_shared(); + + interruptService->UpdateAudioSceneFromInterrupt(audioScene, changeType); +} + +void AudioInterruptServiceActivateAudioSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + int32_t callerPid = *reinterpret_cast(rawData); + AudioSessionStrategy strategy; + CreateAudioSessionService(interruptService, false, callerPid); + + interruptService->ActivateAudioSession(zoneId, callerPid, strategy); +} + +void AudioInterruptServiceIsSessionNeedToFetchOutputDeviceFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + bool isNullptr = (*reinterpret_cast(rawData)) % BOOL_MODULO; + int32_t callerPid = *reinterpret_cast(rawData); + CreateAudioSessionService(interruptService, !isNullptr, callerPid); + interruptService->IsSessionNeedToFetchOutputDevice(callerPid); +} + +void AudioInterruptServiceSetAudioSessionSceneFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + bool isNullptr = (*reinterpret_cast(rawData)) % BOOL_MODULO; + int32_t callerPid = *reinterpret_cast(rawData); + CreateAudioSessionService(interruptService, !isNullptr, callerPid); + AudioSessionScene scene = AudioSessionScene::INVALID; + interruptService->SetAudioSessionScene(callerPid, scene); +} + +void AudioInterruptServiceAddActiveInterruptToSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + bool isNullptr = (*reinterpret_cast(rawData)) % BOOL_MODULO; + int32_t callerPid = *reinterpret_cast(rawData); + CreateAudioSessionService(interruptService, !isNullptr, callerPid); + interruptService->AddActiveInterruptToSession(callerPid); +} + +void AudioInterruptServiceDeactivateAudioSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + bool isNullptr = (*reinterpret_cast(rawData)) % BOOL_MODULO; + int32_t zoneId = *reinterpret_cast(rawData); + int32_t callerPid = *reinterpret_cast(rawData); + CreateAudioSessionService(interruptService, !isNullptr, callerPid); + interruptService->zonesMap_.insert(std::make_pair(zoneId, std::make_shared())); + interruptService->DeactivateAudioSession(zoneId, callerPid); +} + +void AudioInterruptServiceRemovePlaceholderInterruptForSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t callerPid = *reinterpret_cast(rawData); + CreateAudioSessionService(interruptService, false, callerPid); + bool isSessionTimeout = (*reinterpret_cast(rawData)) % BOOL_MODULO; + interruptService->RemovePlaceholderInterruptForSession(callerPid, isSessionTimeout); +} + +void AudioInterruptServiceIsAudioSessionActivatedFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + bool isNullptr = (*reinterpret_cast(rawData)) % BOOL_MODULO; + + int32_t callerPid = *reinterpret_cast(rawData); + CreateAudioSessionService(interruptService, !isNullptr, callerPid); + interruptService->IsAudioSessionActivated(callerPid); +} + +void AudioInterruptServiceIsCanMixInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt incomingInterrupt; + AudioInterrupt activeInterrupt; + uint32_t testId = *reinterpret_cast(rawData) % TEST_ID_MODULO; + if (testId == 0) { + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + activeInterrupt.audioFocusType.streamType = STREAM_VOICE_CALL; + } else if (testId == 1) { + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_INVALID; + incomingInterrupt.audioFocusType.streamType = STREAM_VOICE_COMMUNICATION; + activeInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + } else { + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + activeInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + activeInterrupt.audioFocusType.streamType = STREAM_DEFAULT; + incomingInterrupt.audioFocusType.streamType = STREAM_DEFAULT; + } + + interruptService->IsCanMixInterrupt(incomingInterrupt, activeInterrupt); +} + +void AudioInterruptServiceCanMixForSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt incomingInterrupt; + AudioInterrupt activeInterrupt; + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + activeInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + activeInterrupt.audioFocusType.streamType = STREAM_DEFAULT; + incomingInterrupt.audioFocusType.streamType = STREAM_DEFAULT; + AudioFocusEntry focusEntry; + focusEntry.isReject = (*reinterpret_cast(rawData)) % BOOL_MODULO; + interruptService->CanMixForSession(incomingInterrupt, activeInterrupt, focusEntry); +} + +void AudioInterruptServiceCanMixForIncomingSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt incomingInterrupt; + AudioInterrupt activeInterrupt; + incomingInterrupt.pid = *reinterpret_cast(rawData); + AudioFocusEntry focusEntry; + CreateAudioSessionService(interruptService, false, incomingInterrupt.pid); + interruptService->CanMixForIncomingSession(incomingInterrupt, activeInterrupt, focusEntry); +} + +void AudioInterruptServiceIsIncomingStreamLowPriorityFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioFocusEntry focusEntry; + uint32_t testId = *reinterpret_cast(rawData) % TEST_ID_MODULO; + if (testId == 0) { + focusEntry.isReject = (*reinterpret_cast(rawData)) % BOOL_MODULO; + focusEntry.actionOn = INCOMING; + focusEntry.hintType = INTERRUPT_HINT_DUCK; + } else if (testId == 1) { + focusEntry.isReject = (*reinterpret_cast(rawData)) % BOOL_MODULO; + focusEntry.actionOn = INCOMING; + focusEntry.hintType = INTERRUPT_HINT_DUCK; + } else { + focusEntry.isReject = false; + focusEntry.actionOn = BOTH; + } + interruptService->IsIncomingStreamLowPriority(focusEntry); +} + +void AudioInterruptServiceIsActiveStreamLowPriorityFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioFocusEntry focusEntry; + bool testFalse = (*reinterpret_cast(rawData)) % BOOL_MODULO; + if (testFalse) { + focusEntry.actionOn = BOTH; + } else { + focusEntry.actionOn = CURRENT; + focusEntry.hintType = INTERRUPT_HINT_DUCK; + } + interruptService->IsActiveStreamLowPriority(focusEntry); +} + +void AudioInterruptServiceUnsetAudioManagerInterruptCallbackFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + std::shared_ptr handler = DelayedSingleton::GetInstance(); + interruptService->SetCallbackHandler(handler); + interruptService->UnsetAudioManagerInterruptCallback(); +} + +void AudioInterruptServiceRequestAudioFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t clientId = *reinterpret_cast(rawData); + bool isNotEqual = (*reinterpret_cast(rawData)) % BOOL_MODULO; + if (!isNotEqual) { + interruptService->clientOnFocus_ = clientId; + } + interruptService->focussedAudioInterruptInfo_ = make_unique(); + AudioInterrupt audioInterrupt; + + interruptService->RequestAudioFocus(clientId, audioInterrupt); +} + +void AudioInterruptServiceAbandonAudioFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t clientId = *reinterpret_cast(rawData); + interruptService->clientOnFocus_ = clientId; + AudioInterrupt audioInterrupt; + interruptService->AbandonAudioFocus(clientId, audioInterrupt); +} + +void AudioInterruptServiceUnsetAudioInterruptCallbackFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + uint32_t streamId = *reinterpret_cast(rawData) + 1; + std::shared_ptr interruptClient = + std::make_shared(nullptr, nullptr, nullptr); + interruptService->interruptClients_.insert({streamId, interruptClient}); + shared_ptr zone = std::make_shared(); + if (zone == nullptr) { + return; + } + zone->interruptCbsMap.insert(std::make_pair(streamId, make_shared())); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + interruptService->UnsetAudioInterruptCallback(zoneId, streamId); +} + +void AudioInterruptServiceAudioInterruptIsActiveInFocusListFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + uint32_t incomingStreamId = *reinterpret_cast(rawData) + 1; + shared_ptr zone = std::make_shared(); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + + interruptService->AudioInterruptIsActiveInFocusList(zoneId, incomingStreamId); +} + +void AudioInterruptServiceHandleAppStreamTypeFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt audioInterrupt; + audioInterrupt.pid = *reinterpret_cast(rawData); + bool isNull = (*reinterpret_cast(rawData)) % BOOL_MODULO; + CreateAudioSessionService(interruptService, !isNull, audioInterrupt.pid); + interruptService->HandleAppStreamType(0, audioInterrupt); +} + +void AudioInterruptServiceActivateAudioInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + CreateAudioSessionService(interruptService, false, zoneId); + bool isUpdatedAudioStrategy = (*reinterpret_cast(rawData)) % BOOL_MODULO; + interruptService->isPreemptMode_ = !((*reinterpret_cast(rawData)) % BOOL_MODULO); + interruptService->ActivateAudioInterrupt(zoneId, audioInterrupt, isUpdatedAudioStrategy); +} + +void AudioInterruptServicePrintLogsOfFocusStrategyBaseMusicFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + static const vector concurrencyModes = { + AudioConcurrencyMode::INVALID, + AudioConcurrencyMode::DEFAULT, + AudioConcurrencyMode::MIX_WITH_OTHERS, + AudioConcurrencyMode::DUCK_OTHERS, + AudioConcurrencyMode::PAUSE_OTHERS, + AudioConcurrencyMode::SILENT, + }; + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr || concurrencyModes.empty()) { + return; + } + + AudioInterrupt audioInterrupt; + CreateAudioSessionService(interruptService, true, 0); + AudioFocusType audioFocusType; + audioFocusType.streamType = AudioStreamType::STREAM_MUSIC; + std::pair focusPair = std::make_pair(audioFocusType, audioInterrupt.audioFocusType); + AudioFocusEntry focusEntry; + focusEntry.hintType = INTERRUPT_HINT_STOP; + focusEntry.actionOn = CURRENT; + interruptService->focusCfgMap_.insert(std::make_pair(focusPair, focusEntry)); + uint32_t index = *reinterpret_cast(rawData); + audioInterrupt.sessionStrategy.concurrencyMode = concurrencyModes[index % concurrencyModes.size()]; + + interruptService->PrintLogsOfFocusStrategyBaseMusic(audioInterrupt); +} + +void AudioInterruptServiceClearAudioFocusInfoListFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + zone->audioFocusInfoList.emplace_back(audioFocusInfo); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + + interruptService->ClearAudioFocusInfoList(); +} + +void AudioInterruptServiceActivatePreemptModeFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + + interruptService->ActivatePreemptMode(); + interruptService->DeactivatePreemptMode(); +} + +void AudioInterruptServiceInjectInterruptToAudioZoneFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + AudioFocusList interrupts; + interrupts.emplace_back(audioFocusInfo); + interruptService->InjectInterruptToAudioZone(zoneId, interrupts); +} + +void AudioInterruptServiceGetAudioFocusInfoListFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + std::string deviceTag = "testdevice"; + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + AudioFocusList interrupts; + interrupts.emplace_back(audioFocusInfo); + interruptService->GetAudioFocusInfoList(zoneId, deviceTag, interrupts); +} + +void AudioInterruptServiceGetStreamInFocusByUidFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t uid = *reinterpret_cast(rawData); + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + zone->audioFocusInfoList.emplace_back(audioFocusInfo); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + interruptService->GetStreamInFocusByUid(uid, zoneId); +} + +void AudioInterruptServiceGetSessionInfoInFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t uid = *reinterpret_cast(rawData); + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + zone->audioFocusInfoList.emplace_back(audioFocusInfo); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + AudioInterrupt interrupt; + interruptService->GetSessionInfoInFocus(interrupt, zoneId); +} + +void AudioInterruptServiceIsSameAppInShareModeFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + uint32_t testId = *reinterpret_cast(rawData) % TEST_ID_MODULO; + AudioInterrupt incomingInterrupt; + AudioInterrupt activeInterrupt; + if (testId == 0) { + incomingInterrupt.mode = INDEPENDENT_MODE; + activeInterrupt.mode = INDEPENDENT_MODE; + } else if (testId == 1) { + incomingInterrupt.mode = SHARE_MODE; + activeInterrupt.mode = SHARE_MODE; + incomingInterrupt.pid = AudioInterruptService::DEFAULT_APP_PID; + activeInterrupt.pid = AudioInterruptService::DEFAULT_APP_PID; + } else { + incomingInterrupt.mode = SHARE_MODE; + activeInterrupt.mode = SHARE_MODE; + incomingInterrupt.pid = AudioInterruptService::STREAM_DEFAULT_PRIORITY; + activeInterrupt.pid = AudioInterruptService::STREAM_DEFAULT_PRIORITY; + } + + interruptService->IsSameAppInShareMode(incomingInterrupt, activeInterrupt); +} + +void AudioInterruptServiceCheckAudioSessionExistenceFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt incomingInterrupt; + incomingInterrupt.mode = INDEPENDENT_MODE; + incomingInterrupt.pid = *reinterpret_cast(rawData); + AudioFocusEntry focusEntry; + focusEntry.isReject = (*reinterpret_cast(rawData)) % BOOL_MODULO; + CreateAudioSessionService(interruptService, !focusEntry.isReject, incomingInterrupt.pid); + + interruptService->CheckAudioSessionExistence(incomingInterrupt, focusEntry); +} + +void AudioInterruptServiceUpdateHintTypeForExistingSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + uint32_t testId = *reinterpret_cast(rawData) % TEST_ID_MODULO; + AudioInterrupt incomingInterrupt; + if (testId == 0) { + incomingInterrupt.sessionStrategy.concurrencyMode = AudioConcurrencyMode::DUCK_OTHERS; + } else if (testId == 1) { + incomingInterrupt.sessionStrategy.concurrencyMode = AudioConcurrencyMode::PAUSE_OTHERS; + } else { + incomingInterrupt.sessionStrategy.concurrencyMode = AudioConcurrencyMode::INVALID; + } + AudioFocusEntry focusEntry; + focusEntry.hintType = INTERRUPT_HINT_STOP; + + interruptService->UpdateHintTypeForExistingSession(incomingInterrupt, focusEntry); +} + +void AudioInterruptServiceProcessRemoteInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + std::shared_ptr audioInterruptZone = make_shared(); + if (interruptService == nullptr || audioInterruptZone == nullptr) { + return; + } + int32_t pid = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.pid = pid; + audioInterrupt.isAudioSessionInterrupt = *reinterpret_cast(rawData); + audioInterruptZone->audioFocusInfoList.push_back({audioInterrupt, STOP}); + interruptService->zonesMap_.insert({pid, audioInterruptZone}); + InterruptEventInternal interruptEvent; + interruptEvent.hintType = *reinterpret_cast(rawData); + std::set sessionIds; + interruptService->ProcessRemoteInterrupt(sessionIds, interruptEvent); +} + +void AudioInterruptServiceProcessActiveInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + std::shared_ptr audioInterruptZone = make_shared(); + if (interruptService == nullptr || audioInterruptZone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.pid = zoneId; + audioInterrupt.isAudioSessionInterrupt = *reinterpret_cast(rawData); + interruptService->zonesMap_.insert({zoneId, audioInterruptZone}); + audioInterruptZone->audioFocusInfoList.push_back( + {audioInterrupt, *reinterpret_cast(rawData)}); + interruptService->policyServer_ = nullptr; + interruptService->ProcessActiveInterrupt(zoneId, audioInterrupt); +} + +void AudioInterruptServiceHandleLowPriorityEventFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + std::shared_ptr sessionService = std::make_shared(); + if (interruptService == nullptr || sessionService == nullptr) { + return; + } + int32_t pid = *reinterpret_cast(rawData); + int32_t streamId = *reinterpret_cast(rawData); + sessionService->SetAudioSessionScene(pid, *reinterpret_cast(rawData)); + if (sessionService->sessionMap_[pid] == nullptr) { + return; + } + sessionService->sessionMap_[pid]->audioSessionScene_ = *reinterpret_cast(rawData); + sessionService->sessionMap_[pid]->state_ = *reinterpret_cast(rawData); + interruptService->sessionService_ = sessionService; + interruptService->handler_ = make_shared(); + bool isNull = (*reinterpret_cast(rawData)) % BOOL_MODULO; + if (isNull) { + interruptService->sessionService_ = nullptr; + } + interruptService->HandleLowPriorityEvent(pid, streamId); +} + +void AudioInterruptServiceSendActiveInterruptEventFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + uint32_t streamId = *reinterpret_cast(rawData); + InterruptEventInternal interruptEvent; + interruptEvent.hintType = *reinterpret_cast(rawData); + AudioInterrupt incomingInterrupt; + AudioInterrupt activeInterrupt; + interruptService->SendActiveInterruptEvent(streamId, interruptEvent, incomingInterrupt, activeInterrupt); +} + +void AudioInterruptServiceAudioFocusInfoListRemovalConditionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + audioInterrupt.pid = zoneId; + audioInterrupt.isAudioSessionInterrupt = *reinterpret_cast(rawData); + audioInterrupt.audioFocusType.sourceType = *reinterpret_cast(rawData); + AudioFocuState audioFocusState = *reinterpret_cast(rawData); + std::pair audioInterruptPair = std::make_pair(audioInterrupt, audioFocusState); + + interruptService->AudioFocusInfoListRemovalCondition(audioInterrupt, audioInterruptPair); +} + +void AudioInterruptServiceIsMediaStreamFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioStreamType audioStreamType = *reinterpret_cast(rawData); + + interruptService->IsMediaStream(audioStreamType); +} + +void AudioInterruptServiceUpdateAudioFocusStrategyFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt currentInterrupt; + currentInterrupt.pid = *reinterpret_cast(rawData); + AudioInterrupt incomingInterrupt; + incomingInterrupt.uid = *reinterpret_cast(rawData); + incomingInterrupt.pid = *reinterpret_cast(rawData); + incomingInterrupt.audioFocusType.sourceType = *reinterpret_cast(rawData); + AudioFocusEntry focusEntry; + focusEntry.actionOn = *reinterpret_cast(rawData); + focusEntry.forceType = *reinterpret_cast(rawData); + focusEntry.hintType = *reinterpret_cast(rawData); + focusEntry.isReject = (*reinterpret_cast(rawData)) % BOOL_MODULO; + interruptService->policyServer_ = nullptr; + + interruptService->UpdateAudioFocusStrategy(currentInterrupt, incomingInterrupt, focusEntry); +} + +void AudioInterruptServiceIsMicSourceFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + SourceType sourceType = *reinterpret_cast(rawData); + + interruptService->IsMicSource(sourceType); +} + +void AudioInterruptServiceFocusEntryContinueFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt audioInterrupt; + audioInterrupt.streamUsage = *reinterpret_cast(rawData); + audioInterrupt.uid = AUDIO_ID; + SourceType sourceType = *reinterpret_cast(rawData); + audioInterrupt.currencySources.sourcesTypes.push_back(sourceType); + std::list> list; + list.push_back({audioInterrupt, ACTIVE}); + auto iterActive = list.begin(); + AudioFocusEntry focusEntry; + focusEntry.actionOn = *reinterpret_cast(rawData); + focusEntry.forceType = *reinterpret_cast(rawData); + focusEntry.hintType = *reinterpret_cast(rawData); + focusEntry.isReject = (*reinterpret_cast(rawData)) % BOOL_MODULO; + AudioInterrupt incomingInterrupt; + incomingInterrupt.streamUsage = *reinterpret_cast(rawData); + interruptService->FocusEntryContinue(iterActive, focusEntry, incomingInterrupt); +} + +void AudioInterruptServiceProcessFocusEntryFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + zone->audioFocusInfoList.emplace_back(audioFocusInfo); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + + AudioInterrupt incomingInterrupt; + incomingInterrupt.streamUsage = *reinterpret_cast(rawData); + interruptService->ProcessFocusEntry(zoneId, incomingInterrupt); +} + +void GetHighestPriorityAudioSceneFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + interruptService->GetHighestPriorityAudioScene(zoneId); +} + +void GetStreamTypePriorityFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioStreamType streamType = *reinterpret_cast(rawData); + interruptService->GetStreamTypePriority(streamType); +} + +void DeactivatePreemptModeFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + interruptService->DeactivatePreemptMode(); +} + +void IsCapturerFocusAvailableFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + + uint32_t zoneId = *reinterpret_cast(rawData); + AudioCapturerInfo capturerInfo; + interruptService->IsCapturerFocusAvailable(zoneId, capturerInfo); +} + +void ClearAudioFocusBySessionIDFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + uint32_t sessionID = *reinterpret_cast(rawData); + interruptService->ClearAudioFocusBySessionID(sessionID); +} + +void DeactivateAudioSessionInFakeFocusModeFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + uint32_t pid = *reinterpret_cast(rawData); + InterruptHint hintType = *reinterpret_cast(rawData); + interruptService->DeactivateAudioSessionInFakeFocusMode(pid, hintType); +} + +void DeactivateAudioSessionFakeInterruptFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + int32_t callerPid = *reinterpret_cast(rawData); + bool isSessionTimeout = (*reinterpret_cast(rawData)) % BOOL_MODULO; + interruptService->DeactivateAudioSessionFakeInterrupt(zoneId, callerPid, isSessionTimeout); +} + +void AudioSessionInfoDumpFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + std::string dumpString = ""; + if (interruptService == nullptr) { + return; + } + interruptService->AudioSessionInfoDump(dumpString); +} + +void SetSessionMuteStateFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + uint32_t sessionId = *reinterpret_cast(rawData); + bool insert = (*reinterpret_cast(rawData)) % BOOL_MODULO; + bool muteFlag = (*reinterpret_cast(rawData)) % BOOL_MODULO; + if (interruptService == nullptr) { + return; + } + interruptService->SetSessionMuteState(sessionId, insert, muteFlag); +} + +void SetLatestMuteStateFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + InterruptEventInternal interruptEvent = {}; + interruptEvent.eventType = *reinterpret_cast(rawData); + interruptEvent.forceType = *reinterpret_cast(rawData); + interruptEvent.hintType = *reinterpret_cast(rawData); + interruptEvent.duckVolume = 0; + uint32_t streamId = *reinterpret_cast(rawData); + interruptService->SetLatestMuteState(interruptEvent, streamId); +} + +void UpdateMuteAudioFocusStrategyFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt currentInterrupt; + AudioInterrupt incomingInterrupt; + AudioFocusEntry focusEntry; + focusEntry.hintType = INTERRUPT_HINT_DUCK; + interruptService->UpdateMuteAudioFocusStrategy(currentInterrupt, incomingInterrupt, focusEntry); +} + +void ReportRecordGetFocusFailFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt activeInterrupt; + AudioInterrupt incomingInterrupt; + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + incomingInterrupt.pid = *reinterpret_cast(rawData); + activeInterrupt.audioFocusType.streamType = STREAM_VOICE_CALL; + activeInterrupt.pid = *reinterpret_cast(rawData); + int32_t reason = *reinterpret_cast(rawData); + interruptService->ReportRecordGetFocusFail(incomingInterrupt, activeInterrupt, reason); +} + +void ProcessActiveStreamFocusFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + std::shared_ptr interruptService = std::make_shared(); + shared_ptr zone = std::make_shared(); + if (interruptService == nullptr || zone == nullptr) { + return; + } + int32_t zoneId = *reinterpret_cast(rawData); + AudioInterrupt audioInterrupt; + pair audioFocusInfo = std::make_pair(audioInterrupt, AudioFocuState::MUTED); + zone->audioFocusInfoList.emplace_back(audioFocusInfo); + interruptService->zonesMap_.insert(std::make_pair(zoneId, zone)); + AudioInterrupt incomingInterrupt; + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_MIC; + incomingInterrupt.audioFocusType.isPlay = false; + AudioFocuState incomingState = MUTED; + std::list>::iterator activeInterrupt = zone->audioFocusInfoList.end(); + interruptService->ProcessActiveStreamFocus(zone->audioFocusInfoList, incomingInterrupt, + incomingState, activeInterrupt); +} + +void CanMixForActiveSessionFuzzTest(const uint8_t *rawData, size_t size) +{ + if (rawData == nullptr || size < LIMITSIZE) { + return; + } + + std::shared_ptr interruptService = std::make_shared(); + if (interruptService == nullptr) { + return; + } + AudioInterrupt incomingInterrupt; + AudioInterrupt activeInterrupt; + incomingInterrupt.pid = *reinterpret_cast(rawData); + AudioFocusEntry focusEntry; + CreateAudioSessionService(interruptService, false, incomingInterrupt.pid); + interruptService->CanMixForActiveSession(incomingInterrupt, activeInterrupt, focusEntry); +} +} // namespace AudioStandard +} // namesapce OHOS + +OHOS::AudioStandard::TestPtr g_testPtrs[] = { + OHOS::AudioStandard::InitFuzzTest, + OHOS::AudioStandard::AddDumpInfoFuzzTest, + OHOS::AudioStandard::SetCallbackHandlerFuzzTest, + OHOS::AudioStandard::SetAudioManagerInterruptCallbackFuzzTest, + OHOS::AudioStandard::ActivateAudioInterruptFuzzTest, + OHOS::AudioStandard::DeactivateAudioInterruptFuzzTest, + OHOS::AudioStandard::CreateAudioInterruptZoneFuzzTest, + OHOS::AudioStandard::ReleaseAudioInterruptZoneFuzzTest, + OHOS::AudioStandard::RemoveAudioInterruptZonePidsFuzzTest, + OHOS::AudioStandard::GetStreamInFocusFuzzTest, + OHOS::AudioStandard::GetSessionInfoInFocusFuzzTest, + OHOS::AudioStandard::DispatchInterruptEventWithStreamIdFuzzTest, + OHOS::AudioStandard::RequestAudioFocusFuzzTest, + OHOS::AudioStandard::AbandonAudioFocusFuzzTest, + OHOS::AudioStandard::SetAudioInterruptCallbackFuzzTest, + OHOS::AudioStandard::UnsetAudioInterruptCallbackFuzzTest, + OHOS::AudioStandard::AddAudioInterruptZonePidsFuzzTest, + OHOS::AudioStandard::UpdateAudioSceneFromInterruptFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceActivateAudioSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsSessionNeedToFetchOutputDeviceFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceSetAudioSessionSceneFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceAddActiveInterruptToSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceDeactivateAudioSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceRemovePlaceholderInterruptForSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsAudioSessionActivatedFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsCanMixInterruptFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceCanMixForSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceCanMixForIncomingSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsIncomingStreamLowPriorityFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsActiveStreamLowPriorityFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceUnsetAudioManagerInterruptCallbackFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceRequestAudioFocusFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceAbandonAudioFocusFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceUnsetAudioInterruptCallbackFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceAudioInterruptIsActiveInFocusListFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceHandleAppStreamTypeFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceActivateAudioInterruptFuzzTest, + OHOS::AudioStandard::AudioInterruptServicePrintLogsOfFocusStrategyBaseMusicFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceClearAudioFocusInfoListFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceActivatePreemptModeFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceInjectInterruptToAudioZoneFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceGetAudioFocusInfoListFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceGetStreamInFocusByUidFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceGetSessionInfoInFocusFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsSameAppInShareModeFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceCheckAudioSessionExistenceFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceUpdateHintTypeForExistingSessionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceProcessRemoteInterruptFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceProcessActiveInterruptFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceHandleLowPriorityEventFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceSendActiveInterruptEventFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceAudioFocusInfoListRemovalConditionFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsMediaStreamFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceUpdateAudioFocusStrategyFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceIsMicSourceFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceFocusEntryContinueFuzzTest, + OHOS::AudioStandard::AudioInterruptServiceProcessFocusEntryFuzzTest, + OHOS::AudioStandard::GetHighestPriorityAudioSceneFuzzTest, + OHOS::AudioStandard::GetStreamTypePriorityFuzzTest, + OHOS::AudioStandard::DeactivatePreemptModeFuzzTest, + OHOS::AudioStandard::IsCapturerFocusAvailableFuzzTest, + OHOS::AudioStandard::ClearAudioFocusBySessionIDFuzzTest, + OHOS::AudioStandard::DeactivateAudioSessionInFakeFocusModeFuzzTest, + OHOS::AudioStandard::DeactivateAudioSessionFakeInterruptFuzzTest, + OHOS::AudioStandard::AudioSessionInfoDumpFuzzTest, + OHOS::AudioStandard::SetSessionMuteStateFuzzTest, + OHOS::AudioStandard::SetLatestMuteStateFuzzTest, + OHOS::AudioStandard::UpdateMuteAudioFocusStrategyFuzzTest, + OHOS::AudioStandard::ReportRecordGetFocusFailFuzzTest, + OHOS::AudioStandard::ProcessActiveStreamFocusFuzzTest, + OHOS::AudioStandard::CanMixForActiveSessionFuzzTest, +}; + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + /* Run your code on data */ + if (data == nullptr || size <= 1) { + return 0; + } + uint32_t funcSize = sizeof(g_testPtrs) / sizeof(g_testPtrs[0]); + uint8_t firstByte = *data % funcSize; + if (firstByte >= funcSize) { + return 0; + } + data = data + 1; + size = size - 1; + g_testPtrs[firstByte](data, size); + return 0; +} \ No newline at end of file diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/project.xml new file mode 100644 index 0000000000..7133b2b924 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/BUILD.gn new file mode 100644 index 0000000000..93cb7f2ef8 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/BUILD.gn @@ -0,0 +1,149 @@ +# Copyright (c) 2024 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("//build/config/features.gni") +import("//build/test.gni") +import("../../../../accessibility.gni") +import("../../../../appgallery.gni") +import("../../../../bluetooth_part.gni") +import("../../../../config.gni") + +ohos_fuzztest("AudioInterruptServiceMoreFuzzTest") { + module_out_path = "audio_framework/audio_framework_route" + fuzz_config_file = "../audiointerruptservicemore_fuzzer" + + include_dirs = [ + "../../../../services/audio_engine/manager/include", + "../../../../services/audio_policy/client/include", + "../../../../services/audio_policy/server/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include/service/manager", + "../../../../services/audio_service/server/include", + ] + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + ] + + cflags_cc = cflags + cflags_cc += [ "-fno-access-control" ] + + configs = [ "../../../../services/audio_policy:audio_policy_public_config" ] + + sources = [ "audio_interrupt_service_more_fuzzer.cpp" ] + + defines = [] + if (audio_framework_feature_dtmf_tone) { + defines += [ "FEATURE_DTMF_TONE" ] + } + if (use_libfuzzer || use_clang_coverage) { + defines += [ "TEST_COVERAGE" ] + } + + deps = [ + "../../../../services/audio_service/idl:audio_framework_interface", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/hdiadapter_new:hdiadapter_new", + "../../../../services/audio_engine:audio_engine_manager", + "../../../../services/audio_policy:audio_policy_client_static", + "../../../../services/audio_policy:audio_policy_service_static", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:extension_manager", + "ability_runtime:wantagent_innerkits", + "access_token:libaccesstoken_sdk", + "access_token:libnativetoken_shared", + "access_token:libtokensetproc_shared", + "background_task_mgr:bgtaskmgr_innerkits", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "c_utils:utils", + "data_share:datashare_common", + "data_share:datashare_consumer", + "hdf_core:libhdf_ipc_adapter", + "hdf_core:libhdi", + "hdf_core:libpub_utils", + "hilog:libhilog", + "ipc:ipc_single", + "kv_store:distributeddata_inner", + "media_foundation:media_monitor_client", + "media_foundation:media_monitor_common", + "os_account:os_account_innerkits", + "power_manager:powermgr_client", + "relational_store:native_appdatafwk", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] + if (accessibility_enable == true) { + external_deps += [ + "accessibility:accessibility_common", + "accessibility:accessibilityconfig", + ] + } + + if (build_variant == "user") { + defines += [ "AUDIO_BUILD_VARIANT_USER" ] + } else if (build_variant == "root") { + defines += [ "AUDIO_BUILD_VARIANT_ROOT" ] + } + + if (audio_framework_feature_support_os_account) { + defines += [ "SUPPORT_USER_ACCOUNT" ] + } + + if (audio_framework_feature_dtmf_tone) { + defines += [ "FEATURE_DTMF_TONE" ] + } + + if (audio_framework_config_policy_enable) { + defines += [ "USE_CONFIG_POLICY" ] + external_deps += [ "config_policy:configpolicy_util" ] + } + + if (accessibility_enable == true) { + external_deps += [ + "accessibility:accessibility_common", + "accessibility:accessibilityconfig", + ] + } + + if (appgallery_part_enable == true) { + defines += [ "FEATURE_APPGALLERY" ] + } + + if (bluetooth_part_enable == true) { + deps += + [ "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client" ] + external_deps += [ "bluetooth:btframework" ] + } + + if (audio_framework_feature_input) { + defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ] + external_deps += [ "input:libmmi-client" ] + } + + if (audio_framework_feature_device_manager) { + defines += [ "FEATURE_DEVICE_MANAGER" ] + external_deps += [ "device_manager:devicemanagersdk" ] + } +} + +group("fuzztest") { + testonly = true + deps = [ ":AudioInterruptServiceMoreFuzzTest" ] +} diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/audio_interrupt_service_more_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/audio_interrupt_service_more_fuzzer.cpp new file mode 100644 index 0000000000..f3d1f0ac31 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/audio_interrupt_service_more_fuzzer.cpp @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2024 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. + */ + +#include +#include +#include +#include "audio_info.h" +#include "audio_interrupt_service.h" +#include "audio_policy_server.h" +#include "audio_session_info.h" +#include "accesstoken_kit.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" +#include "access_token.h" +#include "i_hpae_manager.h" +#include "manager/hdi_adapter_manager.h" +#include "util/id_handler.h" +using namespace std; + +namespace OHOS { +namespace AudioStandard { +using namespace std; +bool g_hasPermission = false; +bool g_hasServerInit = false; +const int32_t SYSTEM_ABILITY_ID = 3009; +const bool RUN_ON_CREATE = false; +const std::u16string FORMMGR_INTERFACE_TOKEN = u"IAudioPolicy"; +static const uint8_t *RAW_DATA = nullptr; +static size_t g_dataSize = 0; +static size_t g_pos; +const size_t THRESHOLD = 10; + +/* +* describe: get data from outside untrusted data(RAW_DATA) which size is according to sizeof(T) +* tips: only support basic type +*/ +template +T GetData() +{ + T object {}; + size_t objectSize = sizeof(object); + if (RAW_DATA == nullptr || objectSize > g_dataSize - g_pos) { + return object; + } + errno_t ret = memcpy_s(&object, objectSize, RAW_DATA + g_pos, objectSize); + if (ret != EOK) { + return {}; + } + g_pos += objectSize; + return object; +} + +template +uint32_t GetArrLength(T& arr) +{ + if (arr == nullptr) { + AUDIO_INFO_LOG("%{public}s: The array length is equal to 0", __func__); + return 0; + } + return sizeof(arr) / sizeof(arr[0]); +} + +void AudioFuzzTestGetPermission() +{ + if (!g_hasPermission) { + uint64_t tokenId; + constexpr int perNum = 10; + const char *perms[perNum] = { + "ohos.permission.MICROPHONE", + "ohos.permission.MANAGE_INTELLIGENT_VOICE", + "ohos.permission.MANAGE_AUDIO_CONFIG", + "ohos.permission.MICROPHONE_CONTROL", + "ohos.permission.MODIFY_AUDIO_SETTINGS", + "ohos.permission.ACCESS_NOTIFICATION_POLICY", + "ohos.permission.USE_BLUETOOTH", + "ohos.permission.CAPTURE_VOICE_DOWNLINK_AUDIO", + "ohos.permission.RECORD_VOICE_CALL", + "ohos.permission.MANAGE_SYSTEM_AUDIO_EFFECTS", + }; + + NativeTokenInfoParams infoInstance = { + .dcapsNum = 0, + .permsNum = 10, + .aclsNum = 0, + .dcaps = nullptr, + .perms = perms, + .acls = nullptr, + .processName = "audiofuzztest", + .aplStr = "system_basic", + }; + tokenId = GetAccessTokenId(&infoInstance); + SetSelfTokenID(tokenId); + OHOS::Security::AccessToken::AccessTokenKit::ReloadNativeTokenInfo(); + g_hasPermission = true; + } +} + +void MoreFuzzTest() +{ + std::shared_ptr interruptService = std::make_shared(); + interruptService->GetAudioServerProxy(); + interruptService->WriteServiceStartupError(); + + int32_t pid = GetData(); + interruptService->OnSessionTimeout(pid); + interruptService->HandleSessionTimeOutEvent(pid); +} + +void AddAudioSessionFuzzTest() +{ + int32_t sessionStrategy = 0; + + AudioInterrupt incomingInterrupt; + incomingInterrupt.audioFocusType.streamType = STREAM_MUSIC; + incomingInterrupt.audioFocusType.sourceType = SOURCE_TYPE_VOICE_COMMUNICATION; + AudioInterrupt activeInterrupt; + activeInterrupt.audioFocusType.streamType = STREAM_MUSIC; + AudioFocusEntry focusEntry; + focusEntry.isReject = false; + + std::shared_ptr interruptService = std::make_shared(); + interruptService->CanMixForSession(incomingInterrupt, activeInterrupt, focusEntry); + interruptService->CanMixForIncomingSession(incomingInterrupt, activeInterrupt, focusEntry); + interruptService->CanMixForActiveSession(incomingInterrupt, activeInterrupt, focusEntry); + interruptService->IsIncomingStreamLowPriority(focusEntry); + interruptService->IsActiveStreamLowPriority(focusEntry); +} + +void AddSetAudioManagerInterruptCallbackFuzzTest() +{ + MessageParcel data; + data.WriteInterfaceToken(FORMMGR_INTERFACE_TOKEN); + data.WriteBuffer(RAW_DATA, g_dataSize); + data.RewindRead(0); + sptr object = data.ReadRemoteObject(); + std::shared_ptr interruptService = std::make_shared(); + interruptService->GetAudioServerProxy(); + if (object == nullptr) { + return; + } + interruptService->SetAudioManagerInterruptCallback(object); + + int32_t zoneId = GetData(); + uint32_t sessionId = GetData(); + uint32_t uid = GetData(); + interruptService->SetAudioInterruptCallback(zoneId, sessionId, object, uid); +} + +void ClearAudioFocusInfoListOnAccountsChangedFuzzTest() +{ + int id = GetData(); + std::shared_ptr interruptService = std::make_shared(); + interruptService->ClearAudioFocusInfoListOnAccountsChanged(id); +} + +typedef void (*TestFuncs[4])(); + +TestFuncs g_testFuncs = { + MoreFuzzTest, + AddAudioSessionFuzzTest, + AddSetAudioManagerInterruptCallbackFuzzTest, + ClearAudioFocusInfoListOnAccountsChangedFuzzTest, +}; + +bool FuzzTest(const uint8_t* rawData, size_t size) +{ + if (rawData == nullptr) { + return false; + } + + // initialize data + RAW_DATA = rawData; + g_dataSize = size; + g_pos = 0; + + uint32_t code = GetData(); + uint32_t len = GetArrLength(g_testFuncs); + if (len > 0) { + g_testFuncs[code % len](); + } else { + AUDIO_INFO_LOG("%{public}s: The len length is equal to 0", __func__); + } + + return true; +} +} // namespace AudioStandard +} // namesapce OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + if (size < OHOS::AudioStandard::THRESHOLD) { + return 0; + } + + OHOS::AudioStandard::AudioFuzzTestGetPermission(); + OHOS::AudioStandard::FuzzTest(data, size); + return 0; +} \ No newline at end of file diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/project.xml new file mode 100644 index 0000000000..7133b2b924 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/BUILD.gn new file mode 100644 index 0000000000..db23654c97 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/BUILD.gn @@ -0,0 +1,113 @@ +# 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("//build/config/features.gni") +import("//build/test.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") + +ohos_fuzztest("AudioInterruptZoneFuzzTest") { + module_out_path = "audio_framework/audio_framework_route" + fuzz_config_file = "../audiointerruptzone_fuzzer" + + include_dirs = [ + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + ] + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-fno-access-control", + ] + configs = [ "../../../../services/audio_policy:audio_policy_public_config" ] + + sources = [ "audio_interrupt_zone_fuzzer.cpp" ] + + deps = [ + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", + ] + + external_deps = [ + "ability_base:want", + "ability_runtime:extension_manager", + "ability_runtime:wantagent_innerkits", + "access_token:libaccesstoken_sdk", + "access_token:libnativetoken_shared", + "access_token:libprivacy_sdk", + "access_token:libtokenid_sdk", + "access_token:libtokensetproc_shared", + "background_task_mgr:bgtaskmgr_innerkits", + "bounds_checking_function:libsec_shared", + "bundle_framework:appexecfwk_base", + "bundle_framework:appexecfwk_core", + "c_utils:utils", + "data_share:datashare_common", + "data_share:datashare_consumer", + "eventhandler:libeventhandler", + "hdf_core:libhdf_ipc_adapter", + "hdf_core:libhdi", + "hdf_core:libpub_utils", + "hicollie:libhicollie", + "hilog:libhilog", + "hisysevent:libhisysevent", + "hitrace:hitrace_meter", + "init:libbegetutil", + "ipc:ipc_single", + "kv_store:distributeddata_inner", + "media_foundation:media_monitor_client", + "media_foundation:media_monitor_common", + "os_account:os_account_innerkits", + "power_manager:powermgr_client", + "relational_store:native_appdatafwk", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + "bluetooth:btframework" + ] + if (sonic_enable == true) { + external_deps += [ "pulseaudio:sonic" ] + } + if (accessibility_enable == true) { + external_deps += [ + "accessibility:accessibility_common", + "accessibility:accessibilityconfig", + ] + } + + defines = [] + if (use_libfuzzer || use_clang_coverage) { + defines += [ "TEST_COVERAGE" ] + } + if (audio_framework_feature_dtmf_tone) { + defines += [ "FEATURE_DTMF_TONE" ] + } + if (audio_framework_feature_input) { + defines += [ "FEATURE_MULTIMODALINPUT_INPUT" ] + } +} + + + +group("fuzztest") { + testonly = true + deps = [ ":AudioInterruptZoneFuzzTest" ] +} diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/audio_interrupt_zone_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/audio_interrupt_zone_fuzzer.cpp new file mode 100644 index 0000000000..d4bb361478 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/audio_interrupt_zone_fuzzer.cpp @@ -0,0 +1,202 @@ +/* +* 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. +*/ + +#include +#include +#include +#include +#include "audio_info.h" +#include "audio_policy_server.h" +#include "audio_policy_service.h" +#include "audio_device_info.h" +#include "audio_utils.h" +#include "accesstoken_kit.h" +#include "nativetoken_kit.h" +#include "token_setproc.h" +#include "access_token.h" +#include "audio_channel_blend.h" +#include "volume_ramp.h" +#include "audio_speed.h" + +#include "audio_policy_utils.h" +#include "audio_stream_descriptor.h" +#include "audio_limiter_manager.h" +#include "dfx_msg_manager.h" + +#include "audio_source_clock.h" +#include "capturer_clock_manager.h" +#include "hpae_policy_manager.h" +#include "audio_policy_state_monitor.h" +#include "audio_device_info.h" +#include "audio_spatialization_service.h" +#include "../fuzz_utils.h" + +namespace OHOS { +namespace AudioStandard { +using namespace std; + +FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); +const size_t FUZZ_INPUT_SIZE_THRESHOLD = 10; +typedef void (*TestFuncs)(); + +void AudioInterruptZoneManagerGetAudioFocusInfoListFuzzTest() +{ + auto audioInterruptZoneManager = std::make_shared(); + if (audioInterruptZoneManager == nullptr) { + return; + } + AudioInterruptService service; + audioInterruptZoneManager->service_ = &service; + if (audioInterruptZoneManager->service_ == nullptr) { + return; + } + std::shared_ptr audioInterruptZone = make_shared(); + int32_t zoneId = g_fuzzUtils.GetData(); + audioInterruptZoneManager->service_->zonesMap_.insert({zoneId, audioInterruptZone}); + std::string deviceTag = "0"; + AudioFocusList focusInfoList; + audioInterruptZoneManager->GetAudioFocusInfoList(zoneId, deviceTag, focusInfoList); +} + +void AudioInterruptZoneManagerForceStopAudioFocusInZoneFuzzTest() +{ + auto audioInterruptZoneManager = std::make_shared(); + if (audioInterruptZoneManager == nullptr) { + return; + } + AudioInterruptService service; + audioInterruptZoneManager->service_ = &service; + if (audioInterruptZoneManager->service_ == nullptr) { + return; + } + audioInterruptZoneManager->service_->sessionService_ = std::make_shared(); + audioInterruptZoneManager->service_->handler_ = std::make_shared(); + int32_t zoneId = g_fuzzUtils.GetData(); + AudioInterrupt interrupt; + interrupt.streamId = g_fuzzUtils.GetData(); + interrupt.pid = g_fuzzUtils.GetData(); + audioInterruptZoneManager->ForceStopAudioFocusInZone(zoneId, interrupt); +} + +void AudioInterruptZoneManagerForceStopAllAudioFocusInZoneFuzzTest() +{ + auto audioInterruptZoneManager = std::make_shared(); + std::shared_ptr zone = std::make_shared(); + if (audioInterruptZoneManager == nullptr || zone == nullptr) { + return; + } + AudioInterruptService service; + audioInterruptZoneManager->service_ = &service; + AudioInterrupt interrupt; + AudioFocuState state = ACTIVE; + AudioFocuState stateByGetData = g_fuzzUtils.GetData(); + zone->audioFocusInfoList.push_back(std::make_pair(interrupt, state)); + zone->audioFocusInfoList.push_back(std::make_pair(interrupt, stateByGetData)); + + audioInterruptZoneManager->ForceStopAllAudioFocusInZone(zone); +} + +void AudioInterruptZoneManagerInjectInterruptToAudioZoneFuzzTest() +{ + auto audioInterruptZoneManager = std::make_shared(); + if (audioInterruptZoneManager == nullptr) { + return; + } + AudioInterruptService service; + audioInterruptZoneManager->service_ = &service; + if (audioInterruptZoneManager->service_ == nullptr) { + return; + } + int32_t zoneId = g_fuzzUtils.GetData(); + audioInterruptZoneManager->service_->zonesMap_.insert({zoneId, std::make_shared()}); + std::string deviceTag = "test_device_tag"; + AudioInterrupt interrupt; + AudioFocuState stateByGetData = g_fuzzUtils.GetData(); + AudioFocusList interrupts; + interrupts.push_back(std::make_pair(interrupt, stateByGetData)); + audioInterruptZoneManager->InjectInterruptToAudioZone(zoneId, deviceTag, interrupts); +} + +void AudioInterruptZoneManagerQueryAudioFocusFromZoneFuzzTest() +{ + auto audioInterruptZoneManager = std::make_shared(); + shared_ptr audioInterruptZone = make_shared(); + if (audioInterruptZoneManager == nullptr || audioInterruptZone == nullptr) { + return; + } + AudioInterruptService service; + audioInterruptZoneManager->service_ = &service; + if (audioInterruptZoneManager->service_ == nullptr) { + return; + } + int32_t zoneId = g_fuzzUtils.GetData(); + std::string deviceTag = "test_device_tag"; + AudioInterrupt interrupt; + interrupt.deviceTag = deviceTag; + AudioFocuState stateByGetData = g_fuzzUtils.GetData(); + audioInterruptZone->audioFocusInfoList.push_back(std::make_pair(interrupt, stateByGetData)); + audioInterruptZoneManager->service_->zonesMap_.insert({zoneId, audioInterruptZone}); + + audioInterruptZoneManager->QueryAudioFocusFromZone(zoneId, deviceTag); +} + +void AudioInterruptZoneManagerTryActiveAudioFocusForZoneFuzzTest() +{ + auto audioInterruptZoneManager = std::make_shared(); + shared_ptr audioInterruptZone = make_shared(); + if (audioInterruptZoneManager == nullptr || audioInterruptZone == nullptr) { + return; + } + AudioInterruptService service; + audioInterruptZoneManager->service_ = &service; + if (audioInterruptZoneManager->service_ == nullptr) { + return; + } + int32_t zoneId = g_fuzzUtils.GetData(); + AudioInterrupt interrupt; + AudioFocuState stateByGetData = g_fuzzUtils.GetData(); + audioInterruptZone->audioFocusInfoList.push_back(std::make_pair(interrupt, stateByGetData)); + audioInterruptZoneManager->service_->zonesMap_.insert({zoneId, audioInterruptZone}); + AudioFocusList activeFocusList; + activeFocusList.push_back(std::make_pair(interrupt, stateByGetData)); + bool isClear = g_fuzzUtils.GetData(); + if (isClear) { + activeFocusList.clear(); + } + + audioInterruptZoneManager->TryActiveAudioFocusForZone(zoneId, activeFocusList); +} + +vector g_testFuncs = { + AudioInterruptZoneManagerGetAudioFocusInfoListFuzzTest, + AudioInterruptZoneManagerForceStopAudioFocusInZoneFuzzTest, + AudioInterruptZoneManagerForceStopAllAudioFocusInZoneFuzzTest, + AudioInterruptZoneManagerInjectInterruptToAudioZoneFuzzTest, + AudioInterruptZoneManagerQueryAudioFocusFromZoneFuzzTest, + AudioInterruptZoneManagerTryActiveAudioFocusForZoneFuzzTest, +}; +} // namespace AudioStandard +} // namesapce OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) +{ + if (size < OHOS::AudioStandard::FUZZ_INPUT_SIZE_THRESHOLD) { + return 0; + } + + OHOS::AudioStandard::g_fuzzUtils.fuzzTest(data, size, OHOS::AudioStandard::g_testFuncs); + return 0; +} diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/corpus/init new file mode 100644 index 0000000000..8f37f09254 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/corpus/init @@ -0,0 +1,13 @@ +# 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. +FUZZ \ No newline at end of file diff --git a/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/project.xml new file mode 100644 index 0000000000..66e1dcac47 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + diff --git a/test/fuzztest/audiorecoverydevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/BUILD.gn similarity index 74% rename from test/fuzztest/audiorecoverydevice_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/BUILD.gn index b9c54da01d..c873d623fd 100644 --- a/test/fuzztest/audiorecoverydevice_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/BUILD.gn @@ -13,20 +13,20 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioRecoveryDeviceFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audiorecoverydevice_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", - "../../../services/audio_service/server/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", + "../../../../services/audio_service/server/include", ] cflags = [ @@ -38,20 +38,20 @@ ohos_fuzztest("AudioRecoveryDeviceFuzzTest") { ] configs = [ - "../../../services/audio_policy:audio_policy_public_config", - "../../../services/audio_engine:audio_engine_node_config", + "../../../../services/audio_policy:audio_policy_public_config", + "../../../../services/audio_engine:audio_engine_node_config", ] sources = [ "audio_recovery_device_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", - "../../../services/audio_engine:audio_engine_utils", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", + "../../../../services/audio_engine:audio_engine_utils", ] external_deps = [ diff --git a/test/fuzztest/audiorecoverydevice_fuzzer/audio_recovery_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/audio_recovery_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audiorecoverydevice_fuzzer/audio_recovery_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/audio_recovery_device_fuzzer.cpp diff --git a/test/fuzztest/audiorecoverydevice_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audiorecoverydevice_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/corpus/init diff --git a/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/project.xml new file mode 100644 index 0000000000..66e1dcac47 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + -- Gitee From 7e62d2f4daad00f9d77b98ee2f29d0c342044a8b Mon Sep 17 00:00:00 2001 From: yjguo Date: Mon, 25 Aug 2025 15:12:20 +0800 Subject: [PATCH 2/5] add1 Signed-off-by: yjguo --- test/BUILD.gn | 20 ++++++------- .../audiodevicestatus_fuzzer/BUILD.gn | 28 +++++++++---------- .../audio_device_status_fuzzer.cpp | 0 .../audiodevicestatus_fuzzer/corpus/init | 0 .../audiodevicestatus_fuzzer/project.xml | 0 5 files changed, 24 insertions(+), 24 deletions(-) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicestatus_fuzzer/BUILD.gn (77%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicestatus_fuzzer/corpus/init (100%) rename test/fuzztest/{ => audio_policy_fuzzer}/audiodevicestatus_fuzzer/project.xml (100%) diff --git a/test/BUILD.gn b/test/BUILD.gn index 86a0eb93b2..dac61b6a07 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -206,13 +206,13 @@ group("audio_fuzz_test") { "fuzztest/audiobufferbase_fuzzer:fuzztest", "fuzztest/audioclienttrackercallbacklistener_fuzzer:fuzztest", "fuzztest/audiocollaborativeservice_fuzzer:fuzztest", - "fuzztest/audioconnecteddevice_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer:fuzztest", "fuzztest/audiocoreservice_fuzzer:fuzztest", "fuzztest/audiocoreserviceentry_fuzzer:fuzztest", "fuzztest/audiocoreserviceprivate_fuzzer:fuzztest", - "fuzztest/audiodevicecommon_fuzzer:fuzztest", - "fuzztest/audiodevicelock_fuzzer:fuzztest", - "fuzztest/audiodevicestatus_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer:fuzztest", "fuzztest/audiodumppcm_fuzzer:fuzztest", "fuzztest/audioecmanager_fuzzer:fuzztest", "fuzztest/audioeffect_fuzzer:fuzztest", @@ -221,11 +221,11 @@ group("audio_fuzz_test") { "fuzztest/audioeffectservice_fuzzer:fuzztest", "fuzztest/audioeffectvolume_fuzzer:fuzztest", "fuzztest/audiofilter_fuzzer:fuzztest", - "fuzztest/audiointerruptdfxcollector_fuzzer:fuzztest", - "fuzztest/audiointerruptgroupinfo_fuzzer:fuzztest", - "fuzztest/audiointerruptservice_fuzzer:fuzztest", - "fuzztest/audiointerruptservicemore_fuzzer:fuzztest", - "fuzztest/audiointerruptzone_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiointerruptdfxcollector_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiointerruptgroupinfo_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiointerruptservice_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiointerruptservicemore_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiointerruptzone_fuzzer:fuzztest", "fuzztest/audiolimitermanager_fuzzer:fuzztest", "fuzztest/audiomanager_fuzzer:fuzztest", "fuzztest/audiomanagerlistenerstubimpl_fuzzer:fuzztest", @@ -257,7 +257,7 @@ group("audio_fuzz_test") { "fuzztest/audioproresamplerprocess_fuzzer:fuzztest", "fuzztest/audioproresampler_fuzzer:fuzztest", "fuzztest/audioqosmanager_fuzzer:fuzztest", - "fuzztest/audiorecoverydevice_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audiorecoverydevice_fuzzer:fuzztest", "fuzztest/audioresourceservice_fuzzer:fuzztest", "fuzztest/audioschedule_fuzzer:fuzztest", "fuzztest/audioserver_fuzzer:fuzztest", diff --git a/test/fuzztest/audiodevicestatus_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/BUILD.gn similarity index 77% rename from test/fuzztest/audiodevicestatus_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/BUILD.gn index dff9fb4cc2..f98df555e4 100644 --- a/test/fuzztest/audiodevicestatus_fuzzer/BUILD.gn +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/BUILD.gn @@ -13,19 +13,19 @@ import("//build/config/features.gni") import("//build/test.gni") -import("../../../accessibility.gni") -import("../../../config.gni") +import("../../../../accessibility.gni") +import("../../../../config.gni") ohos_fuzztest("AudioDeviceStatusFuzzTest") { module_out_path = "audio_framework/audio_framework_route" fuzz_config_file = "../audiodevicestatus_fuzzer" include_dirs = [ - "../../../services/audio_policy/server/include/service", - "../../../services/audio_policy/server/include", - "../../../frameworks/native/audioutils/include", - "../../../services/audio_service/common/include/limiter/", - "../../../services/audio_engine/manager/include", + "../../../../services/audio_policy/server/include/service", + "../../../../services/audio_policy/server/include", + "../../../../frameworks/native/audioutils/include", + "../../../../services/audio_service/common/include/limiter/", + "../../../../services/audio_engine/manager/include", ] cflags = [ "-g", @@ -34,17 +34,17 @@ ohos_fuzztest("AudioDeviceStatusFuzzTest") { "-fno-omit-frame-pointer", "-fno-access-control", ] - configs = [ "../../../services/audio_policy:audio_policy_public_config" ] + configs = [ "../../../../services/audio_policy:audio_policy_public_config" ] sources = [ "audio_device_status_fuzzer.cpp" ] deps = [ - "../../../frameworks/native/audioutils:audio_utils", - "../../../frameworks/native/bluetoothclient:audio_bluetooth_client", - "../../../services/audio_policy:audio_policy_service_static", - "../../../services/audio_service:audio_common", - "../../../frameworks/native/audioclock:audio_clock", - "../../../services/audio_engine:audio_engine_manager", + "../../../../frameworks/native/audioutils:audio_utils", + "../../../../frameworks/native/bluetoothclient:audio_bluetooth_client", + "../../../../services/audio_policy:audio_policy_service_static", + "../../../../services/audio_service:audio_common", + "../../../../frameworks/native/audioclock:audio_clock", + "../../../../services/audio_engine:audio_engine_manager", ] external_deps = [ diff --git a/test/fuzztest/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp similarity index 100% rename from test/fuzztest/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp diff --git a/test/fuzztest/audiodevicestatus_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audiodevicestatus_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/corpus/init diff --git a/test/fuzztest/audiodevicestatus_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audiodevicestatus_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/project.xml -- Gitee From 340d3f604083ea062dab83b9ba5997b7738f1219 Mon Sep 17 00:00:00 2001 From: yjguo Date: Mon, 25 Aug 2025 15:17:12 +0800 Subject: [PATCH 3/5] add2 Signed-off-by: yjguo --- .../{audioa2dpdevice_fuzzer => audio_a2dp_device_fuzzer}/BUILD.gn | 0 .../audio_a2dp_device_fuzzer.cpp | 0 .../corpus/init | 0 .../project.xml | 0 .../BUILD.gn | 0 .../audio_active_device_fuzzer.cpp | 0 .../corpus/init | 0 .../project.xml | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename test/fuzztest/audio_policy_fuzzer/{audioa2dpdevice_fuzzer => audio_a2dp_device_fuzzer}/BUILD.gn (100%) rename test/fuzztest/audio_policy_fuzzer/{audioa2dpdevice_fuzzer => audio_a2dp_device_fuzzer}/audio_a2dp_device_fuzzer.cpp (100%) rename test/fuzztest/audio_policy_fuzzer/{audioa2dpdevice_fuzzer => audio_a2dp_device_fuzzer}/corpus/init (100%) rename test/fuzztest/audio_policy_fuzzer/{audioa2dpdevice_fuzzer => audio_a2dp_device_fuzzer}/project.xml (100%) rename test/fuzztest/audio_policy_fuzzer/{audioactivedevice_fuzzer => audio_active_device_fuzzer}/BUILD.gn (100%) rename test/fuzztest/audio_policy_fuzzer/{audioactivedevice_fuzzer => audio_active_device_fuzzer}/audio_active_device_fuzzer.cpp (100%) rename test/fuzztest/audio_policy_fuzzer/{audioactivedevice_fuzzer => audio_active_device_fuzzer}/corpus/init (100%) rename test/fuzztest/audio_policy_fuzzer/{audioactivedevice_fuzzer => audio_active_device_fuzzer}/project.xml (100%) diff --git a/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/BUILD.gn similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/BUILD.gn diff --git a/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audio_a2dp_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audio_a2dp_device_fuzzer.cpp diff --git a/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/corpus/init diff --git a/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/project.xml diff --git a/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/BUILD.gn similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/BUILD.gn diff --git a/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/audio_active_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/audio_active_device_fuzzer.cpp diff --git a/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/corpus/init diff --git a/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/project.xml -- Gitee From c1c98ebf9ea44309529d66b459cb5d4132a401fc Mon Sep 17 00:00:00 2001 From: yjguo Date: Mon, 25 Aug 2025 15:18:51 +0800 Subject: [PATCH 4/5] add3 Signed-off-by: yjguo --- .../{audio_a2dp_device_fuzzer.cpp => audioa2dpdevicefuzzer.cpp} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/{audio_a2dp_device_fuzzer.cpp => audioa2dpdevicefuzzer.cpp} (100%) diff --git a/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audio_a2dp_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audioa2dpdevicefuzzer.cpp similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audio_a2dp_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audioa2dpdevicefuzzer.cpp -- Gitee From e5e9bc9668c068a8548dd0837169a7279eb4edfd Mon Sep 17 00:00:00 2001 From: yjguo Date: Mon, 25 Aug 2025 15:22:03 +0800 Subject: [PATCH 5/5] add4 Signed-off-by: yjguo --- .../{audio_a2dp_device_fuzzer => audioa2dpdevice_fuzzer}/BUILD.gn | 0 .../audio_a2dp_device_fuzzer.cpp} | 0 .../corpus/init | 0 .../project.xml | 0 .../BUILD.gn | 0 .../audio_active_device_fuzzer.cpp | 0 .../corpus/init | 0 .../project.xml | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename test/fuzztest/audio_policy_fuzzer/{audio_a2dp_device_fuzzer => audioa2dpdevice_fuzzer}/BUILD.gn (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_a2dp_device_fuzzer/audioa2dpdevicefuzzer.cpp => audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp} (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_a2dp_device_fuzzer => audioa2dpdevice_fuzzer}/corpus/init (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_a2dp_device_fuzzer => audioa2dpdevice_fuzzer}/project.xml (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_active_device_fuzzer => audioactivedevice_fuzzer}/BUILD.gn (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_active_device_fuzzer => audioactivedevice_fuzzer}/audio_active_device_fuzzer.cpp (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_active_device_fuzzer => audioactivedevice_fuzzer}/corpus/init (100%) rename test/fuzztest/audio_policy_fuzzer/{audio_active_device_fuzzer => audioactivedevice_fuzzer}/project.xml (100%) diff --git a/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/BUILD.gn diff --git a/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audioa2dpdevicefuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/audioa2dpdevicefuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp diff --git a/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/corpus/init diff --git a/test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_a2dp_device_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml diff --git a/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/BUILD.gn rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/BUILD.gn diff --git a/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/audio_active_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/audio_active_device_fuzzer.cpp rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp diff --git a/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/corpus/init diff --git a/test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audio_policy_fuzzer/audio_active_device_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml -- Gitee