diff --git a/test/BUILD.gn b/test/BUILD.gn index 86a0eb93b21512b12e9706987e108254be81d94f..32ce1a3261721cae94452ff5b1b242e01f6c296d 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -196,9 +196,9 @@ group("audio_fuzz_test") { testonly = true deps = [ - "fuzztest/audioa2dpdevice_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer:fuzztest", "fuzztest/audioa2dpoffloadmanager_fuzzer:fuzztest", - "fuzztest/audioactivedevice_fuzzer:fuzztest", + "fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer:fuzztest", "fuzztest/audioadaptermanager_fuzzer:fuzztest", "fuzztest/audioadaptorbluetooth_fuzzer:fuzztest", "fuzztest/audioaffinitymanager_fuzzer:fuzztest", @@ -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", 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 7290a49f56df8e3198a9d5f36cbed612a5ec85c3..8a812cbc175580cd29cd8d9b76baf5e5b4643186 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 index 0be593a7cce3bbc6dbb0c97928735a123cfa7a8a..bce04cb490cfb6db1ee70c0e41906ff7ed2263f7 100644 --- a/test/fuzztest/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp +++ b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/audio_a2dp_device_fuzzer.cpp @@ -129,6 +129,19 @@ void GetA2dpDeviceInfoFuzzTest() AudioA2dpDevice::GetInstance().DelA2dpDevice(device); } +void GetA2dpDeviceVolumeLevelFuzzTest() +{ + A2dpDeviceConfigInfo configInfo; + configInfo.volumeLevel = GetData(); + std::string device = "test_device"; + AudioA2dpDevice::GetInstance().AddA2dpDevice(device, configInfo); + int32_t volumeLevel; + AudioA2dpDevice::GetInstance().GetA2dpDeviceVolumeLevel(device, volumeLevel); + string nonDevice = "non_existent_device"; + int32_t volumeLeve2; + AudioA2dpDevice::GetInstance().GetA2dpDeviceVolumeLevel(nonDevice, volumeLeve2); +} + void GetA2dpInDeviceInfoFuzzTest() { uint32_t samplingRateCount = GetData() % AudioSamplingRateVec.size(); @@ -153,19 +166,6 @@ void GetA2dpInDeviceInfoFuzzTest() AudioA2dpDevice::GetInstance().DelA2dpInDevice(device); } -void GetA2dpDeviceVolumeLevelFuzzTest() -{ - A2dpDeviceConfigInfo configInfo; - configInfo.volumeLevel = GetData(); - std::string device = "test_device"; - AudioA2dpDevice::GetInstance().AddA2dpDevice(device, configInfo); - int32_t volumeLevel; - AudioA2dpDevice::GetInstance().GetA2dpDeviceVolumeLevel(device, volumeLevel); - string nonDevice = "non_existent_device"; - int32_t volumeLeve2; - AudioA2dpDevice::GetInstance().GetA2dpDeviceVolumeLevel(nonDevice, volumeLeve2); -} - void CheckA2dpDeviceExistFuzzTest() { A2dpDeviceConfigInfo configInfo; 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/audiodevicelock_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml similarity index 98% rename from test/fuzztest/audiodevicelock_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml index 66e1dcac475475fb101b6f8670ec699e6e9696aa..500f6f414493290025d8dea9b066e5d5021a9377 100644 --- a/test/fuzztest/audiodevicelock_fuzzer/project.xml +++ b/test/fuzztest/audio_policy_fuzzer/audioa2dpdevice_fuzzer/project.xml @@ -22,4 +22,4 @@ 4096 - + \ No newline at end of file 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 24236a47766fa64474f104f2a594171e84a9a164..cf7d0cca3b75245db1a6ddeabb6ccbcd4841e9fa 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 index 09f74ca80bac592cf8df84a7201c032d0090ec70..88cfc9f9f884983f2cf528b4aa62da7c466bbc9a 100644 --- a/test/fuzztest/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp +++ b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/audio_active_device_fuzzer.cpp @@ -160,22 +160,6 @@ void GetMaxAmplitudeFuzzTest() audioActiveDevice->GetMaxAmplitude(deviceId, audioInterrupt); } -void UpdateDeviceFuzzTest() -{ - auto audioActiveDevice = std::make_shared(); - uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); - DeviceType deviceType = DeviceTypeVec[deviceTypeCount]; - auto desc = std::make_shared(deviceType); - int32_t reasonCount = static_cast(AudioStreamDeviceChangeReason::OVERRODE) + 1; - auto reason_ = static_cast(GetData() % reasonCount); - AudioStreamDeviceChangeReasonExt reason(reason_); - std::shared_ptr rendererChangeInfo = make_shared(); - rendererChangeInfo->clientUID = GetData(); - rendererChangeInfo->createrUID = GetData(); - rendererChangeInfo->sessionId = GetData(); - audioActiveDevice->UpdateDevice(desc, reason, rendererChangeInfo); -} - void HandleActiveBtFuzzTest() { std::string macAddress = "test"; @@ -201,6 +185,22 @@ void HandleNegtiveBtFuzzTest() audioActiveDevice->HandleNegtiveBt(deviceType); } +void UpdateDeviceFuzzTest() +{ + auto audioActiveDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + DeviceType deviceType = DeviceTypeVec[deviceTypeCount]; + auto desc = std::make_shared(deviceType); + int32_t reasonCount = static_cast(AudioStreamDeviceChangeReason::OVERRODE) + 1; + auto reason_ = static_cast(GetData() % reasonCount); + AudioStreamDeviceChangeReasonExt reason(reason_); + std::shared_ptr rendererChangeInfo = make_shared(); + rendererChangeInfo->clientUID = GetData(); + rendererChangeInfo->createrUID = GetData(); + rendererChangeInfo->sessionId = GetData(); + audioActiveDevice->UpdateDevice(desc, reason, rendererChangeInfo); +} + void SetDeviceActiveFuzzTest() { auto audioActiveDevice = std::make_shared(); 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/audioa2dpdevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audioa2dpdevice_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audioactivedevice_fuzzer/project.xml diff --git a/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/BUILD.gn b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..0b13ca1b70c09464da9e721ec49741f9ea565708 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/BUILD.gn @@ -0,0 +1,119 @@ +# 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("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", + ] + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-fno-access-control", + ] + + configs = [ + "../../../../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", + ] + + 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", + "bluetooth:btframework", + "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", + ] + 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 = [ ":AudioConnectedDeviceFuzzTest" ] +} diff --git a/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..9dbc090a83b626ec73a15b3f975ea746d54080ee --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/audio_connected_device_fuzzer.cpp @@ -0,0 +1,465 @@ +/* + * 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 "hpae_manager.h" +#include "audio_info.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; +static int32_t NUM_2 = 2; + +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]); +} + +vector DeviceTypeVec = { + DEVICE_TYPE_NONE, + DEVICE_TYPE_INVALID, + DEVICE_TYPE_EARPIECE, + DEVICE_TYPE_SPEAKER, + DEVICE_TYPE_WIRED_HEADSET, + DEVICE_TYPE_WIRED_HEADPHONES, + DEVICE_TYPE_BLUETOOTH_SCO, + DEVICE_TYPE_BLUETOOTH_A2DP, + DEVICE_TYPE_BLUETOOTH_A2DP_IN, + DEVICE_TYPE_MIC, + DEVICE_TYPE_WAKEUP, + DEVICE_TYPE_USB_HEADSET, + DEVICE_TYPE_DP, + DEVICE_TYPE_REMOTE_CAST, + DEVICE_TYPE_USB_DEVICE, + DEVICE_TYPE_ACCESSORY, + DEVICE_TYPE_REMOTE_DAUDIO, + DEVICE_TYPE_HDMI, + DEVICE_TYPE_LINE_DIGITAL, + DEVICE_TYPE_NEARLINK, + DEVICE_TYPE_NEARLINK_IN, + DEVICE_TYPE_FILE_SINK, + DEVICE_TYPE_FILE_SOURCE, + DEVICE_TYPE_EXTERN_CABLE, + DEVICE_TYPE_DEFAULT, + DEVICE_TYPE_USB_ARM_HEADSET, + DEVICE_TYPE_MAX, +}; + +vector DeviceRoleVec = { + DEVICE_ROLE_NONE, + INPUT_DEVICE, + OUTPUT_DEVICE, + DEVICE_ROLE_MAX, +}; + +const vector DeviceFlagVec = { + NONE_DEVICES_FLAG, + OUTPUT_DEVICES_FLAG, + INPUT_DEVICES_FLAG, + ALL_DEVICES_FLAG, + DISTRIBUTED_OUTPUT_DEVICES_FLAG, + DISTRIBUTED_INPUT_DEVICES_FLAG, + ALL_DISTRIBUTED_DEVICES_FLAG, + ALL_L_D_DEVICES_FLAG, + DEVICE_FLAG_MAX, +}; + +void IsConnectedOutputDeviceFuzzTest() +{ + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + DeviceType deviceType = DeviceTypeVec[deviceTypeCount]; + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + DeviceRole deviceRole = DeviceRoleVec[deviceRoleCount]; + auto desc = make_shared(deviceType, deviceRole); + AudioConnectedDevice::GetInstance().connectedDevices_.push_back(desc); + AudioConnectedDevice::GetInstance().IsConnectedOutputDevice(desc); +} + +void CheckExistInputDeviceFuzzTest() +{ + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + audioConnectedDevice->CheckExistInputDevice(DeviceTypeVec[deviceTypeCount]); +} + +void CheckExistOutputDeviceFuzzTest() +{ + std::string macAddress = "test"; + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + audioConnectedDevice->CheckExistOutputDevice(DeviceTypeVec[deviceTypeCount], macAddress); +} + +void GetConnectedDeviceByTypeFuzzTest() +{ + string networkId = "test"; + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc->networkId_ = networkId; + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + audioConnectedDevice->GetConnectedDeviceByType(networkId, DeviceTypeVec[deviceTypeCount]); +} + +void UpdateConnectDeviceFuzzTest() +{ + string macAddress = "macAddress"; + string deviceName = "deviceName"; + AudioStreamInfo streamInfo; + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + audioConnectedDevice->UpdateConnectDevice(DeviceTypeVec[deviceTypeCount], macAddress, deviceName, streamInfo); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc->macAddress_ = macAddress; + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + audioConnectedDevice->UpdateConnectDevice(DeviceTypeVec[deviceTypeCount], macAddress, deviceName, streamInfo); +} + +void GetUsbDeviceDescriptorFuzzTest() +{ + std::string address = "test"; + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + audioConnectedDevice->GetUsbDeviceDescriptor(address, DeviceRoleVec[deviceRoleCount]); +} + +void UpdateSpatializationSupportedFuzzTest() +{ + string macAddress = "test"; + bool spatializationSupported = GetData() % NUM_2; + auto audioConnectedDevice = std::make_shared(); + string encryAddress = + AudioSpatializationService::GetAudioSpatializationService().GetSha256EncryptAddress(macAddress); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc1 = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc1->macAddress_ = macAddress; + desc1->spatializationSupported_ = spatializationSupported; + audioConnectedDevice->connectedDevices_.push_back(desc1); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc2 = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc2->macAddress_ = macAddress; + audioConnectedDevice->connectedDevices_.push_back(desc2); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc3 = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc3->macAddress_ = macAddress; + desc3->spatializationSupported_ = spatializationSupported; + audioConnectedDevice->connectedDevices_.push_back(desc3); + deviceTypeCount = GetData() % DeviceTypeVec.size(); + deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc4 = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc4->macAddress_ = macAddress; + audioConnectedDevice->connectedDevices_.push_back(desc4); + audioConnectedDevice->UpdateSpatializationSupported(encryAddress, spatializationSupported); +} + +void CheckDeviceConnectedFuzzTest() +{ + std::string selectedDevice = "test"; + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc->networkId_ = selectedDevice; + audioConnectedDevice->connectedDevices_.push_back(desc); + audioConnectedDevice->CheckDeviceConnected(selectedDevice); +} + +void HasArmFuzzTest() +{ + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceRoleCount = GetData() % DeviceRoleVec.size(); + audioConnectedDevice->HasArm(DeviceRoleVec[deviceRoleCount]); +} + +void HasHifiFuzzTest() +{ + auto audioConnectedDevice = std::make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceRoleCount = GetData() % DeviceRoleVec.size(); + bool result = audioConnectedDevice->HasHifi(DeviceRoleVec[deviceRoleCount]); +} + +void IsArmDeviceFuzzTest() +{ + string address = "test"; + auto audioConnectedDevice = make_shared(); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + uint32_t deviceRoleCount = GetData() % DeviceRoleVec.size(); + auto desc = make_shared(DeviceTypeVec[deviceTypeCount], DeviceRoleVec[deviceRoleCount]); + desc->macAddress_ = address; + audioConnectedDevice->connectedDevices_.push_back(desc); + deviceRoleCount = GetData() % DeviceRoleVec.size(); + bool result = audioConnectedDevice->IsArmDevice(address, DeviceRoleVec[deviceRoleCount]); +} + +void AudioConnectedDeviceGetAllConnectedDeviceByTypeFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr || DeviceTypeVec.size() == 0 || DeviceRoleVec.size() == 0) { + return; + } + std::string networkId = "testNetworkId"; + std::string macAddress = "testMacAddress"; + DeviceType deviceType = DeviceTypeVec[GetData() % DeviceTypeVec.size()]; + DeviceRole deviceRole = DeviceRoleVec[GetData() % DeviceRoleVec.size()]; + std::vector> descForCb; + std::shared_ptr deviceDesc = make_shared(); + descForCb.push_back(deviceDesc); + audioConnectedDevice->GetAllConnectedDeviceByType(networkId, deviceType, macAddress, deviceRole, descForCb); +} + +void AudioConnectedDeviceDelConnectedDeviceFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr || DeviceTypeVec.size() == 0) { + return; + } + std::string networkId = "testNetworkId"; + DeviceType deviceType = DeviceTypeVec[GetData() % DeviceTypeVec.size()]; + std::string macAddress = "testMacAddress"; + audioConnectedDevice->DelConnectedDevice(networkId, deviceType, macAddress); + audioConnectedDevice->DelConnectedDevice(networkId, deviceType); +} + +void AudioConnectedDeviceSetDisplayNameFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr) { + return; + } + + std::string deviceName = "testDeviceName"; + bool isLocalDevice = GetData() % NUM_2; + std::shared_ptr desc = std::make_shared(); + desc->networkId_ = "testNetworkId"; + if (isLocalDevice) { + desc->networkId_ = "LocalDevice"; + } + audioConnectedDevice->connectedDevices_.push_back(desc); + audioConnectedDevice->SetDisplayName(deviceName, isLocalDevice); + std::string macAddress = "testMacAddress"; + audioConnectedDevice->SetDisplayName(macAddress, deviceName); +} + +void AudioConnectedDeviceUpdateDmDeviceMapFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr) { + return; + } + + DmDevice dmDevice; + dmDevice.deviceName_ = "testDeviceName"; + dmDevice.networkId_ = "testNetworkId"; + bool isConnect = GetData() % NUM_2; + audioConnectedDevice->UpdateDmDeviceMap(std::move(dmDevice), isConnect); +} + +void AudioConnectedDeviceUpdateDeviceDesc4DmDeviceFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr) { + return; + } + + AudioDeviceDescriptor deviceDesc; + deviceDesc.deviceType_ = DEVICE_TYPE_SPEAKER; + deviceDesc.networkId_ = "testNetworkId"; + DmDevice audioDmDevice; + audioConnectedDevice->dmDeviceMap_.insert(std::make_pair(deviceDesc.networkId_, audioDmDevice)); + audioConnectedDevice->UpdateDeviceDesc4DmDevice(deviceDesc); +} + +void AudioConnectedDeviceGetDevicesInnerFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr || DeviceFlagVec.size() == 0) { + return; + } + + DeviceFlag deviceFlag = DeviceFlagVec[GetData() % DeviceFlagVec.size()]; + std::shared_ptr audioConnectedDeviceDesc = std::make_shared(); + audioConnectedDevice->connectedDevices_.push_back(audioConnectedDeviceDesc); + audioConnectedDevice->GetDevicesInner(deviceFlag); +} + +void AudioConnectedDeviceFindConnectedHeadsetFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr) { + return; + } + + std::shared_ptr audioConnectedDeviceDesc = std::make_shared(); + audioConnectedDevice->connectedDevices_.push_back(audioConnectedDeviceDesc); + audioConnectedDevice->FindConnectedHeadset(); +} + +void AudioConnectedDeviceGetDevicesForGroupFuzzTest() +{ + static const vector testGroupType = { + VOLUME_TYPE, + INTERRUPT_TYPE, + }; + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr || testGroupType.size() == 0) { + return; + } + + int32_t groupId = GetData(); + GroupType type = testGroupType[GetData() % testGroupType.size()]; + std::shared_ptr audioConnectedDeviceDesc = std::make_shared(); + audioConnectedDevice->connectedDevices_.push_back(audioConnectedDeviceDesc); + audioConnectedDevice->GetDevicesForGroup(type, groupId); +} + +void AudioConnectedDeviceRegisterNameMonitorHelperFuzzTest() +{ + auto audioConnectedDevice = make_shared(); + if (audioConnectedDevice == nullptr) { + return; + } + + audioConnectedDevice->RegisterNameMonitorHelper(); +} + +TestFuncs g_testFuncs[] = { + IsConnectedOutputDeviceFuzzTest, + CheckExistOutputDeviceFuzzTest, + CheckExistInputDeviceFuzzTest, + GetConnectedDeviceByTypeFuzzTest, + UpdateConnectDeviceFuzzTest, + GetUsbDeviceDescriptorFuzzTest, + UpdateSpatializationSupportedFuzzTest, + CheckDeviceConnectedFuzzTest, + HasArmFuzzTest, + HasHifiFuzzTest, + IsArmDeviceFuzzTest, + AudioConnectedDeviceGetAllConnectedDeviceByTypeFuzzTest, + AudioConnectedDeviceDelConnectedDeviceFuzzTest, + AudioConnectedDeviceSetDisplayNameFuzzTest, + AudioConnectedDeviceUpdateDmDeviceMapFuzzTest, + AudioConnectedDeviceUpdateDeviceDesc4DmDeviceFuzzTest, + AudioConnectedDeviceGetDevicesInnerFuzzTest, + AudioConnectedDeviceFindConnectedHeadsetFuzzTest, + AudioConnectedDeviceGetDevicesForGroupFuzzTest, + AudioConnectedDeviceRegisterNameMonitorHelperFuzzTest, +}; + +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/audiodevicelock_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/corpus/init similarity index 100% rename from test/fuzztest/audiodevicelock_fuzzer/corpus/init rename to test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/corpus/init diff --git a/test/fuzztest/audioactivedevice_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audioconnecteddevice_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audioactivedevice_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 891f82c0abdb8b139bb2eb7528cf3f31cefb3ab5..20d4b12367b03e82567b7911bbd3a6e55a6c1332 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 index 56930586a9bf288fefcd38b6ddf50f08b7dd456b..79d4e90efa37c564ed362fcfacf6018584fe0e7a 100644 --- a/test/fuzztest/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/audio_device_common_fuzzer.cpp @@ -230,17 +230,6 @@ void FilterSourceOutputsFuzzTest() audioDeviceCommon.FilterSourceOutputs(sessionId); } -void IsRingerOrAlarmerDualDevicesRangeFuzzTest() -{ - AudioDeviceCommon& audioDeviceCommon = AudioDeviceCommon::GetInstance(); - if (DeviceTypeVec.size() == 0) { - return; - } - uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); - InternalDeviceType deviceType = DeviceTypeVec[deviceTypeCount]; - audioDeviceCommon.IsRingerOrAlarmerDualDevicesRange(deviceType); -} - void IsRingOverPlaybackFuzzTest() { AudioDeviceCommon& audioDeviceCommon = AudioDeviceCommon::GetInstance(); @@ -252,6 +241,17 @@ void IsRingOverPlaybackFuzzTest() audioDeviceCommon.IsRingOverPlayback(mode, state); } +void IsRingerOrAlarmerDualDevicesRangeFuzzTest() +{ + AudioDeviceCommon& audioDeviceCommon = AudioDeviceCommon::GetInstance(); + if (DeviceTypeVec.size() == 0) { + return; + } + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + InternalDeviceType deviceType = DeviceTypeVec[deviceTypeCount]; + audioDeviceCommon.IsRingerOrAlarmerDualDevicesRange(deviceType); +} + void GetPreferredInputDeviceDescInnerFuzzTest() { AudioDeviceCommon& audioDeviceCommon = AudioDeviceCommon::GetInstance(); 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/audiodevicestatus_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/project.xml similarity index 98% rename from test/fuzztest/audiodevicestatus_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/project.xml index 66e1dcac475475fb101b6f8670ec699e6e9696aa..500f6f414493290025d8dea9b066e5d5021a9377 100644 --- a/test/fuzztest/audiodevicestatus_fuzzer/project.xml +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicecommon_fuzzer/project.xml @@ -22,4 +22,4 @@ 4096 - + \ No newline at end of file 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 e7ce687ba0ee0d5c024c29acab6a4f4aa7f1b037..b0071a9a5f01eddd223ea3551315ee6a41726c55 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 index e9d3b92e105dd267113faab739d2ab2b1cd589c5..4a2c327b9e7dd47e25356702bb2994c7be9dc744 100644 --- a/test/fuzztest/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/audio_device_lock_fuzzer.cpp @@ -148,16 +148,6 @@ void RegisterTrackerFuzzTest() int32_t apiVersion = GetData(); } -void SendA2dpConnectedWhileRunningFuzzTest() -{ - auto audioDeviceLock = std::make_shared(); - int32_t rendererStateCount = - static_cast(RendererState::RENDERER_PAUSED - RendererState::RENDERER_INVALID) + 1; - RendererState rendererState = static_cast(GetData() % rendererStateCount - 1); - uint32_t sessionId = GetData(); - audioDeviceLock->audioA2dpOffloadManager_ = std::make_shared(); -} - void HandleAudioCaptureStateFuzzTest() { auto audioDeviceLock = std::make_shared(); @@ -171,6 +161,16 @@ void HandleAudioCaptureStateFuzzTest() streamChangeInfo.audioCapturerChangeInfo.capturerInfo.sourceType = SourceTypeVec[sourceTypeCount]; } +void SendA2dpConnectedWhileRunningFuzzTest() +{ + auto audioDeviceLock = std::make_shared(); + int32_t rendererStateCount = + static_cast(RendererState::RENDERER_PAUSED - RendererState::RENDERER_INVALID) + 1; + RendererState rendererState = static_cast(GetData() % rendererStateCount - 1); + uint32_t sessionId = GetData(); + audioDeviceLock->audioA2dpOffloadManager_ = std::make_shared(); +} + void UpdateTrackerFuzzTest() { auto audioDeviceLock = std::make_shared(); diff --git a/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/corpus/init b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/corpus/init new file mode 100644 index 0000000000000000000000000000000000000000..1b910144fb1ff33a40a44b1d2a491b1ab05b598b --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/corpus/init @@ -0,0 +1,13 @@ +# Copyright (c) 2022 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/audiodevicecommon_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/project.xml similarity index 100% rename from test/fuzztest/audiodevicecommon_fuzzer/project.xml rename to test/fuzztest/audio_policy_fuzzer/audiodevicelock_fuzzer/project.xml 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 dff9fb4cc24f654c55e0265fbcc8430099359b01..f98df555e4472bf15560ed6dddbf0e6dcc84feac 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 index 92195e5c03aa98cb52fdbdd592ab0d666ebf9555..0147111f1661a6ce76c5ae90a38b16e6b9d4fa97 100644 --- a/test/fuzztest/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/audio_device_status_fuzzer.cpp @@ -174,7 +174,7 @@ void HandleArmUsbDeviceFuzzTest() audioDeviceStatus.DeInit(); } -void RehandlePnpDeviceFuzzTest() +void NoNeedChangeUsbDeviceFuzzTest() { std::shared_ptr audioA2dpOffloadManager = std::make_shared(); std::shared_ptr audioPolicyServerHandler = @@ -183,17 +183,13 @@ void RehandlePnpDeviceFuzzTest() audioA2dpOffloadManager->Init(); audioDeviceStatus.Init(audioA2dpOffloadManager, audioPolicyServerHandler); - uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); - DeviceType deviceType = DeviceTypeVec[deviceTypeCount]; - uint32_t roleCount = GetData() % DeviceRoleVec.size(); - DeviceRole deviceRole = DeviceRoleVec[roleCount]; std::string address = "00:11:22:33:44:55"; - audioDeviceStatus.RehandlePnpDevice(deviceType, deviceRole, address); + audioDeviceStatus.NoNeedChangeUsbDevice(address); audioDeviceStatus.DeInit(); } -void NoNeedChangeUsbDeviceFuzzTest() +void RehandlePnpDeviceFuzzTest() { std::shared_ptr audioA2dpOffloadManager = std::make_shared(); std::shared_ptr audioPolicyServerHandler = @@ -202,8 +198,12 @@ void NoNeedChangeUsbDeviceFuzzTest() audioA2dpOffloadManager->Init(); audioDeviceStatus.Init(audioA2dpOffloadManager, audioPolicyServerHandler); + uint32_t deviceTypeCount = GetData() % DeviceTypeVec.size(); + DeviceType deviceType = DeviceTypeVec[deviceTypeCount]; + uint32_t roleCount = GetData() % DeviceRoleVec.size(); + DeviceRole deviceRole = DeviceRoleVec[roleCount]; std::string address = "00:11:22:33:44:55"; - audioDeviceStatus.NoNeedChangeUsbDevice(address); + audioDeviceStatus.RehandlePnpDevice(deviceType, deviceRole, address); audioDeviceStatus.DeInit(); } 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/audio_policy_fuzzer/audiodevicestatus_fuzzer/project.xml b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/project.xml new file mode 100644 index 0000000000000000000000000000000000000000..500f6f414493290025d8dea9b066e5d5021a9377 --- /dev/null +++ b/test/fuzztest/audio_policy_fuzzer/audiodevicestatus_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + \ No newline at end of file