From 07925abbe2c044dad28f78e1b4f90d8b0b44acc2 Mon Sep 17 00:00:00 2001 From: zhangwt3652 Date: Tue, 9 Sep 2025 17:20:09 +0800 Subject: [PATCH] rectify fuzz code Signed-off-by: zhangwt3652 --- test/BUILD.gn | 1 - .../audio_a2dp_offload_manager_fuzzer.cpp | 42 +- .../audio_limiter_manager_fuzzer.cpp | 10 +- ...udio_manager_listener_stub_impl_fuzzer.cpp | 28 +- .../fuzztest/audiomanagerstub_fuzzer/BUILD.gn | 129 --- .../audio_manager_stub_fuzzer.cpp | 281 ------ .../audiomanagerstub_fuzzer/corpus/init | 13 - .../audiomanagerstub_fuzzer/project.xml | 25 - .../audio_pipe_manager_fuzzer.cpp | 6 +- .../audio_service_fuzzer.cpp | 17 +- .../audio_service_common_fuzzer.cpp | 29 +- .../audio_service_server_src_fuzzer.cpp | 366 +------- .../standard_audio_service_stub_fuzzer.cpp | 132 +-- .../audio_stream_collector_fuzzer.cpp | 807 +++++++----------- .../capture_clock_manager_fuzzer.cpp | 190 +---- .../capturer_in_server_fuzzer.cpp | 313 ++----- .../core_service_provider_stub_fuzzer.cpp | 24 +- .../dfx_msg_manager_fuzzer.cpp | 23 +- .../dfxutils_fuzzer/dfx_utils_fuzzer.cpp | 29 +- .../format_converter_fuzzer.cpp | 52 +- 20 files changed, 613 insertions(+), 1904 deletions(-) delete mode 100644 test/fuzztest/audiomanagerstub_fuzzer/BUILD.gn delete mode 100644 test/fuzztest/audiomanagerstub_fuzzer/audio_manager_stub_fuzzer.cpp delete mode 100644 test/fuzztest/audiomanagerstub_fuzzer/corpus/init delete mode 100644 test/fuzztest/audiomanagerstub_fuzzer/project.xml diff --git a/test/BUILD.gn b/test/BUILD.gn index d5ea1150c8..2df2a27c39 100644 --- a/test/BUILD.gn +++ b/test/BUILD.gn @@ -231,7 +231,6 @@ group("audio_fuzz_test") { "fuzztest/audiolimitermanager_fuzzer:fuzztest", "fuzztest/audiomanager_fuzzer:fuzztest", "fuzztest/audiomanagerlistenerstubimpl_fuzzer:fuzztest", - "fuzztest/audiomanagerstub_fuzzer:fuzztest", "fuzztest/audioperformancemonitor_fuzzer:fuzztest", "fuzztest/audiomicrophonedescriptor_fuzzer:fuzztest", "fuzztest/audiooffloadstream_fuzzer:fuzztest", diff --git a/test/fuzztest/audioa2dpoffloadmanager_fuzzer/audio_a2dp_offload_manager_fuzzer.cpp b/test/fuzztest/audioa2dpoffloadmanager_fuzzer/audio_a2dp_offload_manager_fuzzer.cpp index 8faebb48b5..2a4877ad2f 100644 --- a/test/fuzztest/audioa2dpoffloadmanager_fuzzer/audio_a2dp_offload_manager_fuzzer.cpp +++ b/test/fuzztest/audioa2dpoffloadmanager_fuzzer/audio_a2dp_offload_manager_fuzzer.cpp @@ -42,6 +42,7 @@ static const uint8_t* RAW_DATA = nullptr; static size_t g_dataSize = 0; static size_t g_pos; const size_t THRESHOLD = 10; +const uint8_t MAXLEN = 9; typedef void (*TestFuncs)(); @@ -108,7 +109,14 @@ void OffloadStartPlayingFuzzTest() constexpr int32_t stateCount = static_cast(BluetoothOffloadState::A2DP_OFFLOAD) + 1; BluetoothOffloadState state = static_cast(GetData() % stateCount); manager->SetA2dpOffloadFlag(state); - std::vector sessionIds = {1, 2, 3}; + std::vector sessionIds; + uint8_t lenSessions = GetData() % MAXLEN; + for (uint8_t i = 0; i < lenSessions; ++i) { + sessionIds.push_back(GetData()); + } + if (sessionIds.empty() && (GetData() & 1)) { + sessionIds.push_back(GetData()); + } constexpr int32_t a2dpOffloadConnectionStateCount = static_cast(A2dpOffloadConnectionState::CONNECTION_STATUS_TIMEOUT) + 1; A2dpOffloadConnectionState currentOffloadConnectionState = @@ -124,7 +132,14 @@ void OffloadStopPlayingFuzzTest() constexpr int32_t stateCount = static_cast(BluetoothOffloadState::A2DP_OFFLOAD) + 1; BluetoothOffloadState state = static_cast(GetData() % stateCount); manager->SetA2dpOffloadFlag(state); - std::vector sessionIds = {1, 2, 3}; + std::vector sessionIds; + uint8_t lenSessions = GetData() % MAXLEN; + for (uint8_t i = 0; i < lenSessions; ++i) { + sessionIds.push_back(static_cast(GetData())); + } + if (sessionIds.empty() && (GetData() & 1)) { + sessionIds.push_back(static_cast(GetData())); + } manager->OffloadStopPlaying(sessionIds); } @@ -139,7 +154,14 @@ void HandleA2dpDeviceOutOffloadFuzzTest() BluetoothOffloadState a2dpOffloadFlag = static_cast(GetData() % stateCount); AudioDeviceDescriptor deviceDescriptor; deviceDescriptor.deviceType_ = DEVICE_TYPE_BLUETOOTH_A2DP; - std::vector allRunningSessions = {1}; + std::vector allRunningSessions; + uint8_t lenRun = GetData() % MAXLEN; + for (uint8_t i = 0; i < lenRun; ++i) { + allRunningSessions.push_back(static_cast(GetData())); + } + if (allRunningSessions.empty() && (GetData() & 1)) { + allRunningSessions.push_back(static_cast(GetData())); + } manager->HandleA2dpDeviceOutOffload(a2dpOffloadFlag, allRunningSessions); } @@ -161,7 +183,14 @@ void HandleA2dpDeviceInOffloadFuzzTest() constexpr int32_t a2dpOffloadFlagCount = static_cast(BluetoothOffloadState::A2DP_OFFLOAD) + 1; BluetoothOffloadState a2dpOffloadFlag = static_cast(GetData() % a2dpOffloadFlagCount); - std::vector allRunningSessions = {1}; + std::vector allRunningSessions; + uint8_t lenRun = GetData() % MAXLEN; + for (uint8_t i = 0; i < lenRun; ++i) { + allRunningSessions.push_back(static_cast(GetData())); + } + if (allRunningSessions.empty() && (GetData() & 1)) { + allRunningSessions.push_back(static_cast(GetData())); + } manager->HandleA2dpDeviceInOffload(a2dpOffloadFlag, allRunningSessions); } @@ -193,7 +222,10 @@ void IsA2dpOffloadConnectingFuzzTest() { shared_ptr manager = std::make_shared(); manager->Init(); - manager->connectionTriggerSessionIds_ = {123}; + uint8_t lenTrig = GetData() % MAXLEN; + for (uint8_t i = 0; i < lenTrig; ++i) { + manager->connectionTriggerSessionIds_.push_back(static_cast(GetData())); + } constexpr int32_t currentOffloadConnectionStateCount = static_cast(A2dpOffloadConnectionState::CONNECTION_STATUS_TIMEOUT) + 1; A2dpOffloadConnectionState currentOffloadConnectionState = diff --git a/test/fuzztest/audiolimitermanager_fuzzer/audio_limiter_manager_fuzzer.cpp b/test/fuzztest/audiolimitermanager_fuzzer/audio_limiter_manager_fuzzer.cpp index 749f5ae5fa..6c9055adbf 100644 --- a/test/fuzztest/audiolimitermanager_fuzzer/audio_limiter_manager_fuzzer.cpp +++ b/test/fuzztest/audiolimitermanager_fuzzer/audio_limiter_manager_fuzzer.cpp @@ -76,7 +76,7 @@ uint32_t GetArrLength(T& arr) void SetLimiterConfigFuzzTest() { AudioLmtManager *limiterManager = AudioLmtManager::GetInstance(); - int32_t sinkIndex = GetData(); + int32_t sinkIndex = GetData() % NUM_2; limiterManager->CreateLimiter(sinkIndex); int32_t audioChannel = static_cast(AudioChannel::CHANNEL_16) + 1; int32_t channels = static_cast(GetData() % audioChannel); @@ -86,7 +86,7 @@ void SetLimiterConfigFuzzTest() void ProcessLimiterFuzzTest() { AudioLmtManager *limiterManager = AudioLmtManager::GetInstance(); - int32_t sinkIndex = GetData(); + int32_t sinkIndex = GetData() % NUM_2; limiterManager->CreateLimiter(sinkIndex); limiterManager->SetLimiterConfig(sinkIndex, TEST_MAX_REQUEST, SAMPLE_F32LE, SAMPLE_RATE_48000, STEREO); int32_t frameLen = TEST_MAX_REQUEST / SAMPLE_F32LE; @@ -101,7 +101,7 @@ void ProcessLimiterFuzzTest() void ReleaseLimiterFuzzTest() { AudioLmtManager *limiterManager = AudioLmtManager::GetInstance(); - int32_t sinkIndex = GetData(); + int32_t sinkIndex = GetData() % NUM_2; limiterManager->CreateLimiter(sinkIndex); limiterManager->ReleaseLimiter(sinkIndex); limiterManager->ReleaseLimiter(sinkIndex); @@ -110,7 +110,7 @@ void ReleaseLimiterFuzzTest() void GetLatencyFuzzTest() { AudioLmtManager *limiterManager = AudioLmtManager::GetInstance(); - int32_t sinkIndex = GetData(); + int32_t sinkIndex = GetData() % NUM_2; limiterManager->CreateLimiter(sinkIndex); limiterManager->SetLimiterConfig(sinkIndex, TEST_MAX_REQUEST, SAMPLE_F32LE, SAMPLE_RATE_48000, STEREO); limiterManager->GetLatency(sinkIndex); @@ -119,7 +119,7 @@ void GetLatencyFuzzTest() void CreateLimiterFuzzTest() { AudioLmtManager *limiterManager = AudioLmtManager::GetInstance(); - int32_t sinkIndex = GetData(); + int32_t sinkIndex = GetData() % NUM_2; limiterManager->CreateLimiter(sinkIndex); limiterManager->CreateLimiter(sinkIndex); } diff --git a/test/fuzztest/audiomanagerlistenerstubimpl_fuzzer/audio_manager_listener_stub_impl_fuzzer.cpp b/test/fuzztest/audiomanagerlistenerstubimpl_fuzzer/audio_manager_listener_stub_impl_fuzzer.cpp index a0a2752b7d..9c0fee7f20 100644 --- a/test/fuzztest/audiomanagerlistenerstubimpl_fuzzer/audio_manager_listener_stub_impl_fuzzer.cpp +++ b/test/fuzztest/audiomanagerlistenerstubimpl_fuzzer/audio_manager_listener_stub_impl_fuzzer.cpp @@ -50,6 +50,18 @@ public: } }; +class DataTransferStateChangeCallbackTest : public AudioRendererDataTransferStateChangeCallback { +public: + void OnDataTransferStateChange(const AudioRendererDataTransferStateChangeInfo &info) override + { + return; + } + void OnMuteStateChange(const int32_t &uid, const uint32_t &sessionId, const bool &isMuted) override + { + return; + } +}; + void SetWakeupSourceCallbackFuzzTest() { AudioManagerListenerStubImpl audioManagerListenerStubImpl; @@ -99,7 +111,13 @@ void AddDataTransferStateChangeCallbackFuzzTest() { AudioManagerListenerStubImpl audioManagerListenerStubImpl; DataTransferMonitorParam param; - std::shared_ptr cb; + param.clientUID = g_fuzzUtils.GetData(); + param.badDataTransferTypeBitMap = g_fuzzUtils.GetData(); + param.timeInterval = g_fuzzUtils.GetData(); + param.badFramesRatio = g_fuzzUtils.GetData(); + std::shared_ptr cb = + std::make_shared(); + CHECK_AND_RETURN(cb != nullptr); audioManagerListenerStubImpl.AddDataTransferStateChangeCallback(param, cb); } @@ -107,7 +125,13 @@ void RemoveDataTransferStateChangeCallbackFuzzTest() { AudioManagerListenerStubImpl audioManagerListenerStubImpl; DataTransferMonitorParam param; - std::shared_ptr cb; + param.clientUID = g_fuzzUtils.GetData(); + param.badDataTransferTypeBitMap = g_fuzzUtils.GetData(); + param.timeInterval = g_fuzzUtils.GetData(); + param.badFramesRatio = g_fuzzUtils.GetData(); + std::shared_ptr cb = + std::make_shared(); + CHECK_AND_RETURN(cb != nullptr); audioManagerListenerStubImpl.AddDataTransferStateChangeCallback(param, cb); audioManagerListenerStubImpl.RemoveDataTransferStateChangeCallback(cb); } diff --git a/test/fuzztest/audiomanagerstub_fuzzer/BUILD.gn b/test/fuzztest/audiomanagerstub_fuzzer/BUILD.gn deleted file mode 100644 index 1343f6d4b9..0000000000 --- a/test/fuzztest/audiomanagerstub_fuzzer/BUILD.gn +++ /dev/null @@ -1,129 +0,0 @@ -# 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("AudioManagerStubFuzzTest") { - module_out_path = "audio_framework/audio_framework_route" - fuzz_config_file = "../audiomanagerstub_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", - ] - cflags = [ - "-g", - "-O0", - "-Wno-unused-variable", - "-fno-omit-frame-pointer", - "-fno-access-control", - ] - configs = [ - "../../../services/audio_policy:audio_policy_public_config", - "../../../services/audio_service:audio_service_config" - ] - - sources = [ "audio_manager_stub_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", - ] - - 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", - "access_token:libaccesstoken_sdk", - "c_utils:utils", - "hdf_core:libhdi", - "hdf_core:libpub_utils", - "hilog:libhilog", - "ipc:ipc_single", - "safwk:system_ability_fwk", - "qos_manager:concurrent_task_client", - ] - 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 = [ ":AudioManagerStubFuzzTest" ] -} diff --git a/test/fuzztest/audiomanagerstub_fuzzer/audio_manager_stub_fuzzer.cpp b/test/fuzztest/audiomanagerstub_fuzzer/audio_manager_stub_fuzzer.cpp deleted file mode 100644 index c3c05b50c6..0000000000 --- a/test/fuzztest/audiomanagerstub_fuzzer/audio_manager_stub_fuzzer.cpp +++ /dev/null @@ -1,281 +0,0 @@ -/* -* 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_server.h" -#include "pulseaudio_ipc_interface_code.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; -bool g_hasPermission = false; -const int32_t SYSTEM_ABILITY_ID = 3001; -const bool RUN_ON_CREATE = false; - -typedef void (*TestFuncs)(); - -template -T GetData() -{ - T object {}; - size_t objectSize = sizeof(object); - if (g_dataSize < g_pos) { - return 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 AudioServerInterfaceCodeVec = { - AudioServerInterfaceCode::GET_AUDIO_PARAMETER, - AudioServerInterfaceCode::SET_AUDIO_PARAMETER, - AudioServerInterfaceCode::GET_EXTRA_AUDIO_PARAMETERS, - AudioServerInterfaceCode::SET_EXTRA_AUDIO_PARAMETERS, - AudioServerInterfaceCode::SET_MICROPHONE_MUTE, - AudioServerInterfaceCode::SET_AUDIO_SCENE, - AudioServerInterfaceCode::UPDATE_ROUTE_REQ, - AudioServerInterfaceCode::UPDATE_ROUTES_REQ, - AudioServerInterfaceCode::UPDATE_DUAL_TONE_REQ, - AudioServerInterfaceCode::GET_TRANSACTION_ID, - AudioServerInterfaceCode::SET_PARAMETER_CALLBACK, - AudioServerInterfaceCode::GET_REMOTE_AUDIO_PARAMETER, - AudioServerInterfaceCode::SET_REMOTE_AUDIO_PARAMETER, - AudioServerInterfaceCode::NOTIFY_DEVICE_INFO, - AudioServerInterfaceCode::CHECK_REMOTE_DEVICE_STATE, - AudioServerInterfaceCode::SET_VOICE_VOLUME, - AudioServerInterfaceCode::SET_AUDIO_MONO_STATE, - AudioServerInterfaceCode::SET_AUDIO_BALANCE_VALUE, - AudioServerInterfaceCode::CREATE_AUDIOPROCESS, - AudioServerInterfaceCode::LOAD_AUDIO_EFFECT_LIBRARIES, - AudioServerInterfaceCode::CREATE_AUDIO_EFFECT_CHAIN_MANAGER, - AudioServerInterfaceCode::SET_OUTPUT_DEVICE_SINK, - AudioServerInterfaceCode::SET_ACTIVE_OUTPUT_DEVICE, - AudioServerInterfaceCode::CREATE_PLAYBACK_CAPTURER_MANAGER, - AudioServerInterfaceCode::REGISET_POLICY_PROVIDER, - AudioServerInterfaceCode::REGISET_CORE_SERVICE_PROVIDER, - AudioServerInterfaceCode::SET_WAKEUP_CLOSE_CALLBACK, - AudioServerInterfaceCode::UPDATE_SPATIALIZATION_STATE, - AudioServerInterfaceCode::UPDATE_SPATIAL_DEVICE_TYPE, - AudioServerInterfaceCode::OFFLOAD_SET_VOLUME, - AudioServerInterfaceCode::NOTIFY_STREAM_VOLUME_CHANGED, - AudioServerInterfaceCode::SET_SPATIALIZATION_SCENE_TYPE, - AudioServerInterfaceCode::GET_MAX_AMPLITUDE, - AudioServerInterfaceCode::RESET_AUDIO_ENDPOINT, - AudioServerInterfaceCode::RESET_ROUTE_FOR_DISCONNECT, - AudioServerInterfaceCode::GET_EFFECT_LATENCY, - AudioServerInterfaceCode::UPDATE_LATENCY_TIMESTAMP, - AudioServerInterfaceCode::SET_ASR_AEC_MODE, - AudioServerInterfaceCode::GET_ASR_AEC_MODE, - AudioServerInterfaceCode::SET_ASR_NOISE_SUPPRESSION_MODE, - AudioServerInterfaceCode::SET_OFFLOAD_MODE, - AudioServerInterfaceCode::UNSET_OFFLOAD_MODE, - AudioServerInterfaceCode::CHECK_HIBERNATE_STATE, - AudioServerInterfaceCode::GET_ASR_NOISE_SUPPRESSION_MODE, - AudioServerInterfaceCode::SET_ASR_WHISPER_DETECTION_MODE, - AudioServerInterfaceCode::GET_ASR_WHISPER_DETECTION_MODE, - AudioServerInterfaceCode::SET_ASR_VOICE_CONTROL_MODE, - AudioServerInterfaceCode::SET_ASR_VOICE_MUTE_MODE, - AudioServerInterfaceCode::IS_WHISPERING, - AudioServerInterfaceCode::GET_EFFECT_OFFLOAD_ENABLED, - AudioServerInterfaceCode::GET_AUDIO_EFFECT_PROPERTY_V3, - AudioServerInterfaceCode::SET_AUDIO_EFFECT_PROPERTY_V3, - AudioServerInterfaceCode::GET_AUDIO_ENHANCE_PROPERTY, - AudioServerInterfaceCode::GET_AUDIO_EFFECT_PROPERTY, - AudioServerInterfaceCode::SET_AUDIO_ENHANCE_PROPERTY, - AudioServerInterfaceCode::SET_AUDIO_EFFECT_PROPERTY, - AudioServerInterfaceCode::SUSPEND_RENDERSINK, - AudioServerInterfaceCode::RESTORE_RENDERSINK, - AudioServerInterfaceCode::LOAD_HDI_EFFECT_MODEL, - AudioServerInterfaceCode::UPDATE_EFFECT_BT_OFFLOAD_SUPPORTED, - AudioServerInterfaceCode::SET_SINK_MUTE_FOR_SWITCH_DEVICE, - AudioServerInterfaceCode::SET_ROTATION_TO_EFFECT, - AudioServerInterfaceCode::UPDATE_SESSION_CONNECTION_STATE, - AudioServerInterfaceCode::SET_SINGLE_STREAM_MUTE, - AudioServerInterfaceCode::RESTORE_SESSION, - AudioServerInterfaceCode::CREATE_IPC_OFFLINE_STREAM, - AudioServerInterfaceCode::GET_OFFLINE_AUDIO_EFFECT_CHAINS, - AudioServerInterfaceCode::GET_STANDBY_STATUS, - AudioServerInterfaceCode::GENERATE_SESSION_ID, - AudioServerInterfaceCode::GET_ALL_SINK_INPUTS, - AudioServerInterfaceCode::SET_DEFAULT_ADAPTER_ENABLE, - AudioServerInterfaceCode::NOTIFY_ACCOUNTS_CHANGED, - AudioServerInterfaceCode::NOTIFY_AUDIO_POLICY_READY, - AudioServerInterfaceCode::SET_CAPTURE_LIMIT, - AudioServerInterfaceCode::LOAD_HDI_ADAPTER, - AudioServerInterfaceCode::UNLOAD_HDI_ADAPTER, - AudioServerInterfaceCode::CHECK_CAPTURE_LIMIT, - AudioServerInterfaceCode::RELEASE_CAPTURE_LIMIT, - AudioServerInterfaceCode::CREATE_HDI_SINK_PORT, - AudioServerInterfaceCode::CREATE_SINK_PORT, - AudioServerInterfaceCode::CREATE_HDI_SOURCE_PORT, - AudioServerInterfaceCode::CREATE_SOURCE_PORT, - AudioServerInterfaceCode::DESTROY_HDI_PORT, - AudioServerInterfaceCode::DEVICE_CONNECTED_FLAG, - AudioServerInterfaceCode::SET_DM_DEVICE_TYPE, - AudioServerInterfaceCode::REGISTER_DATATRANSFER_STATE_PARAM, - AudioServerInterfaceCode::UNREGISTER_DATATRANSFER_STATE_PARAM, - AudioServerInterfaceCode::REGISTER_DATATRANSFER_CALLBACK, - AudioServerInterfaceCode::NOTIFY_SETTINGS_DATA_READY, - AudioServerInterfaceCode::IS_ACOSTIC_ECHO_CAMCELER_SUPPORTED, - AudioServerInterfaceCode::SET_SESSION_MUTE_STATE, - AudioServerInterfaceCode::NOTIFY_MUTE_STATE_CHANGE, - AudioServerInterfaceCode::FORCE_STOP_AUDIO_STREAM, - AudioServerInterfaceCode::CREATE_AUDIOWORKGROUP, - AudioServerInterfaceCode::RELEASE_AUDIOWORKGROUP, - AudioServerInterfaceCode::ADD_THREAD_TO_AUDIOWORKGROUP, - AudioServerInterfaceCode::REMOVE_THREAD_FROM_AUDIOWORKGROUP, - AudioServerInterfaceCode::START_AUDIOWORKGROUP, - AudioServerInterfaceCode::STOP_AUDIOWORKGROUP, - AudioServerInterfaceCode::SET_BT_HDI_INVALID_STATE, - AudioServerInterfaceCode::SET_KARAOKE_PARAMETERS, - AudioServerInterfaceCode::IS_AUDIO_LOOPBACK_SUPPORTED, - AudioServerInterfaceCode::AUDIO_SERVER_CODE_MAX, -}; - -void GetPermission() -{ - 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 OnRemoteRequestFuzzTest() -{ - GetPermission(); - sptr audioServer = sptr::MakeSptr(SYSTEM_ABILITY_ID, RUN_ON_CREATE); - uint32_t audioServerInterfaceCodeCount = GetData() % AudioServerInterfaceCodeVec.size(); - AudioServerInterfaceCode audioServerInterfaceCode = AudioServerInterfaceCodeVec[audioServerInterfaceCodeCount]; - uint32_t format = static_cast(audioServerInterfaceCode); - MessageParcel data; - MessageParcel reply; - MessageOption option; - audioServer->SetAsrNoiseSuppressionMode(0); - audioServer->OnRemoteRequest(format, data, reply, option); -} - -TestFuncs g_testFuncs[] = { - OnRemoteRequestFuzzTest, -}; - -void FuzzTest(const uint8_t* rawData, size_t size) -{ - if (rawData == nullptr) { - return; - } - - // 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; -} -} // 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/audiomanagerstub_fuzzer/corpus/init b/test/fuzztest/audiomanagerstub_fuzzer/corpus/init deleted file mode 100644 index 8f37f09254..0000000000 --- a/test/fuzztest/audiomanagerstub_fuzzer/corpus/init +++ /dev/null @@ -1,13 +0,0 @@ -# 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/audiomanagerstub_fuzzer/project.xml b/test/fuzztest/audiomanagerstub_fuzzer/project.xml deleted file mode 100644 index 66e1dcac47..0000000000 --- a/test/fuzztest/audiomanagerstub_fuzzer/project.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - 1000 - - 300 - - 4096 - - diff --git a/test/fuzztest/audiopipemanager_fuzzer/audio_pipe_manager_fuzzer.cpp b/test/fuzztest/audiopipemanager_fuzzer/audio_pipe_manager_fuzzer.cpp index dbcd03e49c..fcf35b35f2 100644 --- a/test/fuzztest/audiopipemanager_fuzzer/audio_pipe_manager_fuzzer.cpp +++ b/test/fuzztest/audiopipemanager_fuzzer/audio_pipe_manager_fuzzer.cpp @@ -98,7 +98,7 @@ void RemoveAudioPipeInfoFuzzTest() auto audioPipeManager = AudioPipeManager::GetPipeManager(); std::shared_ptr targetPipe = std::make_shared(); targetPipe->adapterName_ = "test_adapter"; - targetPipe->routeFlag_ = 1; + targetPipe->routeFlag_ = GetData(); audioPipeManager->AddAudioPipeInfo(targetPipe); audioPipeManager->RemoveAudioPipeInfo(targetPipe); @@ -250,11 +250,11 @@ void GetPipeinfoByNameAndFlagFuzzTest() std::shared_ptr pipe1 = std::make_shared(); pipe1->adapterName_ = "existing_adapter"; - pipe1->routeFlag_ = 1; + pipe1->routeFlag_ = GetData(); audioPipeManager->AddAudioPipeInfo(pipe1); std::string targetAdapterName = "existing_adapter"; - uint32_t targetRouteFlag = 1; + uint32_t targetRouteFlag = GetData(); audioPipeManager->GetPipeinfoByNameAndFlag(targetAdapterName, targetRouteFlag); } diff --git a/test/fuzztest/audioservice_fuzzer/audio_service_fuzzer.cpp b/test/fuzztest/audioservice_fuzzer/audio_service_fuzzer.cpp index 6eb259c634..31de7ffdfd 100644 --- a/test/fuzztest/audioservice_fuzzer/audio_service_fuzzer.cpp +++ b/test/fuzztest/audioservice_fuzzer/audio_service_fuzzer.cpp @@ -509,18 +509,6 @@ void AudioServiceMatchForegroundListFuzzTest() } void AudioServiceUpdateForegroundStateFuzzTest() -{ - shared_ptr audioService = make_shared(); - if (audioService == nullptr) { - return; - } - uint32_t appTokenId = GetData(); - bool isActive = GetData(); - - audioService->UpdateForegroundState(appTokenId, isActive); -} - -void AudioServiceDumpForegroundListFuzzTest() { shared_ptr audioService = make_shared(); if (audioService == nullptr) { @@ -529,6 +517,10 @@ void AudioServiceDumpForegroundListFuzzTest() std::string dumpString = "test_dump_string"; audioService->foregroundSet_.insert("_success"); audioService->DumpForegroundList(dumpString); + + uint32_t appTokenId = GetData(); + bool isActive = GetData(); + audioService->UpdateForegroundState(appTokenId, isActive); } void AudioServiceRemoveRendererFuzzTest() @@ -814,7 +806,6 @@ TestPtr g_testPtrs[] = { AudioServiceSaveForegroundListFuzzTest, AudioServiceMatchForegroundListFuzzTest, AudioServiceUpdateForegroundStateFuzzTest, - AudioServiceDumpForegroundListFuzzTest, AudioServiceRemoveRendererFuzzTest, AudioServiceInsertCapturerFuzzTest, AudioServiceAddFilteredRenderFuzzTest, diff --git a/test/fuzztest/audioservicecommon_fuzzer/audio_service_common_fuzzer.cpp b/test/fuzztest/audioservicecommon_fuzzer/audio_service_common_fuzzer.cpp index 83fde45682..896916917b 100644 --- a/test/fuzztest/audioservicecommon_fuzzer/audio_service_common_fuzzer.cpp +++ b/test/fuzztest/audioservicecommon_fuzzer/audio_service_common_fuzzer.cpp @@ -26,42 +26,55 @@ #include "audio_source_type.h" #include "audio_ring_cache.h" #include "audio_thread_task.h" -using namespace std; +#include "../fuzz_utils.h" namespace OHOS { namespace AudioStandard { -const int32_t LIMITSIZE = 4; +using namespace std; static const std::string THREAD_NAME = "FuzzTestThreadName"; +FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); +typedef void (*TestFuncs)(); -void AudioThreadTaskFuzzTest(const uint8_t* rawData, size_t size) +void AudioThreadTaskFuzzTest() { - if (rawData == nullptr || size < LIMITSIZE) { - return; - } std::unique_ptr audioThreadTask; audioThreadTask = std::make_unique(THREAD_NAME); + CHECK_AND_RETURN(audioThreadTask != nullptr); auto myJob = []() { AUDIO_INFO_LOG("Hello Fuzz Test!"); }; + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->RegisterJob(std::move(myJob)); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->Start(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->CheckThreadIsRunning(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->Pause(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->Start(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->PauseAsync(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->Start(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->StopAsync(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->Start(); + audioThreadTask->state_ = g_fuzzUtils.GetData(); audioThreadTask->Stop(); } +vector g_testFuncs = { + AudioThreadTaskFuzzTest, +}; } // namespace AudioStandard -} // namesapce OHOS +} // namespace OHOS /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { /* Run your code on data */ - OHOS::AudioStandard::AudioThreadTaskFuzzTest(data, size); + OHOS::AudioStandard::g_fuzzUtils.fuzzTest(data, size, OHOS::AudioStandard::g_testFuncs); return 0; } diff --git a/test/fuzztest/audioserviceserversrc_fuzzer/audio_service_server_src_fuzzer.cpp b/test/fuzztest/audioserviceserversrc_fuzzer/audio_service_server_src_fuzzer.cpp index 48ef699cd6..c1092f25cb 100644 --- a/test/fuzztest/audioserviceserversrc_fuzzer/audio_service_server_src_fuzzer.cpp +++ b/test/fuzztest/audioserviceserversrc_fuzzer/audio_service_server_src_fuzzer.cpp @@ -43,7 +43,7 @@ constexpr int32_t DEFAULT_STREAM_ID = 10; static std::unique_ptr playbackEngine_ = nullptr; static std::unique_ptr audioPlaybackEngine_ = nullptr; FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); -constexpr int32_t REQUEST_DATA_LEN = 3; +const static int32_t TEST_NUM_TWO = 2; typedef void (*TestFuncs)(); /* @@ -77,6 +77,10 @@ void DeviceFuzzTestSetUp() playbackEngine_ = std::make_unique(); bool isVoip = g_fuzzUtils.GetData(); playbackEngine_->Init(deviceInfo, isVoip); + playbackEngine_->Start(); + playbackEngine_->Flush(); + playbackEngine_->Pause(); + playbackEngine_->Stop(); ReleaseNoneEngine(); } @@ -109,34 +113,6 @@ void DirectAudioPlayBackEngineStateFuzzTest() rendererStream->Release(); } -void NoneMixEngineStartFuzzTest() -{ - playbackEngine_ = std::make_unique(); - playbackEngine_->Start(); - ReleaseNoneEngine(); -} - -void NoneMixEngineStopFuzzTest() -{ - playbackEngine_ = std::make_unique(); - playbackEngine_->Stop(); - ReleaseNoneEngine(); -} - -void NoneMixEnginePauseFuzzTest() -{ - playbackEngine_ = std::make_unique(); - playbackEngine_->Pause(); - ReleaseNoneEngine(); -} - -void NoneMixEngineFlushFuzzTest() -{ - playbackEngine_ = std::make_unique(); - playbackEngine_->Flush(); - ReleaseNoneEngine(); -} - void NoneMixEngineAddRendererFuzzTest() { AudioProcessConfig config = InitProcessConfig(); @@ -174,47 +150,11 @@ void PlaybackEngineInitFuzzTest() audioPlaybackEngine_ = std::make_unique(); bool isVoip = g_fuzzUtils.GetData(); audioPlaybackEngine_->Init(deviceInfo, isVoip); - ReleaseAudioPlaybackEngine(); -} - -void PlaybackEngineStartFuzzTest() -{ - audioPlaybackEngine_ = std::make_unique(); audioPlaybackEngine_->Start(); - ReleaseAudioPlaybackEngine(); -} - -void PlaybackEngineStopFuzzTest() -{ - audioPlaybackEngine_ = std::make_unique(); - audioPlaybackEngine_->Stop(); - ReleaseAudioPlaybackEngine(); -} - -void PlaybackEnginePauseFuzzTest() -{ - audioPlaybackEngine_ = std::make_unique(); - audioPlaybackEngine_->Pause(); - ReleaseAudioPlaybackEngine(); -} - -void PlaybackEngineFlushFuzzTest() -{ - audioPlaybackEngine_ = std::make_unique(); audioPlaybackEngine_->Flush(); - ReleaseAudioPlaybackEngine(); -} - -void PlaybackEngineIsPlaybackEngineRunningFuzzTest() -{ - audioPlaybackEngine_ = std::make_unique(); + audioPlaybackEngine_->Pause(); + audioPlaybackEngine_->Stop(); audioPlaybackEngine_->IsPlaybackEngineRunning(); - ReleaseAudioPlaybackEngine(); -} - -void PlaybackEngineGetLatencyFuzzTest() -{ - audioPlaybackEngine_ = std::make_unique(); audioPlaybackEngine_->GetLatency(); ReleaseAudioPlaybackEngine(); } @@ -325,18 +265,6 @@ void ResourceServiceRegisterAudioWorkgroupMonitorFuzzTest() AudioResourceService::GetInstance()->RegisterAudioWorkgroupMonitor(pid, groupId, object); } -void RenderInServerGetLastAudioDurationFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - renderer->GetLastAudioDuration(); -} - void RenderInServerHandleOperationStartedFuzzTest() { AudioProcessConfig processConfig; @@ -348,32 +276,11 @@ void RenderInServerHandleOperationStartedFuzzTest() std::shared_ptr renderer = rendererInServer; CHECK_AND_RETURN(renderer != nullptr); - renderer->standByEnable_ = g_fuzzUtils.GetData(); - renderer->HandleOperationStarted(); -} - -void RenderInServerStandByCheckFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; + renderer->GetLastAudioDuration(); renderer->StandByCheck(); -} - -void RenderInServerShouldEnableStandByFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; renderer->ShouldEnableStandBy(); + renderer->standByEnable_ = g_fuzzUtils.GetData(); + renderer->HandleOperationStarted(); } void RenderInServerGetStandbyStatusFuzzTest() @@ -490,19 +397,6 @@ void RenderInServerIsInvalidBufferFuzzTest() renderer->IsInvalidBuffer(bufferDesc.buffer, bufferDesc.bufLength); } -void RenderInServerDualToneStreamInStartFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - - renderer->dualToneStreamInStart(); -} - void RenderInServerRecordStandbyTimeFuzzTest() { AudioProcessConfig processConfig; @@ -514,57 +408,31 @@ void RenderInServerRecordStandbyTimeFuzzTest() std::shared_ptr renderer = rendererInServer; bool isStandby = false; bool isStandbyStart = g_fuzzUtils.GetData(); + renderer->dualToneStreamInStart(); renderer->RecordStandbyTime(isStandby, isStandbyStart); } -void ProRendererGetStreamFramesWrittenFuzzTest() +void ProRendererGetCurrentPositionFuzzTest() { AudioProcessConfig config = InitProcessConfig(); std::shared_ptr rendererStream = std::make_shared(config, true); - uint64_t framesWritten = g_fuzzUtils.GetData(); + uint64_t framesWritten = 0; rendererStream->GetStreamFramesWritten(framesWritten); -} - -void ProRendererGetCurrentTimeStampFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - uint64_t timestamp = g_fuzzUtils.GetData(); + uint64_t timestamp = 0; rendererStream->GetCurrentTimeStamp(timestamp); -} - -void ProRendererGetCurrentPositionFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - uint64_t framePosition = g_fuzzUtils.GetData(); - uint64_t timestamp = g_fuzzUtils.GetData(); - uint64_t latency = g_fuzzUtils.GetData(); + uint64_t framePosition = 0; + uint64_t latency = 0; + rendererStream->GetLatency(latency); uint32_t base = g_fuzzUtils.GetData(); rendererStream->GetCurrentPosition(framePosition, timestamp, latency, base); } -void ProRendererGetLatencyFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - uint64_t latency = g_fuzzUtils.GetData(); - rendererStream->GetLatency(latency); -} - void ProRendererSetAudioEffectModeFuzzTest() { AudioProcessConfig config = InitProcessConfig(); std::shared_ptr rendererStream = std::make_shared(config, true); int32_t effectMode = g_fuzzUtils.GetData(); rendererStream->SetAudioEffectMode(effectMode); -} - -void ProRendererGetAudioEffectModeFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - int32_t effectMode = g_fuzzUtils.GetData(); rendererStream->GetAudioEffectMode(effectMode); } @@ -574,13 +442,6 @@ void ProRendererSetPrivacyTypeFuzzTest() std::shared_ptr rendererStream = std::make_shared(config, true); int32_t privacyType = g_fuzzUtils.GetData(); rendererStream->SetPrivacyType(privacyType); -} - -void ProRendererGetPrivacyTypeFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - int32_t privacyType = g_fuzzUtils.GetData(); rendererStream->GetPrivacyType(privacyType); } @@ -598,54 +459,24 @@ void ProRendererDequeueBufferFuzzTest() std::shared_ptr rendererStream = std::make_shared(config, true); size_t length = g_fuzzUtils.GetData(); rendererStream->DequeueBuffer(length); -} - -void ProRendererEnqueueBufferFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); BufferDesc bufferDesc; bufferDesc.buffer = nullptr; bufferDesc.bufLength = 0; - bufferDesc.dataLength =0; + bufferDesc.dataLength = 0; rendererStream->EnqueueBuffer(bufferDesc); } -void ProRendererGetMinimumBufferSizeFuzzTest() +void ProRendererOffloadSetVolumeFuzzTest() { AudioProcessConfig config = InitProcessConfig(); std::shared_ptr rendererStream = std::make_shared(config, true); - size_t minBufferSize = g_fuzzUtils.GetData(); + size_t minBufferSize = 0; rendererStream->GetMinimumBufferSize(minBufferSize); -} - -void ProRendererGetByteSizePerFrameFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - size_t byteSizePerFrame = g_fuzzUtils.GetData(); + size_t byteSizePerFrame = 0; rendererStream->GetByteSizePerFrame(byteSizePerFrame); -} - -void ProRendererGetSpanSizePerFrameFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - size_t spanSizeInFrame = g_fuzzUtils.GetData(); + size_t spanSizeInFrame = 0; rendererStream->GetSpanSizePerFrame(spanSizeInFrame); -} - -void ProRendererGetStreamIndexFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); rendererStream->GetStreamIndex(); -} - -void ProRendererOffloadSetVolumeFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); float volume = g_fuzzUtils.GetData(); rendererStream->OffloadSetVolume(volume); } @@ -667,30 +498,18 @@ void ProRendererUpdateSpatializationStateFuzzTest() rendererStream->UpdateSpatializationState(spatializationEnabled, headTrackingEnabled); } -void ProRendererGetAudioTimeFuzzTest() +void ProRendererReturnIndexFuzzTest() { AudioProcessConfig config = InitProcessConfig(); std::shared_ptr rendererStream = std::make_shared(config, true); - uint64_t framePos = g_fuzzUtils.GetData(); - int64_t sec = g_fuzzUtils.GetData(); - int64_t nanoSec = g_fuzzUtils.GetData(); + uint64_t framePos = 0; + int64_t sec = 0; + int64_t nanoSec = 0; rendererStream->GetAudioTime(framePos, sec, nanoSec); -} - -void ProRendererPeekFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - int32_t index = g_fuzzUtils.GetData(); - std::vector audioBuffer = {0x01, 0x02, 0x03, 0x04, 0x05}; + int32_t index = 0; + std::vector audioBuffer = {}; rendererStream->Peek(&audioBuffer, index); -} - -void ProRendererReturnIndexFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - int32_t index = g_fuzzUtils.GetData(); + index = g_fuzzUtils.GetData(); rendererStream->ReturnIndex(index); } @@ -716,21 +535,9 @@ void ProRendererUpdateMaxLengthFuzzTest() std::shared_ptr rendererStream = std::make_shared(config, true); uint32_t maxLength = g_fuzzUtils.GetData(); rendererStream->UpdateMaxLength(maxLength); -} - -void ProRendererPopSinkBufferFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); - int32_t index = g_fuzzUtils.GetData(); - std::vector audioBuffer = {0x01, 0x02, 0x03, 0x04, 0x05}; + int32_t index = 0; + std::vector audioBuffer = {}; rendererStream->PopSinkBuffer(&audioBuffer, index); -} - -void ProRendererGetStreamVolumeFuzzTest() -{ - AudioProcessConfig config = InitProcessConfig(); - std::shared_ptr rendererStream = std::make_shared(config, true); rendererStream->GetStreamVolume(); } @@ -747,35 +554,8 @@ void ReConfigDupStreamCallbackFuzzTest() renderer->dupTotalSizeInFrame_ = g_fuzzUtils.GetData(); renderer->ReConfigDupStreamCallback(); -} - -void DoFadingOutFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - CHECK_AND_RETURN(renderer != nullptr); - RingBufferWrapper bufferDesc; renderer->DoFadingOut(bufferDesc); -} - -void PrepareOutputBufferFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - CHECK_AND_RETURN(renderer != nullptr); - - RingBufferWrapper bufferDesc; renderer->PrepareOutputBuffer(bufferDesc); } @@ -790,9 +570,13 @@ void CopyDataToInputBufferFuzzTest() std::shared_ptr renderer = rendererInServer; CHECK_AND_RETURN(renderer != nullptr); - int8_t inPutData[REQUEST_DATA_LEN]; + int8_t* inPutData = nullptr; + size_t requestDataLen = g_fuzzUtils.dataSize_ / TEST_NUM_TWO; + for (size_t i = 0; i < requestDataLen; i++) { + inPutData[i] = g_fuzzUtils.GetData(); + } RingBufferWrapper ringBufferDesc; - renderer->CopyDataToInputBuffer(inPutData, REQUEST_DATA_LEN, ringBufferDesc); + renderer->CopyDataToInputBuffer(inPutData, requestDataLen, ringBufferDesc); } void OnWriteDataFuzzTest() @@ -823,19 +607,6 @@ void PauseFuzzTest() renderer->standByEnable_ = g_fuzzUtils.GetData(); renderer->Pause(); -} - -void DisableAllInnerCapFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - CHECK_AND_RETURN(renderer != nullptr); - renderer->DisableAllInnerCap(); } @@ -869,20 +640,6 @@ void GetAvailableSizeStreamsCallbackFuzzTest() StreamCallbacksPtr->GetAvailableSize(length); } -void IsHighResolutionFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - CHECK_AND_RETURN(renderer != nullptr); - - renderer->IsHighResolution(); -} - void SetMuteFuzzTest() { AudioProcessConfig processConfig; @@ -894,6 +651,7 @@ void SetMuteFuzzTest() std::shared_ptr renderer = rendererInServer; CHECK_AND_RETURN(renderer != nullptr); + renderer->IsHighResolution(); bool isMute = g_fuzzUtils.GetData(); renderer->SetMute(isMute); } @@ -943,20 +701,6 @@ void SetSpeedFuzzTest() renderer->SetSpeed(speed); } -void StopSessionFuzzTest() -{ - AudioProcessConfig processConfig; - std::shared_ptr streamListenerHolder = - std::make_shared(); - std::weak_ptr streamListener = streamListenerHolder; - std::shared_ptr rendererInServer = - std::make_shared(processConfig, streamListener); - std::shared_ptr renderer = rendererInServer; - CHECK_AND_RETURN(renderer != nullptr); - - renderer->StopSession(); -} - void InitDupBufferFuzzTest() { AudioProcessConfig processConfig; @@ -970,24 +714,15 @@ void InitDupBufferFuzzTest() int32_t innerCapId = g_fuzzUtils.GetData(); renderer->InitDupBuffer(innerCapId); + renderer->StopSession(); } vector g_testFuncs = { DeviceFuzzTestSetUp, DirectAudioPlayBackEngineStateFuzzTest, - NoneMixEngineStartFuzzTest, - NoneMixEngineStopFuzzTest, - NoneMixEnginePauseFuzzTest, - NoneMixEngineFlushFuzzTest, NoneMixEngineAddRendererFuzzTest, NoneMixEngineRemoveRendererFuzzTest, PlaybackEngineInitFuzzTest, - PlaybackEngineStartFuzzTest, - PlaybackEngineStopFuzzTest, - PlaybackEnginePauseFuzzTest, - PlaybackEngineFlushFuzzTest, - PlaybackEngineIsPlaybackEngineRunningFuzzTest, - PlaybackEngineGetLatencyFuzzTest, PlaybackEngineAddRendererFuzzTest, PlaybackEngineRemoveRendererFuzzTest, ResourceServiceAudioWorkgroupCheckFuzzTest, @@ -1001,60 +736,37 @@ vector g_testFuncs = { ResourceServiceGetThreadsNumPerProcessFuzzTest, ResourceServiceIsProcessHasSystemPermissionFuzzTest, ResourceServiceRegisterAudioWorkgroupMonitorFuzzTest, - RenderInServerGetLastAudioDurationFuzzTest, RenderInServerHandleOperationStartedFuzzTest, - RenderInServerStandByCheckFuzzTest, - RenderInServerShouldEnableStandByFuzzTest, RenderInServerGetStandbyStatusFuzzTest, RenderInServerWriteMuteDataSysEventFuzzTest, RenderInServerInnerCaptureEnqueueBufferFuzzTest, RenderInServerInnerCaptureOtherStreamFuzzTest, RenderInServerOtherStreamEnqueueFuzzTest, RenderInServerIsInvalidBufferFuzzTest, - RenderInServerDualToneStreamInStartFuzzTest, RenderInServerRecordStandbyTimeFuzzTest, - ProRendererGetStreamFramesWrittenFuzzTest, - ProRendererGetCurrentTimeStampFuzzTest, ProRendererGetCurrentPositionFuzzTest, - ProRendererGetLatencyFuzzTest, ProRendererSetAudioEffectModeFuzzTest, - ProRendererGetAudioEffectModeFuzzTest, ProRendererSetPrivacyTypeFuzzTest, - ProRendererGetPrivacyTypeFuzzTest, ProRendererSetSpeedFuzzTest, ProRendererDequeueBufferFuzzTest, - ProRendererEnqueueBufferFuzzTest, - ProRendererGetMinimumBufferSizeFuzzTest, - ProRendererGetByteSizePerFrameFuzzTest, - ProRendererGetSpanSizePerFrameFuzzTest, - ProRendererGetStreamIndexFuzzTest, ProRendererOffloadSetVolumeFuzzTest, ProRendererSetOffloadDataCallbackStateFuzzTest, ProRendererUpdateSpatializationStateFuzzTest, - ProRendererGetAudioTimeFuzzTest, - ProRendererPeekFuzzTest, ProRendererReturnIndexFuzzTest, ProRendererSetClientVolumeFuzzTest, ProRendererSetLoudnessGainFuzzTest, ProRendererUpdateMaxLengthFuzzTest, - ProRendererPopSinkBufferFuzzTest, - ProRendererGetStreamVolumeFuzzTest, ReConfigDupStreamCallbackFuzzTest, - DoFadingOutFuzzTest, - PrepareOutputBufferFuzzTest, CopyDataToInputBufferFuzzTest, OnWriteDataFuzzTest, PauseFuzzTest, - DisableAllInnerCapFuzzTest, OnStatusUpdateFuzzTest, OnWriteDataStreamsCallbackFuzzTest, GetAvailableSizeStreamsCallbackFuzzTest, - IsHighResolutionFuzzTest, SetMuteFuzzTest, SetDuckFactorFuzzTest, SetDefaultOutputDeviceFuzzTest, SetSpeedFuzzTest, - StopSessionFuzzTest, InitDupBufferFuzzTest, }; } // namespace AudioStandard diff --git a/test/fuzztest/audioservicestub_fuzzer/standard_audio_service_stub_fuzzer.cpp b/test/fuzztest/audioservicestub_fuzzer/standard_audio_service_stub_fuzzer.cpp index 2b1cc8bc64..36f50d3c28 100644 --- a/test/fuzztest/audioservicestub_fuzzer/standard_audio_service_stub_fuzzer.cpp +++ b/test/fuzztest/audioservicestub_fuzzer/standard_audio_service_stub_fuzzer.cpp @@ -26,139 +26,23 @@ using namespace std; FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); const size_t FUZZ_INPUT_SIZE_THRESHOLD = 10; -const int32_t SYSTEM_ABILITY_ID = 3001; -const bool RUN_ON_CREATE = false; typedef void (*TestFuncs)(); -vector IStandardAudioServiceIpcCodeVec = { - IStandardAudioServiceIpcCode::COMMAND_GET_AUDIO_PARAMETER, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_PARAMETER, - IStandardAudioServiceIpcCode::COMMAND_GET_EXTRA_PARAMETERS, - IStandardAudioServiceIpcCode::COMMAND_SET_EXTRA_PARAMETERS, - IStandardAudioServiceIpcCode::COMMAND_SET_MICROPHONE_MUTE, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_SCENE, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_ACTIVE_DEVICE_ROUTE, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_ACTIVE_DEVICES_ROUTE, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_DUAL_TONE_STATE, - IStandardAudioServiceIpcCode::COMMAND_GET_TRANSACTION_ID, - IStandardAudioServiceIpcCode::COMMAND_SET_PARAMETER_CALLBACK, - IStandardAudioServiceIpcCode::COMMAND_GET_AUDIO_PARAMETER_IN_STRING_IN_INT_IN_STRING_OUT_STRING, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_PARAMETER_IN_STRING_IN_INT_IN_STRING_IN_STRING, - IStandardAudioServiceIpcCode::COMMAND_NOTIFY_DEVICE_INFO, - IStandardAudioServiceIpcCode::COMMAND_CHECK_REMOTE_DEVICE_STATE, - IStandardAudioServiceIpcCode::COMMAND_SET_VOICE_VOLUME, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_MONO_STATE, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_BALANCE_VALUE, - IStandardAudioServiceIpcCode::COMMAND_CREATE_AUDIO_PROCESS, - IStandardAudioServiceIpcCode::COMMAND_LOAD_AUDIO_EFFECT_LIBRARIES, - IStandardAudioServiceIpcCode::COMMAND_CREATE_EFFECT_CHAIN_MANAGER, - IStandardAudioServiceIpcCode::COMMAND_SET_OUTPUT_DEVICE_SINK, - IStandardAudioServiceIpcCode::COMMAND_SET_ACTIVE_OUTPUT_DEVICE, - IStandardAudioServiceIpcCode::COMMAND_CREATE_PLAYBACK_CAPTURER_MANAGER, - IStandardAudioServiceIpcCode::COMMAND_REGIEST_POLICY_PROVIDER, - IStandardAudioServiceIpcCode::COMMAND_REGIST_CORE_SERVICE_PROVIDER, - IStandardAudioServiceIpcCode::COMMAND_SET_WAKEUP_SOURCE_CALLBACK, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_SPATIALIZATION_STATE, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_SPATIAL_DEVICE_TYPE, - IStandardAudioServiceIpcCode::COMMAND_OFFLOAD_SET_VOLUME, - IStandardAudioServiceIpcCode::COMMAND_NOTIFY_STREAM_VOLUME_CHANGED, - IStandardAudioServiceIpcCode::COMMAND_SET_SPATIALIZATION_SCENE_TYPE, - IStandardAudioServiceIpcCode::COMMAND_GET_MAX_AMPLITUDE, - IStandardAudioServiceIpcCode::COMMAND_RESET_AUDIO_ENDPOINT, - IStandardAudioServiceIpcCode::COMMAND_RESET_ROUTE_FOR_DISCONNECT, - IStandardAudioServiceIpcCode::COMMAND_GET_EFFECT_LATENCY, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_LATENCY_TIMESTAMP, - IStandardAudioServiceIpcCode::COMMAND_SET_ASR_AEC_MODE, - IStandardAudioServiceIpcCode::COMMAND_GET_ASR_AEC_MODE, - IStandardAudioServiceIpcCode::COMMAND_SET_ASR_NOISE_SUPPRESSION_MODE, - IStandardAudioServiceIpcCode::COMMAND_SET_OFFLOAD_MODE, - IStandardAudioServiceIpcCode::COMMAND_UNSET_OFFLOAD_MODE, - IStandardAudioServiceIpcCode::COMMAND_CHECK_HIBERNATE_STATE, - IStandardAudioServiceIpcCode::COMMAND_GET_ASR_NOISE_SUPPRESSION_MODE, - IStandardAudioServiceIpcCode::COMMAND_SET_ASR_WHISPER_DETECTION_MODE, - IStandardAudioServiceIpcCode::COMMAND_GET_ASR_WHISPER_DETECTION_MODE, - IStandardAudioServiceIpcCode::COMMAND_SET_ASR_VOICE_CONTROL_MODE, - IStandardAudioServiceIpcCode::COMMAND_SET_ASR_VOICE_MUTE_MODE, - IStandardAudioServiceIpcCode::COMMAND_IS_WHISPERING, - IStandardAudioServiceIpcCode::COMMAND_GET_EFFECT_OFFLOAD_ENABLED, - IStandardAudioServiceIpcCode::COMMAND_GET_AUDIO_EFFECT_PROPERTY, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_EFFECT_PROPERTY, - IStandardAudioServiceIpcCode::COMMAND_GET_AUDIO_ENHANCE_PROPERTY, - IStandardAudioServiceIpcCode::COMMAND_GET_AUDIO_EFFECT_PROPERTY_OUT_AUDIOEFFECTPROPERTYARRAY, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_ENHANCE_PROPERTY, - IStandardAudioServiceIpcCode::COMMAND_SET_AUDIO_EFFECT_PROPERTY_IN_AUDIOEFFECTPROPERTYARRAY, - IStandardAudioServiceIpcCode::COMMAND_SUSPEND_RENDER_SINK, - IStandardAudioServiceIpcCode::COMMAND_RESTORE_RENDER_SINK, - IStandardAudioServiceIpcCode::COMMAND_LOAD_HDI_EFFECT_MODEL, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_EFFECT_BT_OFFLOAD_SUPPORTED, - IStandardAudioServiceIpcCode::COMMAND_SET_SINK_MUTE_FOR_SWITCH_DEVICE, - IStandardAudioServiceIpcCode::COMMAND_SET_ROTATION_TO_EFFECT, - IStandardAudioServiceIpcCode::COMMAND_UPDATE_SESSION_CONNECTION_STATE, - IStandardAudioServiceIpcCode::COMMAND_SET_NON_INTERRUPT_MUTE, - IStandardAudioServiceIpcCode::COMMAND_RESTORE_SESSION, - IStandardAudioServiceIpcCode::COMMAND_CREATE_IPC_OFFLINE_STREAM, - IStandardAudioServiceIpcCode::COMMAND_GET_OFFLINE_AUDIO_EFFECT_CHAINS, - IStandardAudioServiceIpcCode::COMMAND_GET_STANDBY_STATUS, - IStandardAudioServiceIpcCode::COMMAND_GENERATE_SESSION_ID, - IStandardAudioServiceIpcCode::COMMAND_GET_ALL_SINK_INPUTS, - IStandardAudioServiceIpcCode::COMMAND_SET_DEFAULT_ADAPTER_ENABLE, - IStandardAudioServiceIpcCode::COMMAND_NOTIFY_ACCOUNTS_CHANGED, - IStandardAudioServiceIpcCode::COMMAND_NOTIFY_AUDIO_POLICY_READY, - IStandardAudioServiceIpcCode::COMMAND_SET_INNER_CAP_LIMIT, - IStandardAudioServiceIpcCode::COMMAND_LOAD_HDI_ADAPTER, - IStandardAudioServiceIpcCode::COMMAND_UNLOAD_HDI_ADAPTER, - IStandardAudioServiceIpcCode::COMMAND_CHECK_CAPTURE_LIMIT, - IStandardAudioServiceIpcCode::COMMAND_RELEASE_CAPTURE_LIMIT, - IStandardAudioServiceIpcCode::COMMAND_CREATE_HDI_SINK_PORT, - IStandardAudioServiceIpcCode::COMMAND_CREATE_SINK_PORT, - IStandardAudioServiceIpcCode::COMMAND_CREATE_HDI_SOURCE_PORT, - IStandardAudioServiceIpcCode::COMMAND_CREATE_SOURCE_PORT, - IStandardAudioServiceIpcCode::COMMAND_DESTROY_HDI_PORT, - IStandardAudioServiceIpcCode::COMMAND_SET_DEVICE_CONNECTED_FLAG, - IStandardAudioServiceIpcCode::COMMAND_SET_DM_DEVICE_TYPE, - IStandardAudioServiceIpcCode::COMMAND_REGISTER_DATA_TRANSFER_MONITOR_PARAM, - IStandardAudioServiceIpcCode::COMMAND_UNREGISTER_DATA_TRANSFER_MONITOR_PARAM, - IStandardAudioServiceIpcCode::COMMAND_REGISTER_DATA_TRANSFER_CALLBACK, - IStandardAudioServiceIpcCode::COMMAND_NOTIFY_SETTINGS_DATA_READY, - IStandardAudioServiceIpcCode::COMMAND_IS_ACOUSTIC_ECHO_CANCELER_SUPPORTED, - IStandardAudioServiceIpcCode::COMMAND_SET_SESSION_MUTE_STATE, - IStandardAudioServiceIpcCode::COMMAND_SET_LATEST_MUTE_STATE, - IStandardAudioServiceIpcCode::COMMAND_FORCE_STOP_AUDIO_STREAM, - IStandardAudioServiceIpcCode::COMMAND_CREATE_AUDIO_WORKGROUP, - IStandardAudioServiceIpcCode::COMMAND_RELEASE_AUDIO_WORKGROUP, - IStandardAudioServiceIpcCode::COMMAND_ADD_THREAD_TO_GROUP, - IStandardAudioServiceIpcCode::COMMAND_REMOVE_THREAD_FROM_GROUP, - IStandardAudioServiceIpcCode::COMMAND_START_GROUP, - IStandardAudioServiceIpcCode::COMMAND_STOP_GROUP, - IStandardAudioServiceIpcCode::COMMAND_SET_BT_HDI_INVALID_STATE, - IStandardAudioServiceIpcCode::COMMAND_SET_KARAOKE_PARAMETERS, - IStandardAudioServiceIpcCode::COMMAND_IS_AUDIO_LOOPBACK_SUPPORTED, - IStandardAudioServiceIpcCode::COMMAND_IMPROVE_AUDIO_WORKGROUP_PRIO, - IStandardAudioServiceIpcCode::COMMAND_RESTORE_AUDIO_WORKGROUP_PRIO, - IStandardAudioServiceIpcCode::COMMAND_SET_RENDER_WHITELIST, - IStandardAudioServiceIpcCode::COMMAND_SET_FOREGROUND_LIST, - IStandardAudioServiceIpcCode::COMMAND_GET_VOLUME_DATA_COUNT, -}; - void OnRemoteRequestFuzzTest() { - sptr audioServer = sptr::MakeSptr(SYSTEM_ABILITY_ID, RUN_ON_CREATE); - if (audioServer == nullptr) { - return; - } + int32_t systemAbilityId = g_fuzzUtils.GetData(); + bool runOnCreate = g_fuzzUtils.GetData(); + std::shared_ptr audioServer = std::make_shared(systemAbilityId, runOnCreate); + CHECK_AND_RETURN(audioServer != nullptr); MessageParcel data; data.WriteInterfaceToken(StandardAudioServiceStub::GetDescriptor()); MessageParcel reply; MessageOption option; - audioServer->SetAsrNoiseSuppressionMode(0); - if (!IStandardAudioServiceIpcCodeVec.empty()) { - for (size_t i = 0; i < IStandardAudioServiceIpcCodeVec.size(); i++) { - IStandardAudioServiceIpcCode audioServerInterfaceCode = IStandardAudioServiceIpcCodeVec[i]; - uint32_t code = static_cast(audioServerInterfaceCode); - audioServer->OnRemoteRequest(code, data, reply, option); - } - } + int32_t asrNoiseSuppressionMode = g_fuzzUtils.GetData(); + audioServer->SetAsrNoiseSuppressionMode(asrNoiseSuppressionMode); + uint32_t code = g_fuzzUtils.GetData(); + audioServer->OnRemoteRequest(code, data, reply, option); } vector g_testFuncs = { diff --git a/test/fuzztest/audiostreamcollector_fuzzer/audio_stream_collector_fuzzer.cpp b/test/fuzztest/audiostreamcollector_fuzzer/audio_stream_collector_fuzzer.cpp index 77c886e590..fb022d0a2d 100644 --- a/test/fuzztest/audiostreamcollector_fuzzer/audio_stream_collector_fuzzer.cpp +++ b/test/fuzztest/audiostreamcollector_fuzzer/audio_stream_collector_fuzzer.cpp @@ -16,71 +16,15 @@ #include "audio_stream_collector.h" #include "istandard_client_tracker.h" #include "audio_client_tracker_callback_listener.h" +#include "../fuzz_utils.h" using namespace std; namespace OHOS { namespace AudioStandard { - +FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); AudioStreamCollector audioStreamCollector_; const int32_t NUM_2 = 2; -typedef void (*TestPtr)(const uint8_t *, size_t); - -const vector g_testRendererState = { - RENDERER_INVALID, - RENDERER_NEW, - RENDERER_PREPARED, - RENDERER_RUNNING, - RENDERER_STOPPED, - RENDERER_RELEASED, - RENDERER_PAUSED, -}; - -const vector g_testPipeTypes = { - PIPE_TYPE_UNKNOWN, - PIPE_TYPE_NORMAL_OUT, - PIPE_TYPE_NORMAL_IN, - PIPE_TYPE_LOWLATENCY_OUT, - PIPE_TYPE_LOWLATENCY_IN, - PIPE_TYPE_DIRECT_OUT, - PIPE_TYPE_DIRECT_IN, - PIPE_TYPE_CALL_OUT, - PIPE_TYPE_CALL_IN, - PIPE_TYPE_OFFLOAD, - PIPE_TYPE_MULTICHANNEL, - PIPE_TYPE_HIGHRESOLUTION, - PIPE_TYPE_SPATIALIZATION, - PIPE_TYPE_DIRECT_MUSIC, - PIPE_TYPE_DIRECT_VOIP, -}; - -const vector g_testStreamUsages = { - STREAM_USAGE_INVALID, - STREAM_USAGE_UNKNOWN, - STREAM_USAGE_MEDIA, - STREAM_USAGE_MUSIC, - STREAM_USAGE_VOICE_COMMUNICATION, - STREAM_USAGE_VOICE_ASSISTANT, - STREAM_USAGE_ALARM, - STREAM_USAGE_VOICE_MESSAGE, - STREAM_USAGE_NOTIFICATION_RINGTONE, - STREAM_USAGE_RINGTONE, - STREAM_USAGE_NOTIFICATION, - STREAM_USAGE_ACCESSIBILITY, - STREAM_USAGE_SYSTEM, - STREAM_USAGE_MOVIE, - STREAM_USAGE_GAME, - STREAM_USAGE_AUDIOBOOK, - STREAM_USAGE_NAVIGATION, - STREAM_USAGE_DTMF, - STREAM_USAGE_ENFORCED_TONE, - STREAM_USAGE_ULTRASONIC, - STREAM_USAGE_VIDEO_COMMUNICATION, - STREAM_USAGE_RANGING, - STREAM_USAGE_VOICE_MODEM_COMMUNICATION, - STREAM_USAGE_VOICE_RINGTONE, - STREAM_USAGE_VOICE_CALL_ASSISTANT, - STREAM_USAGE_MAX, -}; +typedef void (*TestFuncs)(); const vector g_testDeviceTypes = { DEVICE_TYPE_NONE, @@ -112,116 +56,28 @@ const vector g_testDeviceTypes = { DEVICE_TYPE_MAX, }; -const vector g_testDeviceRoles = { - DEVICE_ROLE_NONE, - INPUT_DEVICE, - OUTPUT_DEVICE, - DEVICE_ROLE_MAX, -}; - -const vector g_testContentTypes = { - CONTENT_TYPE_UNKNOWN, - CONTENT_TYPE_SPEECH, - CONTENT_TYPE_MUSIC, - CONTENT_TYPE_MOVIE, - CONTENT_TYPE_SONIFICATION, - CONTENT_TYPE_RINGTONE, - CONTENT_TYPE_PROMPT, - CONTENT_TYPE_GAME, - CONTENT_TYPE_DTMF, - CONTENT_TYPE_ULTRASONIC, -}; - -const vector g_testAudioStreamTypes = { - STREAM_DEFAULT, - STREAM_VOICE_CALL, - STREAM_MUSIC, - STREAM_RING, - STREAM_MEDIA, - STREAM_VOICE_ASSISTANT, - STREAM_SYSTEM, - STREAM_ALARM, - STREAM_NOTIFICATION, - STREAM_BLUETOOTH_SCO, - STREAM_ENFORCED_AUDIBLE, - STREAM_DTMF, - STREAM_TTS, - STREAM_ACCESSIBILITY, - STREAM_RECORDING, - STREAM_MOVIE, - STREAM_GAME, - STREAM_SPEECH, - STREAM_SYSTEM_ENFORCED, - STREAM_ULTRASONIC, - STREAM_WAKEUP, - STREAM_VOICE_MESSAGE, - STREAM_NAVIGATION, - STREAM_INTERNAL_FORCE_STOP, - STREAM_SOURCE_VOICE_CALL, - STREAM_VOICE_COMMUNICATION, - STREAM_VOICE_RING, - STREAM_VOICE_CALL_ASSISTANT, - STREAM_CAMCORDER, - STREAM_APP, - STREAM_TYPE_MAX, - STREAM_ALL, -}; - -const vector g_testSourceTypes = { - SOURCE_TYPE_INVALID, - SOURCE_TYPE_MIC, - SOURCE_TYPE_VOICE_RECOGNITION, - SOURCE_TYPE_PLAYBACK_CAPTURE, - SOURCE_TYPE_WAKEUP, - SOURCE_TYPE_VOICE_CALL, - SOURCE_TYPE_VOICE_COMMUNICATION, - SOURCE_TYPE_ULTRASONIC, - SOURCE_TYPE_VIRTUAL_CAPTURE, // only for voice call - SOURCE_TYPE_VOICE_MESSAGE, - SOURCE_TYPE_REMOTE_CAST, - SOURCE_TYPE_VOICE_TRANSCRIPTION, - SOURCE_TYPE_CAMCORDER, - SOURCE_TYPE_UNPROCESSED, - SOURCE_TYPE_EC, - SOURCE_TYPE_MIC_REF, - SOURCE_TYPE_LIVE, - SOURCE_TYPE_MAX, -}; - -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 AudioStreamCollectorAddRendererStreamFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorAddRendererStreamFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - uint32_t randIntValue = static_cast(size) % NUM_2; + uint32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue++; streamChangeInfo.audioRendererChangeInfo.channelCount = randIntValue++; streamChangeInfo.audioRendererChangeInfo.createrUID = randIntValue--; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; - index = static_cast(size) % g_testPipeTypes.size(); - streamChangeInfo.audioRendererChangeInfo.rendererInfo.pipeType = g_testPipeTypes[index]; + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.AddRendererStream(streamChangeInfo); } -void AudioStreamCollectorGetRendererStreamInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetRendererStreamInfoFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioCapturerChangeInfo.clientUID = randIntValue; streamChangeInfo.audioCapturerChangeInfo.sessionId = randIntValue + 1; AudioRendererChangeInfo rendererInfo; shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue; rendererChangeInfo->createrUID = randIntValue; rendererChangeInfo->sessionId = randIntValue + 1; @@ -230,15 +86,15 @@ void AudioStreamCollectorGetRendererStreamInfoFuzzTest(const uint8_t *rawData, s audioStreamCollector_.GetRendererStreamInfo(streamChangeInfo, rendererInfo); } -void AudioStreamCollectorGetCapturerStreamInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetCapturerStreamInfoFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioCapturerChangeInfo.clientUID = randIntValue; streamChangeInfo.audioCapturerChangeInfo.sessionId = randIntValue + 1; AudioCapturerChangeInfo capturerChangeInfo; shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue; rendererChangeInfo->createrUID = randIntValue; rendererChangeInfo->sessionId = randIntValue + 1; @@ -247,13 +103,14 @@ void AudioStreamCollectorGetCapturerStreamInfoFuzzTest(const uint8_t *rawData, s audioStreamCollector_.GetCapturerStreamInfo(streamChangeInfo, capturerChangeInfo); } -void AudioStreamCollectorGetPipeTypeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetPipeTypeFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testPipeTypes.size(); - AudioPipeType pipeType = g_testPipeTypes[index]; + uint32_t index = g_fuzzUtils.GetData(); + AudioPipeType pipeType = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -262,19 +119,18 @@ void AudioStreamCollectorGetPipeTypeFuzzTest(const uint8_t *rawData, size_t size audioStreamCollector_.GetPipeType(sessionId, pipeType); } -void AudioStreamCollectorExistStreamForPipeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorExistStreamForPipeFuzzTest() { - uint32_t index = static_cast(size) % g_testPipeTypes.size(); - AudioPipeType pipeType = g_testPipeTypes[index]; + AudioPipeType pipeType = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue + 1; - index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); - bool result = static_cast(static_cast(size) % NUM_2); + bool result = g_fuzzUtils.GetData(); if (result) { rendererChangeInfo->createrUID = streamChangeInfo.audioRendererChangeInfo.createrUID; rendererChangeInfo->clientUID = streamChangeInfo.audioRendererChangeInfo.clientUID; @@ -285,46 +141,45 @@ void AudioStreamCollectorExistStreamForPipeFuzzTest(const uint8_t *rawData, size audioStreamCollector_.ExistStreamForPipe(pipeType); } -void AudioStreamCollectorGetRendererDeviceInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetRendererDeviceInfoFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t sessionId = randIntValue; AudioDeviceDescriptor deviceInfo(AudioDeviceDescriptor::DEVICE_INFO); shared_ptr rendererChangeInfo = make_shared(); - - bool result = static_cast(static_cast(size) % NUM_2); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + bool result = g_fuzzUtils.GetData(); if (result) { rendererChangeInfo->clientUID = randIntValue; rendererChangeInfo->createrUID = randIntValue; rendererChangeInfo->sessionId = randIntValue + 1; - uint32_t index = static_cast(size) % g_testPipeTypes.size(); - rendererChangeInfo->rendererInfo.pipeType = g_testPipeTypes[index]; + uint32_t index = g_fuzzUtils.GetData(); + rendererChangeInfo->rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); } audioStreamCollector_.GetRendererDeviceInfo(sessionId, deviceInfo); } -void AudioStreamCollectorAddCapturerStreamFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorAddCapturerStreamFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size) % NUM_2; + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue++; streamChangeInfo.audioRendererChangeInfo.channelCount = randIntValue++; streamChangeInfo.audioRendererChangeInfo.createrUID = randIntValue--; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; - index = static_cast(size) % g_testPipeTypes.size(); - streamChangeInfo.audioRendererChangeInfo.rendererInfo.pipeType = g_testPipeTypes[index]; + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.AddCapturerStream(streamChangeInfo); } -void AudioStreamCollectorSendCapturerInfoEventFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorSendCapturerInfoEventFuzzTest() { AudioDeviceDescriptor inputDeviceInfo(AudioDeviceDescriptor::DEVICE_INFO); shared_ptr captureChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(captureChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); captureChangeInfo->clientUID = randIntValue; captureChangeInfo->createrUID = randIntValue / NUM_2; captureChangeInfo->sessionId = randIntValue / NUM_2 + 1; @@ -337,70 +192,70 @@ void AudioStreamCollectorSendCapturerInfoEventFuzzTest(const uint8_t *rawData, s audioStreamCollector_.SendCapturerInfoEvent(audioCapturerChangeInfos); } -void AudioStreamCollectorRegisterTrackerFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorRegisterTrackerFuzzTest() { AudioMode audioMode = AudioMode::AUDIO_MODE_PLAYBACK; AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + uint32_t index = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); sptr clientTrackerObj = nullptr; audioStreamCollector_.RegisterTracker(audioMode, streamChangeInfo, clientTrackerObj); audioStreamCollector_.UpdateTracker(audioMode, streamChangeInfo); } -void AudioStreamCollectorSetRendererStreamParamFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorSetRendererStreamParamFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + uint32_t index = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); audioStreamCollector_.SetRendererStreamParam(streamChangeInfo, rendererChangeInfo); } -void AudioStreamCollectorSetCapturerStreamParamFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorSetCapturerStreamParamFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + uint32_t index = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); audioStreamCollector_.SetCapturerStreamParam(streamChangeInfo, rendererChangeInfo); } -void AudioStreamCollectorResetRendererStreamDeviceInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorResetRendererStreamDeviceInfoFuzzTest() { AudioDeviceDescriptor outputDeviceInfo(AudioDeviceDescriptor::DEVICE_INFO); shared_ptr rendererChangeInfo = make_shared(); - - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testPipeTypes.size(); - rendererChangeInfo->rendererInfo.pipeType = g_testPipeTypes[index]; + uint32_t index = g_fuzzUtils.GetData(); + rendererChangeInfo->rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); audioStreamCollector_.ResetRendererStreamDeviceInfo(outputDeviceInfo); } -void AudioStreamCollectorResetCapturerStreamDeviceInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorResetCapturerStreamDeviceInfoFuzzTest() { AudioDeviceDescriptor outputDeviceInfo(AudioDeviceDescriptor::DEVICE_INFO); shared_ptr rendererChangeInfo = make_shared(); - - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -409,32 +264,30 @@ void AudioStreamCollectorResetCapturerStreamDeviceInfoFuzzTest(const uint8_t *ra audioStreamCollector_.ResetCapturerStreamDeviceInfo(outputDeviceInfo); } -void AudioStreamCollectorCheckRendererStateInfoChangedFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorCheckRendererStateInfoChangedFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + uint32_t index = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); audioStreamCollector_.CheckRendererStateInfoChanged(streamChangeInfo); } -void AudioStreamCollectorCheckRendererInfoChangedFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorCheckRendererInfoChangedFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - - bool result = static_cast(static_cast(size) % NUM_2); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + bool result = g_fuzzUtils.GetData(); if (result) { rendererChangeInfo->createrUID = randIntValue / NUM_2; - index = static_cast(size) % g_testPipeTypes.size(); - rendererChangeInfo->rendererInfo.pipeType = g_testPipeTypes[index]; + rendererChangeInfo->rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); } @@ -442,29 +295,26 @@ void AudioStreamCollectorCheckRendererInfoChangedFuzzTest(const uint8_t *rawData audioStreamCollector_.CheckRendererInfoChanged(streamChangeInfo); } -void AudioStreamCollectorResetRingerModeMuteFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorResetRingerModeMuteFuzzTest() { - uint32_t index = static_cast(size) % g_testRendererState.size(); - RendererState rendererState = g_testRendererState[index]; - index = static_cast(size) % g_testStreamUsages.size(); - StreamUsage streamUsage = g_testStreamUsages[index]; + RendererState rendererState = g_fuzzUtils.GetData(); + StreamUsage streamUsage = g_fuzzUtils.GetData(); audioStreamCollector_.ResetRingerModeMute(rendererState, streamUsage); } -void AudioStreamCollectorUpdateRendererStreamInternalFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateRendererStreamInternalFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - bool result = static_cast(static_cast(size) % NUM_2); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + bool result = g_fuzzUtils.GetData(); if (result) { rendererChangeInfo->createrUID = randIntValue / NUM_2; - index = static_cast(size) % g_testPipeTypes.size(); - rendererChangeInfo->rendererInfo.pipeType = g_testPipeTypes[index]; + rendererChangeInfo->rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); } @@ -472,20 +322,20 @@ void AudioStreamCollectorUpdateRendererStreamInternalFuzzTest(const uint8_t *raw audioStreamCollector_.UpdateRendererStreamInternal(streamChangeInfo); } -void AudioStreamCollectorUpdateCapturerStreamInternalFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateCapturerStreamInternalFuzzTest() { AudioStreamChangeInfo streamChangeInfo; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); streamChangeInfo.audioCapturerChangeInfo.clientUID = randIntValue % NUM_2; streamChangeInfo.audioCapturerChangeInfo.sessionId = randIntValue; - streamChangeInfo.audioCapturerChangeInfo.prerunningState = static_cast(static_cast(size) % NUM_2); + streamChangeInfo.audioCapturerChangeInfo.prerunningState = g_fuzzUtils.GetData(); shared_ptr capturerChangeInfo = make_shared(); - - bool result = static_cast(static_cast(size) % NUM_2); + CHECK_AND_RETURN(capturerChangeInfo != nullptr); + bool result = g_fuzzUtils.GetData(); if (result) { capturerChangeInfo->clientUID = randIntValue % NUM_2; capturerChangeInfo->sessionId = randIntValue; - capturerChangeInfo->prerunningState = static_cast(static_cast(size) % NUM_2); + capturerChangeInfo->prerunningState = g_fuzzUtils.GetData(); audioStreamCollector_.audioCapturerChangeInfos_.clear(); audioStreamCollector_.audioCapturerChangeInfos_.push_back(move(capturerChangeInfo)); } @@ -493,47 +343,51 @@ void AudioStreamCollectorUpdateCapturerStreamInternalFuzzTest(const uint8_t *raw audioStreamCollector_.UpdateCapturerStreamInternal(streamChangeInfo); } -void AudioStreamCollectorUpdateTrackerFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateTrackerFuzzTest() { vector audioModes = { AUDIO_MODE_PLAYBACK, AUDIO_MODE_RECORD, }; - uint32_t index = static_cast(size) % audioModes.size(); + uint32_t index = g_fuzzUtils.GetData() % audioModes.size(); AudioMode audioMode = audioModes[index]; AudioDeviceDescriptor audioDev(AudioDeviceDescriptor::DEVICE_INFO); audioStreamCollector_.UpdateTracker(audioMode, audioDev); - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); AudioStreamChangeInfo streamChangeInfo; streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - index = static_cast(size) % g_testRendererState.size(); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index]; + index = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); sptr clientTrackerObj = nullptr; audioStreamCollector_.RegisterTracker(audioMode, streamChangeInfo, clientTrackerObj); audioStreamCollector_.UpdateTracker(audioMode, streamChangeInfo); } -void AudioStreamCollectorUpdateRendererDeviceInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateRendererDeviceInfoFuzzTest() { shared_ptr outputDeviceInfoPtr = make_shared( AudioDeviceDescriptor::DEVICE_INFO); - uint32_t index = static_cast(size) % g_testDeviceTypes.size(); - outputDeviceInfoPtr->deviceType_ = g_testDeviceTypes[index]; + CHECK_AND_RETURN(outputDeviceInfoPtr != nullptr); + uint32_t index = g_fuzzUtils.GetData() % g_testDeviceTypes.size(); + outputDeviceInfoPtr->deviceType_ = g_fuzzUtils.GetData(); auto info1 = std::make_unique(); + CHECK_AND_RETURN(info1 != nullptr); info1->outputDeviceInfo.deviceType_ = g_testDeviceTypes[index / NUM_2]; audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(info1)); auto info2 = std::make_unique(); + CHECK_AND_RETURN(info2 != nullptr); info2->outputDeviceInfo.deviceType_ = g_testDeviceTypes[(index + 1) / NUM_2]; audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(info2)); audioStreamCollector_.UpdateRendererDeviceInfo(outputDeviceInfoPtr); AudioDeviceDescriptor outputDeviceInfo(AudioDeviceDescriptor::DEVICE_INFO); shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientUID = randIntValue / NUM_2; int32_t sessionId = randIntValue; rendererChangeInfo->clientUID = randIntValue / NUM_2; @@ -545,24 +399,28 @@ void AudioStreamCollectorUpdateRendererDeviceInfoFuzzTest(const uint8_t *rawData audioStreamCollector_.UpdateRendererDeviceInfo(clientUID, sessionId, outputDeviceInfo); } -void AudioStreamCollectorUpdateCapturerDeviceInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateCapturerDeviceInfoFuzzTest() { shared_ptr inputDeviceInfoPtr = make_shared( AudioDeviceDescriptor::DEVICE_INFO); - uint32_t index = static_cast(size) % g_testDeviceTypes.size(); - inputDeviceInfoPtr->deviceType_ = g_testDeviceTypes[index]; + CHECK_AND_RETURN(inputDeviceInfoPtr != nullptr); + uint32_t index = g_fuzzUtils.GetData() % g_testDeviceTypes.size(); + inputDeviceInfoPtr->deviceType_ = g_fuzzUtils.GetData(); auto info1 = std::make_unique(); + CHECK_AND_RETURN(info1 != nullptr); info1->inputDeviceInfo.deviceType_ = g_testDeviceTypes[index / NUM_2]; audioStreamCollector_.audioCapturerChangeInfos_.clear(); audioStreamCollector_.audioCapturerChangeInfos_.push_back(std::move(info1)); auto info2 = std::make_unique(); + CHECK_AND_RETURN(info2 != nullptr); info2->inputDeviceInfo.deviceType_ = g_testDeviceTypes[(index + 1) / NUM_2]; audioStreamCollector_.audioCapturerChangeInfos_.push_back(std::move(info2)); audioStreamCollector_.UpdateCapturerDeviceInfo(inputDeviceInfoPtr); AudioDeviceDescriptor inputDeviceInfo(AudioDeviceDescriptor::DEVICE_INFO); shared_ptr captureChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(captureChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); captureChangeInfo->clientUID = randIntValue / NUM_2; captureChangeInfo->createrUID = randIntValue / NUM_2; captureChangeInfo->sessionId = randIntValue; @@ -572,34 +430,33 @@ void AudioStreamCollectorUpdateCapturerDeviceInfoFuzzTest(const uint8_t *rawData int32_t clientUID = randIntValue / NUM_2; int32_t sessionId = randIntValue; AudioDeviceDescriptor outputDeviceInfo(AudioDeviceDescriptor::DEVICE_INFO); - index = static_cast(size) % g_testDeviceRoles.size(); - outputDeviceInfo.deviceRole_ = g_testDeviceRoles[index]; + outputDeviceInfo.deviceRole_ = g_fuzzUtils.GetData(); audioStreamCollector_.UpdateCapturerDeviceInfo(clientUID, sessionId, outputDeviceInfo); } -void AudioStreamCollectorUpdateRendererPipeInfoFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateRendererPipeInfoFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t sessionId = randIntValue; - uint32_t index = static_cast(size) % g_testPipeTypes.size(); - AudioPipeType normalPipe = g_testPipeTypes[index]; + AudioPipeType normalPipe = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererInfo.pipeType = g_testPipeTypes[index / NUM_2]; + rendererChangeInfo->rendererInfo.pipeType = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); audioStreamCollector_.UpdateRendererPipeInfo(sessionId, normalPipe); } -void AudioStreamCollectorUpdateAppVolumeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateAppVolumeFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -612,16 +469,15 @@ void AudioStreamCollectorUpdateAppVolumeFuzzTest(const uint8_t *rawData, size_t audioStreamCollector_.UpdateAppVolume(appUid, volume); } -void AudioStreamCollectorGetStreamTypeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetStreamTypeFuzzTest() { - uint32_t index = static_cast(size) % g_testContentTypes.size(); - ContentType contentType = g_testContentTypes[index]; - index = static_cast(size) % g_testStreamUsages.size(); - StreamUsage streamUsage = g_testStreamUsages[index]; + ContentType contentType = g_fuzzUtils.GetData(); + StreamUsage streamUsage = g_fuzzUtils.GetData(); audioStreamCollector_.GetStreamType(contentType, streamUsage); shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue; rendererChangeInfo->createrUID = randIntValue; rendererChangeInfo->sessionId = randIntValue + 1; @@ -631,7 +487,7 @@ void AudioStreamCollectorGetStreamTypeFuzzTest(const uint8_t *rawData, size_t si audioStreamCollector_.GetStreamType(sessionId); } -void AudioStreamCollectorGetSessionIdsOnRemoteDeviceByStreamUsageFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetSessionIdsOnRemoteDeviceByStreamUsageFuzzTest() { vector testInterruptHints = { INTERRUPT_HINT_NONE, @@ -643,13 +499,14 @@ void AudioStreamCollectorGetSessionIdsOnRemoteDeviceByStreamUsageFuzzTest(const INTERRUPT_HINT_MUTE, INTERRUPT_HINT_UNMUTE }; - uint32_t index = static_cast(size); - StreamUsage streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + uint32_t index = g_fuzzUtils.GetData(); + StreamUsage streamUsage = g_fuzzUtils.GetData(); DeviceType deviceType = g_testDeviceTypes[index % g_testDeviceTypes.size()]; - DeviceRole role = g_testDeviceRoles[index % g_testDeviceRoles.size()]; + DeviceRole role = g_fuzzUtils.GetData(); AudioDeviceDescriptor outputDeviceInfo(deviceType, role, 0, 0, "RemoteDevice"); shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -662,10 +519,11 @@ void AudioStreamCollectorGetSessionIdsOnRemoteDeviceByStreamUsageFuzzTest(const audioStreamCollector_.GetSessionIdsOnRemoteDeviceByDeviceType(deviceType); } -void AudioStreamCollectorIsOffloadAllowedFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorIsOffloadAllowedFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t sessionId = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; @@ -676,10 +534,10 @@ void AudioStreamCollectorIsOffloadAllowedFuzzTest(const uint8_t *rawData, size_t audioStreamCollector_.IsOffloadAllowed(sessionId); } -void AudioStreamCollectorGetChannelCountFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetChannelCountFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t sessionId = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; @@ -690,11 +548,12 @@ void AudioStreamCollectorGetChannelCountFuzzTest(const uint8_t *rawData, size_t audioStreamCollector_.GetChannelCount(sessionId); } -void AudioStreamCollectorGetCurrentRendererChangeInfosFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetCurrentRendererChangeInfosFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); std::vector> rendererChangeInfos; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -704,11 +563,12 @@ void AudioStreamCollectorGetCurrentRendererChangeInfosFuzzTest(const uint8_t *ra audioStreamCollector_.GetCurrentRendererChangeInfos(rendererChangeInfos); } -void AudioStreamCollectorGetCurrentCapturerChangeInfosFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetCurrentCapturerChangeInfosFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); std::vector> rendererChangeInfos; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -717,14 +577,14 @@ void AudioStreamCollectorGetCurrentCapturerChangeInfosFuzzTest(const uint8_t *ra audioStreamCollector_.GetCurrentCapturerChangeInfos(rendererChangeInfos); } -void AudioStreamCollectorRegisteredTrackerClientDiedFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorRegisteredTrackerClientDiedFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t uid = randIntValue / NUM_2; int32_t pid = randIntValue / NUM_2; audioStreamCollector_.GetLastestRunningCallStreamUsage(); shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientPid = randIntValue / NUM_2; @@ -734,20 +594,21 @@ void AudioStreamCollectorRegisteredTrackerClientDiedFuzzTest(const uint8_t *rawD audioStreamCollector_.RegisteredTrackerClientDied(uid, pid); } -void AudioStreamCollectorGetAndCompareStreamTypeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetAndCompareStreamTypeFuzzTest() { - uint32_t index = static_cast(size); - StreamUsage targetUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + uint32_t index = g_fuzzUtils.GetData(); + StreamUsage targetUsage = g_fuzzUtils.GetData(); AudioRendererInfo rendererInfo; - rendererInfo.contentType = g_testContentTypes[index % g_testContentTypes.size()]; - rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + rendererInfo.contentType = g_fuzzUtils.GetData(); + rendererInfo.streamUsage = g_fuzzUtils.GetData(); audioStreamCollector_.GetAndCompareStreamType(targetUsage, rendererInfo); } -void AudioStreamCollectorGetUidFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetUidFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t sessionId = randIntValue; rendererChangeInfo->createrUID = randIntValue / NUM_2; @@ -758,10 +619,11 @@ void AudioStreamCollectorGetUidFuzzTest(const uint8_t *rawData, size_t size) audioStreamCollector_.GetUid(sessionId); } -void AudioStreamCollectorResumeStreamStateFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorResumeStreamStateFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -770,7 +632,7 @@ void AudioStreamCollectorResumeStreamStateFuzzTest(const uint8_t *rawData, size_ audioStreamCollector_.ResumeStreamState(); } -void AudioStreamCollectorUpdateStreamStateFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateStreamStateFuzzTest() { vector testStreamSetState = { STREAM_PAUSE, @@ -778,66 +640,66 @@ void AudioStreamCollectorUpdateStreamStateFuzzTest(const uint8_t *rawData, size_ STREAM_MUTE, STREAM_UNMUTE, }; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientUid = randIntValue / NUM_2; StreamSetStateEventInternal event; - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); event.streamSetState = testStreamSetState[index % testStreamSetState.size()]; - event.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + event.streamUsage = g_fuzzUtils.GetData(); auto changeInfo = std::make_unique(); changeInfo->clientUID = clientUid; - changeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + changeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); changeInfo->sessionId = randIntValue % NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(changeInfo)); audioStreamCollector_.UpdateStreamState(clientUid, event); } -void AudioStreamCollectorHandleAppStateChangeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorHandleAppStateChangeFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientUid = randIntValue / NUM_2; - int32_t clientPid = static_cast(size); - uint32_t index = static_cast(size); + int32_t clientPid = g_fuzzUtils.GetData(); + uint32_t index = g_fuzzUtils.GetData(); bool notifyMute = static_cast(index % NUM_2); auto changeInfo = std::make_unique(); changeInfo->clientUID = clientUid; changeInfo->clientPid = clientPid; - changeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + changeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); changeInfo->sessionId = randIntValue; changeInfo->backMute = static_cast(index % NUM_2); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(changeInfo)); - bool hasBackTask = static_cast(size) % NUM_2; + bool hasBackTask = g_fuzzUtils.GetData(); bool mute = static_cast(index % NUM_2); audioStreamCollector_.HandleAppStateChange(clientUid, clientPid, mute, notifyMute, hasBackTask); } -void AudioStreamCollectorHandleFreezeStateChangeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorHandleFreezeStateChangeFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientPid = randIntValue / NUM_2; - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); bool hasSession = static_cast(index % NUM_2); auto changeInfo = std::make_unique(); changeInfo->clientPid = clientPid; - changeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + changeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); changeInfo->sessionId = randIntValue / NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(changeInfo)); audioStreamCollector_.HandleFreezeStateChange(clientPid, static_cast(index % NUM_2), hasSession); } -void AudioStreamCollectorHandleBackTaskStateChangeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorHandleBackTaskStateChangeFuzzTest() { static uint32_t stepSize = 0; - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientUid = randIntValue / NUM_2; - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); bool hasSession = static_cast(index % NUM_2); auto changeInfo = std::make_unique(); changeInfo->clientUID = clientUid; - changeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + changeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); changeInfo->sessionId = randIntValue / NUM_2; changeInfo->backMute = static_cast((index + stepSize++) % NUM_2); @@ -846,148 +708,152 @@ void AudioStreamCollectorHandleBackTaskStateChangeFuzzTest(const uint8_t *rawDat audioStreamCollector_.HandleBackTaskStateChange(clientUid, hasSession); } -void AudioStreamCollectorHandleStartStreamMuteStateFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorHandleStartStreamMuteStateFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientUid = randIntValue; int32_t createrUID = randIntValue; int32_t clientPid = randIntValue; - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); bool mute = static_cast(index % NUM_2); auto changeInfo = std::make_unique(); changeInfo->clientUID = clientUid; changeInfo->createrUID = createrUID; changeInfo->clientPid = clientPid; - changeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + changeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); changeInfo->sessionId = randIntValue / NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(changeInfo)); audioStreamCollector_.HandleStartStreamMuteState(clientUid, clientPid, mute, mute); } -void AudioStreamCollectorIsStreamActiveFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorIsStreamActiveFuzzTest() { - uint32_t index = static_cast(size); - AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; + uint32_t index = g_fuzzUtils.GetData(); + AudioStreamType volumeType = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; + rendererChangeInfo->rendererState = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); audioStreamCollector_.IsStreamActive(volumeType); } -void AudioStreamCollectorGetRunningStreamFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetRunningStreamFuzzTest() { - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); AudioRendererInfo rendererInfo; - rendererInfo.contentType = g_testContentTypes[index % g_testContentTypes.size()]; - rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + rendererInfo.contentType = g_fuzzUtils.GetData(); + rendererInfo.streamUsage = g_fuzzUtils.GetData(); std::unique_ptr info = std::make_unique(); - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); info->sessionId = randIntValue; - info->rendererState = g_testRendererState[index % g_testRendererState.size()]; + info->rendererState = g_fuzzUtils.GetData(); info->rendererInfo = rendererInfo; info->channelCount = randIntValue % NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(info)); - audioStreamCollector_.GetRunningStream(g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()], 0); + audioStreamCollector_.GetRunningStream(g_fuzzUtils.GetData(), 0); } -void AudioStreamCollectorGetStreamTypeFromSourceTypeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetStreamTypeFromSourceTypeFuzzTest() { - uint32_t index = static_cast(size); - audioStreamCollector_.GetStreamTypeFromSourceType(g_testSourceTypes[index % g_testSourceTypes.size()]); + uint32_t index = g_fuzzUtils.GetData(); + audioStreamCollector_.GetStreamTypeFromSourceType(g_fuzzUtils.GetData()); } -void AudioStreamCollectorSetGetLowPowerVolumeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorSetGetLowPowerVolumeFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t streamId = randIntValue / NUM_2; - audioStreamCollector_.SetLowPowerVolume(streamId, static_cast(size)); + audioStreamCollector_.SetLowPowerVolume(streamId, g_fuzzUtils.GetData()); audioStreamCollector_.GetLowPowerVolume(streamId); } -void AudioStreamCollectorSetOffloadModeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorSetOffloadModeFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t streamId = randIntValue / NUM_2; int32_t state = randIntValue / NUM_2 - 1; - bool isAppBack = static_cast(static_cast(size) % NUM_2); + bool isAppBack = g_fuzzUtils.GetData(); audioStreamCollector_.SetOffloadMode(streamId, state, isAppBack); } -void AudioStreamCollectorUnsetOffloadModeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUnsetOffloadModeFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t streamId = randIntValue % NUM_2; AudioStreamChangeInfo streamChangeInfo; streamChangeInfo.audioRendererChangeInfo.clientUID = randIntValue / NUM_2; streamChangeInfo.audioRendererChangeInfo.sessionId = randIntValue; - uint32_t index = static_cast(size); - streamChangeInfo.audioRendererChangeInfo.rendererState = g_testRendererState[index % g_testRendererState.size()]; + uint32_t index = g_fuzzUtils.GetData(); + streamChangeInfo.audioRendererChangeInfo.rendererState = g_fuzzUtils.GetData(); sptr object; sptr listener = iface_cast(object); std::shared_ptr callback = std::make_shared(listener); + CHECK_AND_RETURN(callback != nullptr); int32_t clientId = streamChangeInfo.audioRendererChangeInfo.sessionId; audioStreamCollector_.clientTracker_[clientId] = callback; audioStreamCollector_.UnsetOffloadMode(streamId); } -void AudioStreamCollectorGetSingleStreamVolumeFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetSingleStreamVolumeFuzzTest() { - int32_t streamId = static_cast(size); + int32_t streamId = g_fuzzUtils.GetData(); audioStreamCollector_.GetSingleStreamVolume(streamId); } -void AudioStreamCollectorUpdateCapturerInfoMuteStatusFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorUpdateCapturerInfoMuteStatusFuzzTest() { auto changeInfo = std::make_unique(); - int32_t randIntValue = static_cast(size); - uint32_t index = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); + uint32_t index = g_fuzzUtils.GetData(); changeInfo->clientUID = randIntValue; changeInfo->muted = static_cast(index % NUM_2); changeInfo->sessionId = randIntValue / NUM_2; - changeInfo->capturerInfo.sourceType = g_testSourceTypes[index % g_testSourceTypes.size()]; + changeInfo->capturerInfo.sourceType = g_fuzzUtils.GetData(); changeInfo->inputDeviceInfo.deviceType_ = g_testDeviceTypes[index % g_testDeviceTypes.size()]; audioStreamCollector_.audioCapturerChangeInfos_.clear(); audioStreamCollector_.audioCapturerChangeInfos_.push_back(std::move(changeInfo)); audioStreamCollector_.audioPolicyServerHandler_ = std::make_shared(); + CHECK_AND_RETURN(audioStreamCollector_.audioPolicyServerHandler_ != nullptr); audioStreamCollector_.UpdateCapturerInfoMuteStatus(randIntValue, true); } -void AudioStreamCollectorIsCallStreamUsageFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorIsCallStreamUsageFuzzTest() { - uint32_t index = static_cast(size) % g_testStreamUsages.size(); - StreamUsage usage = g_testStreamUsages[index]; + uint32_t index = g_fuzzUtils.GetData(); + StreamUsage usage = g_fuzzUtils.GetData(); audioStreamCollector_.IsCallStreamUsage(usage); } -void AudioStreamCollectorGetRunningStreamUsageNoUltrasonicFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetRunningStreamUsageNoUltrasonicFuzzTest() { - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; - rendererChangeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + rendererChangeInfo->rendererState = g_fuzzUtils.GetData(); + rendererChangeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); audioStreamCollector_.GetRunningStreamUsageNoUltrasonic(); } -void AudioStreamCollectorGetRunningSourceTypeNoUltrasonicFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetRunningSourceTypeNoUltrasonicFuzzTest() { const vector testCapturerStates = { CAPTURER_INVALID, @@ -998,43 +864,44 @@ void AudioStreamCollectorGetRunningSourceTypeNoUltrasonicFuzzTest(const uint8_t CAPTURER_RELEASED, CAPTURER_PAUSED, }; - uint32_t index = static_cast(size); - int32_t randIntValue = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); + int32_t randIntValue = g_fuzzUtils.GetData(); auto changeInfo = std::make_unique(); changeInfo->clientUID = randIntValue; changeInfo->sessionId = randIntValue / NUM_2; changeInfo->capturerState = testCapturerStates[index % testCapturerStates.size()]; - changeInfo->capturerInfo.sourceType = g_testSourceTypes[index % g_testSourceTypes.size()]; + changeInfo->capturerInfo.sourceType = g_fuzzUtils.GetData(); audioStreamCollector_.audioCapturerChangeInfos_.clear(); audioStreamCollector_.audioCapturerChangeInfos_.push_back(move(changeInfo)); audioStreamCollector_.GetRunningSourceTypeNoUltrasonic(); } -void AudioStreamCollectorGetLastestRunningCallStreamUsageFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetLastestRunningCallStreamUsageFuzzTest() { - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; - rendererChangeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + rendererChangeInfo->rendererState = g_fuzzUtils.GetData(); + rendererChangeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); audioStreamCollector_.GetLastestRunningCallStreamUsage(); } -void AudioStreamCollectorGetAllRendererSessionIDForUIDFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetAllRendererSessionIDForUIDFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t uid = randIntValue / NUM_2; shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue /NUM_2; rendererChangeInfo->createrUID = randIntValue /NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -1044,12 +911,12 @@ void AudioStreamCollectorGetAllRendererSessionIDForUIDFuzzTest(const uint8_t *ra audioStreamCollector_.GetAllRendererSessionIDForUID(uid); } -void AudioStreamCollectorGetAllCapturerSessionIDForUIDFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorGetAllCapturerSessionIDForUIDFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t uid = randIntValue / NUM_2; shared_ptr capturerChangeInfo = make_shared(); - + CHECK_AND_RETURN(capturerChangeInfo != nullptr); capturerChangeInfo->clientUID = randIntValue /NUM_2; capturerChangeInfo->createrUID = randIntValue /NUM_2; capturerChangeInfo->sessionId = randIntValue; @@ -1059,27 +926,28 @@ void AudioStreamCollectorGetAllCapturerSessionIDForUIDFuzzTest(const uint8_t *ra audioStreamCollector_.GetAllCapturerSessionIDForUID(uid); } -void AudioStreamCollectorChangeVoipCapturerStreamToNormalFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorChangeVoipCapturerStreamToNormalFuzzTest() { shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); - uint32_t index = static_cast(size); + CHECK_AND_RETURN(rendererChangeInfo != nullptr); + int32_t randIntValue = g_fuzzUtils.GetData(); + uint32_t index = g_fuzzUtils.GetData(); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->capturerInfo.sourceType = g_testSourceTypes[index % g_testSourceTypes.size()]; + rendererChangeInfo->capturerInfo.sourceType = g_fuzzUtils.GetData(); audioStreamCollector_.audioCapturerChangeInfos_.clear(); audioStreamCollector_.audioCapturerChangeInfos_.push_back(move(rendererChangeInfo)); audioStreamCollector_.ChangeVoipCapturerStreamToNormal(); } -void AudioStreamCollectorHasVoipRendererStreamFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorHasVoipRendererStreamFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t uid = randIntValue / NUM_2; shared_ptr rendererChangeInfo = make_shared(); - + CHECK_AND_RETURN(rendererChangeInfo != nullptr); rendererChangeInfo->clientUID = randIntValue / NUM_2; rendererChangeInfo->createrUID = randIntValue / NUM_2; rendererChangeInfo->sessionId = randIntValue; @@ -1090,16 +958,16 @@ void AudioStreamCollectorHasVoipRendererStreamFuzzTest(const uint8_t *rawData, s audioStreamCollector_.HasVoipRendererStream(); } -void AudioStreamCollectorIsMediaPlayingFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorIsMediaPlayingFuzzTest() { - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); AudioRendererInfo rendererInfo; - rendererInfo.contentType = g_testContentTypes[index % g_testContentTypes.size()]; - rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + rendererInfo.contentType = g_fuzzUtils.GetData(); + rendererInfo.streamUsage = g_fuzzUtils.GetData(); std::unique_ptr info = std::make_unique(); - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); info->sessionId = randIntValue % NUM_2; - info->rendererState = g_testRendererState[index % g_testRendererState.size()]; + info->rendererState = g_fuzzUtils.GetData(); info->rendererInfo = rendererInfo; info->channelCount = randIntValue % NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); @@ -1107,15 +975,15 @@ void AudioStreamCollectorIsMediaPlayingFuzzTest(const uint8_t *rawData, size_t s audioStreamCollector_.IsMediaPlaying(); } -void AudioStreamCollectorIsVoipStreamActiveFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorIsVoipStreamActiveFuzzTest() { - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); AudioRendererInfo rendererInfo; - rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + rendererInfo.streamUsage = g_fuzzUtils.GetData(); std::unique_ptr info = std::make_unique(); - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); info->sessionId = randIntValue % NUM_2; - info->rendererState = g_testRendererState[index % g_testRendererState.size()]; + info->rendererState = g_fuzzUtils.GetData(); info->rendererInfo = rendererInfo; info->channelCount = randIntValue % NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); @@ -1123,131 +991,86 @@ void AudioStreamCollectorIsVoipStreamActiveFuzzTest(const uint8_t *rawData, size audioStreamCollector_.IsVoipStreamActive(); } -void AudioStreamCollectorCheckVoiceCallActiveFuzzTest(const uint8_t *rawData, size_t size) +void AudioStreamCollectorCheckVoiceCallActiveFuzzTest() { - int32_t randIntValue = static_cast(size); + int32_t randIntValue = g_fuzzUtils.GetData(); int32_t clientPid = randIntValue / NUM_2; - uint32_t index = static_cast(size); + uint32_t index = g_fuzzUtils.GetData(); auto changeInfo = std::make_unique(); changeInfo->clientPid = clientPid; - changeInfo->rendererInfo.streamUsage = g_testStreamUsages[index % g_testStreamUsages.size()]; + changeInfo->rendererInfo.streamUsage = g_fuzzUtils.GetData(); changeInfo->sessionId = randIntValue / NUM_2; audioStreamCollector_.audioRendererChangeInfos_.clear(); audioStreamCollector_.audioRendererChangeInfos_.push_back(std::move(changeInfo)); audioStreamCollector_.CheckVoiceCallActive(clientPid); } -void AudioStreamCollectorPostReclaimMemoryTaskFuzzTest(const uint8_t *rawData, size_t size) -{ - uint32_t index = static_cast(size); - AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; - shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); - rendererChangeInfo->createrUID = randIntValue / NUM_2; - rendererChangeInfo->clientUID = randIntValue / NUM_2; - rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; - audioStreamCollector_.audioRendererChangeInfos_.clear(); - audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); - audioStreamCollector_.PostReclaimMemoryTask(); - audioStreamCollector_.ReclaimMem(); -} +vector g_testFuncs = { + AudioStreamCollectorAddRendererStreamFuzzTest, + AudioStreamCollectorGetRendererStreamInfoFuzzTest, + AudioStreamCollectorGetCapturerStreamInfoFuzzTest, + AudioStreamCollectorGetPipeTypeFuzzTest, + AudioStreamCollectorExistStreamForPipeFuzzTest, + AudioStreamCollectorGetRendererDeviceInfoFuzzTest, + AudioStreamCollectorAddCapturerStreamFuzzTest, + AudioStreamCollectorSendCapturerInfoEventFuzzTest, + AudioStreamCollectorRegisterTrackerFuzzTest, + AudioStreamCollectorSetRendererStreamParamFuzzTest, + AudioStreamCollectorSetCapturerStreamParamFuzzTest, + AudioStreamCollectorResetRendererStreamDeviceInfoFuzzTest, + AudioStreamCollectorResetCapturerStreamDeviceInfoFuzzTest, + AudioStreamCollectorCheckRendererStateInfoChangedFuzzTest, + AudioStreamCollectorCheckRendererInfoChangedFuzzTest, + AudioStreamCollectorResetRingerModeMuteFuzzTest, + AudioStreamCollectorUpdateRendererStreamInternalFuzzTest, + AudioStreamCollectorUpdateCapturerStreamInternalFuzzTest, + AudioStreamCollectorUpdateTrackerFuzzTest, + AudioStreamCollectorUpdateRendererDeviceInfoFuzzTest, + AudioStreamCollectorUpdateCapturerDeviceInfoFuzzTest, + AudioStreamCollectorUpdateRendererPipeInfoFuzzTest, + AudioStreamCollectorUpdateAppVolumeFuzzTest, + AudioStreamCollectorGetStreamTypeFuzzTest, + AudioStreamCollectorGetSessionIdsOnRemoteDeviceByStreamUsageFuzzTest, + AudioStreamCollectorIsOffloadAllowedFuzzTest, + AudioStreamCollectorGetChannelCountFuzzTest, + AudioStreamCollectorGetCurrentRendererChangeInfosFuzzTest, + AudioStreamCollectorGetCurrentCapturerChangeInfosFuzzTest, + AudioStreamCollectorRegisteredTrackerClientDiedFuzzTest, + AudioStreamCollectorGetAndCompareStreamTypeFuzzTest, + AudioStreamCollectorGetUidFuzzTest, + AudioStreamCollectorResumeStreamStateFuzzTest, + AudioStreamCollectorUpdateStreamStateFuzzTest, + AudioStreamCollectorHandleAppStateChangeFuzzTest, + AudioStreamCollectorHandleFreezeStateChangeFuzzTest, + AudioStreamCollectorHandleBackTaskStateChangeFuzzTest, + AudioStreamCollectorHandleStartStreamMuteStateFuzzTest, + AudioStreamCollectorIsStreamActiveFuzzTest, + AudioStreamCollectorGetRunningStreamFuzzTest, + AudioStreamCollectorGetStreamTypeFromSourceTypeFuzzTest, + AudioStreamCollectorSetGetLowPowerVolumeFuzzTest, + AudioStreamCollectorSetOffloadModeFuzzTest, + AudioStreamCollectorUnsetOffloadModeFuzzTest, + AudioStreamCollectorGetSingleStreamVolumeFuzzTest, + AudioStreamCollectorUpdateCapturerInfoMuteStatusFuzzTest, + AudioStreamCollectorIsCallStreamUsageFuzzTest, + AudioStreamCollectorGetRunningStreamUsageNoUltrasonicFuzzTest, + AudioStreamCollectorGetRunningSourceTypeNoUltrasonicFuzzTest, + AudioStreamCollectorGetLastestRunningCallStreamUsageFuzzTest, + AudioStreamCollectorGetAllRendererSessionIDForUIDFuzzTest, + AudioStreamCollectorGetAllCapturerSessionIDForUIDFuzzTest, + AudioStreamCollectorChangeVoipCapturerStreamToNormalFuzzTest, + AudioStreamCollectorHasVoipRendererStreamFuzzTest, + AudioStreamCollectorIsMediaPlayingFuzzTest, + AudioStreamCollectorIsVoipStreamActiveFuzzTest, + AudioStreamCollectorCheckVoiceCallActiveFuzzTest, +}; -void AudioStreamCollectorCheckAudioStateIdleFuzzTest(const uint8_t *rawData, size_t size) -{ - uint32_t index = static_cast(size); - AudioStreamType volumeType = g_testAudioStreamTypes[index % g_testAudioStreamTypes.size()]; - shared_ptr rendererChangeInfo = make_shared(); - int32_t randIntValue = static_cast(size); - rendererChangeInfo->createrUID = randIntValue / NUM_2; - rendererChangeInfo->clientUID = randIntValue / NUM_2; - rendererChangeInfo->sessionId = randIntValue; - rendererChangeInfo->rendererState = g_testRendererState[index % g_testRendererState.size()]; - audioStreamCollector_.audioRendererChangeInfos_.clear(); - audioStreamCollector_.audioRendererChangeInfos_.push_back(move(rendererChangeInfo)); - audioStreamCollector_.CheckAudioStateIdle(); -} } // namespace AudioStandard } // namesapce OHOS -OHOS::AudioStandard::TestPtr g_testPtrs[] = { - OHOS::AudioStandard::AudioStreamCollectorAddRendererStreamFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetRendererStreamInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetCapturerStreamInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetPipeTypeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorExistStreamForPipeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetRendererDeviceInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorAddCapturerStreamFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorSendCapturerInfoEventFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorRegisterTrackerFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorSetRendererStreamParamFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorSetCapturerStreamParamFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorResetRendererStreamDeviceInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorResetCapturerStreamDeviceInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorCheckRendererStateInfoChangedFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorCheckRendererInfoChangedFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorResetRingerModeMuteFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateRendererStreamInternalFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateCapturerStreamInternalFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateTrackerFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateRendererDeviceInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateCapturerDeviceInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateRendererPipeInfoFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateAppVolumeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetStreamTypeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetSessionIdsOnRemoteDeviceByStreamUsageFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorIsOffloadAllowedFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetChannelCountFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetCurrentRendererChangeInfosFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetCurrentCapturerChangeInfosFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorRegisteredTrackerClientDiedFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetAndCompareStreamTypeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetUidFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorResumeStreamStateFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateStreamStateFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorHandleAppStateChangeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorHandleFreezeStateChangeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorHandleBackTaskStateChangeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorHandleStartStreamMuteStateFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorIsStreamActiveFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetRunningStreamFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetStreamTypeFromSourceTypeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorSetGetLowPowerVolumeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorSetOffloadModeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUnsetOffloadModeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetSingleStreamVolumeFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorUpdateCapturerInfoMuteStatusFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorIsCallStreamUsageFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetRunningStreamUsageNoUltrasonicFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetRunningSourceTypeNoUltrasonicFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetLastestRunningCallStreamUsageFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetAllRendererSessionIDForUIDFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorGetAllCapturerSessionIDForUIDFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorChangeVoipCapturerStreamToNormalFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorHasVoipRendererStreamFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorIsMediaPlayingFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorIsVoipStreamActiveFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorCheckVoiceCallActiveFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorPostReclaimMemoryTaskFuzzTest, - OHOS::AudioStandard::AudioStreamCollectorCheckAudioStateIdleFuzzTest, -}; - /* 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 len = OHOS::AudioStandard::GetArrLength(g_testPtrs); - if (len > 0) { - uint8_t firstByte = *data % len; - if (firstByte >= len) { - return 0; - } - data = data + 1; - size = size - 1; - g_testPtrs[firstByte](data, size); - } + OHOS::AudioStandard::g_fuzzUtils.fuzzTest(data, size, OHOS::AudioStandard::g_testFuncs); return 0; } \ No newline at end of file diff --git a/test/fuzztest/captureclockmanager_fuzzer/capture_clock_manager_fuzzer.cpp b/test/fuzztest/captureclockmanager_fuzzer/capture_clock_manager_fuzzer.cpp index b6c9767642..d9e4d11500 100644 --- a/test/fuzztest/captureclockmanager_fuzzer/capture_clock_manager_fuzzer.cpp +++ b/test/fuzztest/captureclockmanager_fuzzer/capture_clock_manager_fuzzer.cpp @@ -13,197 +13,67 @@ * 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.h" #include "capturer_clock_manager.h" +#include "../fuzz_utils.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; -constexpr uint64_t MOCK_POSITION_INC = 960; -constexpr uint32_t MOCK_SAMPLE_RATE = 48000; -constexpr uint32_t MOCK_SAMPLE_RATE_2 = 96000; -constexpr uint64_t MOCK_TIMESTAMP_1 = 1000000000; -constexpr uint64_t MOCK_TIMESTAMP_2 = 1020000000; -constexpr uint64_t MOCK_TIMESTAMP_4 = 1100000000; -constexpr uint64_t MOCK_TIMESTAMP_5 = 1120000000; -constexpr uint64_t MOCK_POSITION_1 = 0; -constexpr uint64_t MOCK_POSITION_2 = 960; -constexpr uint64_t MOCK_POSITION_3 = 1920; -constexpr uint64_t MOCK_POSITION_4 = 2880; -constexpr uint64_t MOCK_POSITION_5 = 3840; +FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); typedef void (*TestFuncs)(); -template -T GetData() +void CreateCapturerClockFuzzTest() { - 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; + uint32_t sessionId = g_fuzzUtils.GetData(); + uint32_t sampleRate = g_fuzzUtils.GetData(); + CapturerClockManager::GetInstance().CreateCapturerClock(sessionId, sampleRate); } -template -uint32_t GetArrLength(T& arr) +void DeleteCapturerClockFuzzTest() { - if (arr == nullptr) { - AUDIO_INFO_LOG("%{public}s: The array length is equal to 0", __func__); - return 0; - } - return sizeof(arr) / sizeof(arr[0]); + uint32_t sessionId = g_fuzzUtils.GetData(); + CapturerClockManager::GetInstance().DeleteCapturerClock(sessionId); } -void GetMediaRenderDeviceFuzzTest() +void GetCapturerClockFuzzTest() { - CapturerClockManager::GetInstance().CreateCapturerClock(1, MOCK_SAMPLE_RATE); - CapturerClockManager::GetInstance().CreateCapturerClock(1, MOCK_SAMPLE_RATE); - CapturerClockManager::GetInstance().GetCapturerClock(1); - CapturerClockManager::GetInstance().GetCapturerClock(0); - CapturerClockManager::GetInstance().DeleteCapturerClock(1); + uint32_t sessionId = g_fuzzUtils.GetData(); + CapturerClockManager::GetInstance().GetCapturerClock(sessionId); } -void GetRecordCaptureDeviceFuzzTest() +void RegisterAudioSourceClockFuzzTest() { - shared_ptr srcClock = make_shared(); - CapturerClockManager::GetInstance().audioSrcClockPool_.size(); - CapturerClockManager::GetInstance().RegisterAudioSourceClock(1, srcClock); - CapturerClockManager::GetInstance().RegisterAudioSourceClock(1, srcClock); - CapturerClockManager::GetInstance().audioSrcClockPool_.size(); - - CapturerClockManager::GetInstance().GetAudioSourceClock(1); - CapturerClockManager::GetInstance().GetAudioSourceClock(0); - CapturerClockManager::GetInstance().audioSrcClockPool_.size(); - - CapturerClockManager::GetInstance().DeleteAudioSourceClock(1); - CapturerClockManager::GetInstance().audioSrcClockPool_.size(); + uint32_t captureId = g_fuzzUtils.GetData(); + std::shared_ptr srcClock = std::make_shared(); + CapturerClockManager::GetInstance().RegisterAudioSourceClock(captureId, srcClock); } -void CaptureClockStartAndStopFuzzTest() +void DeleteAudioSourceClockFuzzTest() { - uint32_t capturerSampleRate = GetData(); - CapturerClock clock(capturerSampleRate); - clock.Start(); - uint64_t time = GetData(); - uint32_t srcSampleRate = GetData(); - uint64_t posIncSize = GetData(); - - clock.SetTimeStampByPosition(time, srcSampleRate, posIncSize); - clock.Stop(); + uint32_t captureId = g_fuzzUtils.GetData(); + CapturerClockManager::GetInstance().DeleteAudioSourceClock(captureId); } -void GetTimeStampByPositionNormalFuzzTest() +void GetAudioSourceClockFuzzTest() { - CapturerClockManager::GetInstance().CreateCapturerClock(1, MOCK_SAMPLE_RATE); - std::shared_ptr capturerClock_ = CapturerClockManager::GetInstance().GetCapturerClock(1); - if (capturerClock_ == nullptr) { - return; - } - capturerClock_->SetTimeStampByPosition(MOCK_TIMESTAMP_1, MOCK_SAMPLE_RATE, MOCK_POSITION_INC); - - capturerClock_->Start(); - capturerClock_->SetTimeStampByPosition(MOCK_TIMESTAMP_1, MOCK_SAMPLE_RATE, MOCK_POSITION_INC); - capturerClock_->SetTimeStampByPosition(MOCK_TIMESTAMP_2, MOCK_SAMPLE_RATE, MOCK_POSITION_INC); - uint64_t timestamp; - capturerClock_->GetTimeStampByPosition(MOCK_POSITION_1, timestamp); - capturerClock_->GetTimeStampByPosition(MOCK_POSITION_2, timestamp); - capturerClock_->GetTimeStampByPosition(MOCK_POSITION_3, timestamp); - capturerClock_->Stop(); - CapturerClockManager::GetInstance().DeleteCapturerClock(1); + uint32_t captureId = g_fuzzUtils.GetData(); + CapturerClockManager::GetInstance().GetAudioSourceClock(captureId); } -void GetTimeStampByPositionDifferentFuzzTest() -{ - CapturerClockManager::GetInstance().CreateCapturerClock(1, MOCK_SAMPLE_RATE); - std::shared_ptr capturerClock_ = CapturerClockManager::GetInstance().GetCapturerClock(1); - if (capturerClock_ == nullptr) { - return; - } - capturerClock_->Start(); - - capturerClock_->SetTimeStampByPosition(MOCK_TIMESTAMP_4, MOCK_SAMPLE_RATE_2, MOCK_POSITION_INC * NUM_2); - capturerClock_->SetTimeStampByPosition(MOCK_TIMESTAMP_5, MOCK_SAMPLE_RATE_2, MOCK_POSITION_INC * NUM_2); - - uint64_t timestamp; - capturerClock_->GetTimeStampByPosition(MOCK_POSITION_4, timestamp); - capturerClock_->GetTimeStampByPosition(MOCK_POSITION_5, timestamp); - CapturerClockManager::GetInstance().DeleteCapturerClock(1); -} - -TestFuncs g_testFuncs[] = { - GetMediaRenderDeviceFuzzTest, - GetRecordCaptureDeviceFuzzTest, - CaptureClockStartAndStopFuzzTest, - GetTimeStampByPositionNormalFuzzTest, - GetTimeStampByPositionDifferentFuzzTest, +std::vector g_testFuncs = { + CreateCapturerClockFuzzTest, + DeleteCapturerClockFuzzTest, + GetCapturerClockFuzzTest, + RegisterAudioSourceClockFuzzTest, + DeleteAudioSourceClockFuzzTest, + GetAudioSourceClockFuzzTest, }; - -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); + OHOS::AudioStandard::g_fuzzUtils.fuzzTest(data, size, OHOS::AudioStandard::g_testFuncs); return 0; } diff --git a/test/fuzztest/capturerinserver_fuzzer/capturer_in_server_fuzzer.cpp b/test/fuzztest/capturerinserver_fuzzer/capturer_in_server_fuzzer.cpp index 8ccafdf77a..e407b518ab 100644 --- a/test/fuzztest/capturerinserver_fuzzer/capturer_in_server_fuzzer.cpp +++ b/test/fuzztest/capturerinserver_fuzzer/capturer_in_server_fuzzer.cpp @@ -27,75 +27,10 @@ using namespace std; FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); const size_t FUZZ_INPUT_SIZE_THRESHOLD = 10; const uint32_t APPID_LENGTH = 10; -const int64_t STOP_TIME = 100; std::shared_ptr capturerInServer_ = nullptr; typedef void (*TestFuncs)(); -vector IOperationVec = { - OPERATION_INVALID, - OPERATION_STARTED, - OPERATION_PAUSED, - OPERATION_STOPPED, - OPERATION_FLUSHED, - OPERATION_DRAINED, - OPERATION_RELEASED, - OPERATION_UNDERRUN, - OPERATION_UNDERFLOW, - OPERATION_SET_OFFLOAD_ENABLE, - OPERATION_UNSET_OFFLOAD_ENABLE, - OPERATION_DATA_LINK_CONNECTING, - OPERATION_DATA_LINK_CONNECTED, -}; - -vector IStatusVec = { - I_STATUS_INVALID, - I_STATUS_IDLE, - I_STATUS_STARTING, - I_STATUS_STARTED, - I_STATUS_PAUSING, - I_STATUS_PAUSED, - I_STATUS_FLUSHING_WHEN_STARTED, - I_STATUS_FLUSHING_WHEN_PAUSED, - I_STATUS_FLUSHING_WHEN_STOPPED, - I_STATUS_DRAINING, - I_STATUS_DRAINED, - I_STATUS_STOPPING, - I_STATUS_STOPPED, - I_STATUS_RELEASING, - I_STATUS_RELEASED, -}; - -vector AudioSampleFormatVec = { - SAMPLE_U8, - SAMPLE_S16LE, - SAMPLE_S24LE, - SAMPLE_S32LE, - SAMPLE_F32LE, - INVALID_WIDTH, -}; - -vector SourceTypeVec = { - SOURCE_TYPE_INVALID, - SOURCE_TYPE_MIC, - SOURCE_TYPE_VOICE_RECOGNITION, - SOURCE_TYPE_PLAYBACK_CAPTURE, - SOURCE_TYPE_WAKEUP, - SOURCE_TYPE_VOICE_CALL, - SOURCE_TYPE_VOICE_COMMUNICATION, - SOURCE_TYPE_ULTRASONIC, - SOURCE_TYPE_VIRTUAL_CAPTURE, - SOURCE_TYPE_VOICE_MESSAGE, - SOURCE_TYPE_REMOTE_CAST, - SOURCE_TYPE_VOICE_TRANSCRIPTION, - SOURCE_TYPE_CAMCORDER, - SOURCE_TYPE_UNPROCESSED, - SOURCE_TYPE_EC, - SOURCE_TYPE_MIC_REF, - SOURCE_TYPE_LIVE, - SOURCE_TYPE_MAX, -}; - class ICapturerStreamTest : public ICapturerStream { public: int32_t GetStreamFramesRead(uint64_t &framesRead) override { return 0; } @@ -152,126 +87,86 @@ void Init() void OnStatusUpdateFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); std::shared_ptr streamListenerHolder = std::make_shared(); - if (streamListenerHolder == nullptr) { - return; - } + CHECK_AND_RETURN(streamListenerHolder != nullptr); capturerInServer_->streamListener_ = std::weak_ptr(); if (capturerInServer_->streamListener_.lock() == nullptr) { capturerInServer_->streamListener_ = streamListenerHolder; } AppInfo appInfo; + appInfo.appUid = g_fuzzUtils.GetData(); + appInfo.appPid = g_fuzzUtils.GetData(); + appInfo.appTokenId = g_fuzzUtils.GetData(); + appInfo.appFullTokenId = g_fuzzUtils.GetData(); uint32_t index = g_fuzzUtils.GetData(); capturerInServer_->recorderDfx_ = std::make_unique(appInfo, index); - for (size_t i = 0; i < IOperationVec.size(); i++) { - IOperation operation = IOperationVec[i]; - capturerInServer_->OnStatusUpdate(operation); - } -} - -void HandleOperationFlushedFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } - for (size_t i = 0; i < IStatusVec.size(); i++) { - capturerInServer_->status_ = IStatusVec[i]; - capturerInServer_->HandleOperationFlushed(); - } + capturerInServer_->OnStatusUpdate(g_fuzzUtils.GetData()); } void DequeueBufferFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); + capturerInServer_->status_ = g_fuzzUtils.GetData(); + capturerInServer_->HandleOperationFlushed(); + size_t length = g_fuzzUtils.GetData(); capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->stream_ != nullptr); capturerInServer_->DequeueBuffer(length); } void IsReadDataOverFlowFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); size_t length = g_fuzzUtils.GetData(); uint64_t currentWriteFrame = g_fuzzUtils.GetData(); uint32_t totalSizeInFrame = g_fuzzUtils.GetData(); uint32_t spanSizeInFrame = g_fuzzUtils.GetData(); uint32_t byteSizePerFrame = g_fuzzUtils.GetData(); std::shared_ptr stateListener = std::make_shared(); - if (stateListener == nullptr) { - return; - } + CHECK_AND_RETURN(stateListener != nullptr); capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } - capturerInServer_->audioServerBuffer_ = std::make_shared(AudioBufferHolder::AUDIO_CLIENT, + CHECK_AND_RETURN(capturerInServer_->stream_ != nullptr); + capturerInServer_->audioServerBuffer_ = std::make_shared(g_fuzzUtils.GetData(), totalSizeInFrame, spanSizeInFrame, byteSizePerFrame); - if (capturerInServer_->audioServerBuffer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->audioServerBuffer_ != nullptr); auto bufferInfo = std::make_shared(); - if (bufferInfo == nullptr) { - return; - } + CHECK_AND_RETURN(bufferInfo != nullptr); capturerInServer_->audioServerBuffer_->ohAudioBufferBase_.basicBufferInfo_ = bufferInfo.get(); - if (capturerInServer_->audioServerBuffer_->ohAudioBufferBase_.basicBufferInfo_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->audioServerBuffer_->ohAudioBufferBase_.basicBufferInfo_ != nullptr); capturerInServer_->IsReadDataOverFlow(length, currentWriteFrame, stateListener); } void UpdateBufferTimeStampFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); uint32_t capturerSampleRate = g_fuzzUtils.GetData(); size_t readLen = g_fuzzUtils.GetData(); capturerInServer_->capturerClock_ = std::make_shared(capturerSampleRate); - if (capturerInServer_->capturerClock_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->capturerClock_ != nullptr); uint32_t totalSizeInFrame = g_fuzzUtils.GetData(); uint32_t spanSizeInFrame = g_fuzzUtils.GetData(); uint32_t byteSizePerFrame = g_fuzzUtils.GetData(); capturerInServer_->audioServerBuffer_ = std::make_shared(AudioBufferHolder::AUDIO_CLIENT, totalSizeInFrame, spanSizeInFrame, byteSizePerFrame); - if (capturerInServer_->audioServerBuffer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->audioServerBuffer_ != nullptr); capturerInServer_->processConfig_ = GetInnerCapConfig(); - for (size_t i = 0; i < AudioSampleFormatVec.size(); i++) { - capturerInServer_->processConfig_.streamInfo.format = AudioSampleFormatVec[i]; - capturerInServer_->UpdateBufferTimeStamp(readLen); - } + capturerInServer_->processConfig_.streamInfo.format = g_fuzzUtils.GetData(); + capturerInServer_->UpdateBufferTimeStamp(readLen); } void ReadDataFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); size_t cacheSize = g_fuzzUtils.GetData(); capturerInServer_->ringCache_ = AudioRingCache::Create(cacheSize); - if (capturerInServer_->ringCache_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->ringCache_ != nullptr); size_t length = g_fuzzUtils.GetData(); capturerInServer_->ReadData(length); } @@ -279,9 +174,7 @@ void ReadDataFuzzTest() void OnReadDataFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); size_t length = g_fuzzUtils.GetData(); capturerInServer_->OnReadData(length); int8_t outputData = g_fuzzUtils.GetData(); @@ -289,54 +182,36 @@ void OnReadDataFuzzTest() capturerInServer_->OnReadData(&outputData, requestDataLen); } -void StopSessionFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } - capturerInServer_->StopSession(); -} - -void GetLastAudioDurationFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } - capturerInServer_->lastStopTime_ = STOP_TIME; - capturerInServer_->lastStartTime_ = 0; - capturerInServer_->GetLastAudioDuration(); -} - void RestoreSessionFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); RestoreInfo restoreInfo; + restoreInfo.restoreReason = g_fuzzUtils.GetData(); + restoreInfo.deviceChangeReason = g_fuzzUtils.GetData(); + restoreInfo.targetStreamFlag = g_fuzzUtils.GetData(); + restoreInfo.routeFlag = g_fuzzUtils.GetData(); uint32_t totalSizeInFrame = g_fuzzUtils.GetData(); uint32_t spanSizeInFrame = g_fuzzUtils.GetData(); uint32_t byteSizePerFrame = g_fuzzUtils.GetData(); capturerInServer_->audioServerBuffer_ = std::make_shared(AudioBufferHolder::AUDIO_CLIENT, totalSizeInFrame, spanSizeInFrame, byteSizePerFrame); - if (capturerInServer_->audioServerBuffer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->audioServerBuffer_ != nullptr); capturerInServer_->RestoreSession(restoreInfo); } void GetLatencyFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); + capturerInServer_->StopSession(); + + capturerInServer_->lastStopTime_ = g_fuzzUtils.GetData(); + capturerInServer_->lastStartTime_ = 0; + capturerInServer_->GetLastAudioDuration(); + capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->stream_ != nullptr); uint64_t latency = g_fuzzUtils.GetData(); capturerInServer_->GetLatency(latency); } @@ -344,17 +219,12 @@ void GetLatencyFuzzTest() void GetAudioTimeFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->stream_ != nullptr); uint64_t framePos = g_fuzzUtils.GetData(); uint64_t timestamp = g_fuzzUtils.GetData(); - uint32_t index = g_fuzzUtils.GetData() % IStatusVec.size(); - capturerInServer_->status_ = IStatusVec[index]; + capturerInServer_->status_ = g_fuzzUtils.GetData(); capturerInServer_->resetTime_ = g_fuzzUtils.GetData(); capturerInServer_->GetAudioTime(framePos, timestamp); } @@ -362,13 +232,11 @@ void GetAudioTimeFuzzTest() void UpdatePlaybackCaptureConfigFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); #ifdef HAS_FEATURE_INNERCAPTURER AudioPlaybackCaptureConfig config; - uint32_t sourceTypeCount = g_fuzzUtils.GetData() % SourceTypeVec.size(); - capturerInServer_->processConfig_.capturerInfo.sourceType = SourceTypeVec[sourceTypeCount]; + config.filterOptions.usages.push_back(g_fuzzUtils.GetData()); + capturerInServer_->processConfig_.capturerInfo.sourceType = g_fuzzUtils.GetData(); capturerInServer_->UpdatePlaybackCaptureConfig(config); #endif } @@ -376,128 +244,67 @@ void UpdatePlaybackCaptureConfigFuzzTest() void UpdatePlaybackCaptureConfigInLegacyFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_ != nullptr); #ifdef HAS_FEATURE_INNERCAPTURER AudioPlaybackCaptureConfig config; + config.filterOptions.usages.push_back(g_fuzzUtils.GetData()); capturerInServer_->UpdatePlaybackCaptureConfigInLegacy(config); #endif } -void PauseFuzzTest() +void InitCacheBufferFuzzTest() { Init(); - if (capturerInServer_ == nullptr) { - return; - } - capturerInServer_->status_ = I_STATUS_STARTED; + CHECK_AND_RETURN(capturerInServer_ != nullptr); + capturerInServer_->status_ = g_fuzzUtils.GetData(); capturerInServer_->needCheckBackground_ = g_fuzzUtils.GetData(); capturerInServer_->streamIndex_ = g_fuzzUtils.GetData(); capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->stream_ != nullptr); capturerInServer_->Pause(); -} -void FlushFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } - uint32_t index = g_fuzzUtils.GetData() % IStatusVec.size(); - capturerInServer_->status_ = IStatusVec[index]; - capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } uint32_t totalSizeInFrame = g_fuzzUtils.GetData(); uint32_t spanSizeInFrame = g_fuzzUtils.GetData(); uint32_t byteSizePerFrame = g_fuzzUtils.GetData(); - capturerInServer_->audioServerBuffer_ = std::make_shared(AudioBufferHolder::AUDIO_CLIENT, + capturerInServer_->audioServerBuffer_ = std::make_shared(g_fuzzUtils.GetData(), totalSizeInFrame, spanSizeInFrame, byteSizePerFrame); - if (capturerInServer_->audioServerBuffer_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->audioServerBuffer_ != nullptr); capturerInServer_->Flush(); -} -void StopFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } - uint32_t index = g_fuzzUtils.GetData() % IStatusVec.size(); - capturerInServer_->status_ = IStatusVec[index]; - capturerInServer_->stream_ = std::make_shared(); - if (capturerInServer_->stream_ == nullptr) { - return; - } uint32_t capturerSampleRate = g_fuzzUtils.GetData(); capturerInServer_->capturerClock_ = std::make_shared(capturerSampleRate); - if (capturerInServer_->capturerClock_ == nullptr) { - return; - } + CHECK_AND_RETURN(capturerInServer_->capturerClock_ != nullptr); capturerInServer_->needCheckBackground_ = g_fuzzUtils.GetData(); capturerInServer_->Stop(); -} -void ReleaseFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } - uint32_t index = g_fuzzUtils.GetData() % IStatusVec.size(); - capturerInServer_->status_ = IStatusVec[index]; - capturerInServer_->needCheckBackground_ = g_fuzzUtils.GetData(); - capturerInServer_->processConfig_.capturerInfo.sourceType = SOURCE_TYPE_PLAYBACK_CAPTURE; + capturerInServer_->processConfig_.capturerInfo.sourceType = g_fuzzUtils.GetData(); capturerInServer_->Release(); -} -void InitCacheBufferFuzzTest() -{ - Init(); - if (capturerInServer_ == nullptr) { - return; - } size_t targetSize = g_fuzzUtils.GetData(); size_t cacheSize = g_fuzzUtils.GetData(); capturerInServer_->ringCache_ = AudioRingCache::Create(cacheSize); - if (capturerInServer_->ringCache_ == nullptr) { - return; - } - capturerInServer_->spanSizeInBytes_ = 0; + CHECK_AND_RETURN(capturerInServer_->ringCache_ != nullptr); + capturerInServer_->spanSizeInBytes_ = g_fuzzUtils.GetData(); capturerInServer_->InitCacheBuffer(targetSize); } vector g_testFuncs = { OnStatusUpdateFuzzTest, - HandleOperationFlushedFuzzTest, DequeueBufferFuzzTest, IsReadDataOverFlowFuzzTest, UpdateBufferTimeStampFuzzTest, ReadDataFuzzTest, OnReadDataFuzzTest, - StopSessionFuzzTest, - GetLastAudioDurationFuzzTest, RestoreSessionFuzzTest, GetLatencyFuzzTest, GetAudioTimeFuzzTest, UpdatePlaybackCaptureConfigFuzzTest, UpdatePlaybackCaptureConfigInLegacyFuzzTest, - PauseFuzzTest, - FlushFuzzTest, - StopFuzzTest, - ReleaseFuzzTest, InitCacheBufferFuzzTest, }; } // namespace AudioStandard -} // namesapce OHOS +} // namespace OHOS /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) diff --git a/test/fuzztest/coreserviceproviderstub_fuzzer/core_service_provider_stub_fuzzer.cpp b/test/fuzztest/coreserviceproviderstub_fuzzer/core_service_provider_stub_fuzzer.cpp index 2ebcb291dc..3679ba306f 100644 --- a/test/fuzztest/coreserviceproviderstub_fuzzer/core_service_provider_stub_fuzzer.cpp +++ b/test/fuzztest/coreserviceproviderstub_fuzzer/core_service_provider_stub_fuzzer.cpp @@ -32,6 +32,7 @@ static const uint8_t* RAW_DATA = nullptr; static size_t g_dataSize = 0; static size_t g_pos; const size_t THRESHOLD = 10; +const static uint32_t TEST_SESSION_ID = 1; typedef void (*TestFuncs)(); @@ -64,13 +65,6 @@ uint32_t GetArrLength(T& arr) return sizeof(arr) / sizeof(arr[0]); } -void CoreServiceProviderWrapperFuzzTest() -{ - std::shared_ptr audioCoreService = AudioCoreService::GetCoreService(); - auto coreServiceWorker = new AudioCoreService::EventEntry(audioCoreService); - CoreServiceProviderWrapper coreServiceProviderWrapper(static_cast(coreServiceWorker)); -} - void UpdateSessionOperationFuzzTest() { std::shared_ptr audioCoreService = AudioCoreService::GetCoreService(); @@ -119,30 +113,22 @@ void GetProcessDeviceInfoBySessionIdFuzzTest() std::shared_ptr audioCoreService = AudioCoreService::GetCoreService(); auto coreServiceWorker = new AudioCoreService::EventEntry(audioCoreService); CoreServiceProviderWrapper coreServiceProviderWrapper(static_cast(coreServiceWorker)); - uint32_t sessionId = GetData(); + uint32_t sessionId = TEST_SESSION_ID; + coreServiceProviderWrapper.GenerateSessionId(sessionId); + + sessionId = GetData(); AudioDeviceDescriptor deviceInfo; bool reload = GetData(); AudioStreamInfo info; coreServiceProviderWrapper.GetProcessDeviceInfoBySessionId(sessionId, deviceInfo, info, reload); } -void GenerateSessionIdFuzzTest() -{ - std::shared_ptr audioCoreService = AudioCoreService::GetCoreService(); - auto coreServiceWorker = new AudioCoreService::EventEntry(audioCoreService); - CoreServiceProviderWrapper coreServiceProviderWrapper(static_cast(coreServiceWorker)); - uint32_t sessionId = GetData(); - coreServiceProviderWrapper.GenerateSessionId(sessionId); -} - TestFuncs g_testFuncs[] = { - CoreServiceProviderWrapperFuzzTest, UpdateSessionOperationFuzzTest, ReloadCaptureSessionFuzzTest, SetDefaultOutputDeviceFuzzTest, GetAdapterNameBySessionIdFuzzTest, GetProcessDeviceInfoBySessionIdFuzzTest, - GenerateSessionIdFuzzTest, }; diff --git a/test/fuzztest/dfxmsgmanager_fuzzer/dfx_msg_manager_fuzzer.cpp b/test/fuzztest/dfxmsgmanager_fuzzer/dfx_msg_manager_fuzzer.cpp index 5aa2db51a4..7b7d47872b 100644 --- a/test/fuzztest/dfxmsgmanager_fuzzer/dfx_msg_manager_fuzzer.cpp +++ b/test/fuzztest/dfxmsgmanager_fuzzer/dfx_msg_manager_fuzzer.cpp @@ -111,7 +111,7 @@ void SaveAppInfoFuzzTest() { DfxMsgManager &dfxMsgManager = DfxMsgManager::GetInstance(); DfxRunningAppInfo info; - info.appUid = 1; + info.appUid = GetData(); dfxMsgManager.SaveAppInfo(info); } @@ -122,8 +122,7 @@ void ProcessCheckFuzzTest() RenderDfxInfo renderInfo; InterruptDfxInfo interruptInfo; CapturerDfxInfo captureInfo; - msg.appUid = 1; - + msg.appUid = GetData() % COUNT; for (int i = 0; i < COUNT; i++) { msg.renderInfo.push_back(renderInfo); } @@ -145,7 +144,7 @@ void ProcessFuzzTest() void ProcessInnerFuzzTest() { DfxMsgManager &dfxMsgManager = DfxMsgManager::GetInstance(); - uint32_t index = 0; + uint32_t index = GetData() % COUNT; std::list dfxInfo; std::list curDfxInfo; RenderDfxInfo renderInfo; @@ -160,6 +159,7 @@ void EnqueueFuzzTest() { DfxMsgManager &dfxMsgManager = DfxMsgManager::GetInstance(); DfxMessage msg; + msg.appUid = GetData() % COUNT; dfxMsgManager.isFull_ = GetData() % NUM_2; dfxMsgManager.Enqueue(msg); } @@ -168,6 +168,7 @@ void HandleToHiSysEventFuzzTest() { DfxMsgManager &dfxMsgManager = DfxMsgManager::GetInstance(); DfxMessage msg; + msg.appUid = GetData() % COUNT; dfxMsgManager.reportedCnt_ = GetData(); dfxMsgManager.reportQueue_.clear(); dfxMsgManager.HandleToHiSysEvent(msg); @@ -179,7 +180,7 @@ void GetAdapterNameBySessionIdFuzzTest() DfxMessage msg; RenderDfxInfo renderInfo; std::unique_ptr bean = std::make_unique(); - msg.appUid = 1; + msg.appUid = GetData() % COUNT; dfxMsgManager.reportQueue_.clear(); for (int i = 0; i < COUNT; i++) { msg.renderInfo.push_back(renderInfo); @@ -193,7 +194,7 @@ void WriteInterruptMsgFuzzTest() DfxMessage msg; InterruptDfxInfo interruptInfo; std::unique_ptr bean = std::make_unique(); - msg.appUid = 1; + msg.appUid = GetData() % COUNT; for (int i = 0; i < COUNT; i++) { msg.interruptInfo.push_back(interruptInfo); } @@ -206,6 +207,8 @@ void WritePlayAudioStatsEventFuzzTest() std::unique_ptr result = nullptr; dfxMsgManager.WritePlayAudioStatsEvent(result); result = std::make_unique(); + CHECK_AND_RETURN(result != nullptr); + result->summary = GetData() % COUNT; dfxMsgManager.WritePlayAudioStatsEvent(result); } @@ -239,7 +242,7 @@ void IsMsgReadyFuzzTest() RenderDfxInfo renderInfo; InterruptDfxInfo interruptInfo; CapturerDfxInfo captureInfo; - msg.appUid = 1; + msg.appUid = GetData() % COUNT; for (int i = 0; i < COUNT; i++) { msg.interruptInfo.push_back(interruptInfo); } @@ -266,10 +269,8 @@ void WriteRunningAppMsgFuzzTest() DfxMessage msg; std::unique_ptr result = std::make_unique(); DfxRunningAppInfo appinfo; - msg.appUid = 1; - appinfo.appUid = 1; - appinfo.appName = "appName"; - appinfo.versionName = "1.0"; + msg.appUid = GetData() % COUNT; + appinfo.appUid = GetData() % COUNT; appinfo.appStateVec.push_back(1); appinfo.appStateTimeStampVec.push_back(1); dfxMsgManager.WriteRunningAppMsg(msg, result); diff --git a/test/fuzztest/dfxutils_fuzzer/dfx_utils_fuzzer.cpp b/test/fuzztest/dfxutils_fuzzer/dfx_utils_fuzzer.cpp index 983099fb70..e82873ef00 100644 --- a/test/fuzztest/dfxutils_fuzzer/dfx_utils_fuzzer.cpp +++ b/test/fuzztest/dfxutils_fuzzer/dfx_utils_fuzzer.cpp @@ -18,6 +18,7 @@ #include "audio_log.h" #include "dfx_utils.h" #include "../fuzz_utils.h" +#include namespace OHOS { namespace AudioStandard { @@ -25,20 +26,33 @@ using namespace std; FuzzUtils &g_fuzzUtils = FuzzUtils::GetInstance(); const size_t FUZZ_INPUT_SIZE_THRESHOLD = 10; +const int32_t COUNT = 100; +const size_t MAX_BUNDLE_NAME_LENGTH = 64; +static const uint8_t* RAW_DATA = nullptr; +static size_t g_dataSize = 0; typedef void (*TestFuncs)(); - void SerializeToJSONString1FuzzTest() { DfxUtils dfxUtils; - RendererStats data; + CapturerStats data; + FuzzedDataProvider provider(RAW_DATA, g_dataSize); + data.samplingRate = provider.ConsumeIntegralInRange(0, COUNT - 1); + data.duration = provider.ConsumeIntegralInRange(0, COUNT - 1); dfxUtils.SerializeToJSONString(data); } void SerializeToJSONString2FuzzTest() { DfxUtils dfxUtils; - CapturerStats data; + RendererStats data; + FuzzedDataProvider provider(RAW_DATA, g_dataSize); + data.samplingRate = provider.ConsumeIntegralInRange(0, COUNT - 1); + data.duration = provider.ConsumeIntegralInRange(0, COUNT - 1); + data.underrunCnt = provider.ConsumeIntegralInRange(0, COUNT - 1); + data.originalFlag = provider.ConsumeIntegralInRange(0, COUNT - 1); + data.zeroDataPercent = provider.ConsumeIntegralInRange(0, COUNT - 1); + data.frameWritten = provider.ConsumeIntegralInRange(0, COUNT - 1); dfxUtils.SerializeToJSONString(data); } @@ -47,10 +61,11 @@ void SerializeToJSONString3FuzzTest() DfxUtils dfxUtils; std::vector data; InterruptEffect gameEffect; - gameEffect.bundleName = "com.example.game"; - gameEffect.streamUsage = g_fuzzUtils.GetData(); - gameEffect.appState = g_fuzzUtils.GetData(); - gameEffect.interruptEvent = g_fuzzUtils.GetData(); + FuzzedDataProvider provider(RAW_DATA, g_dataSize); + std::string moduleName = provider.ConsumeRandomLengthString (MAX_BUNDLE_NAME_LENGTH); + gameEffect.streamUsage = provider.ConsumeIntegralInRange(0, COUNT - 1); + gameEffect.appState = provider.ConsumeIntegralInRange(0, COUNT - 1); + gameEffect.interruptEvent = provider.ConsumeIntegralInRange(0, COUNT - 1); data.push_back(gameEffect); dfxUtils.SerializeToJSONString(data); } diff --git a/test/fuzztest/formatconverter_fuzzer/format_converter_fuzzer.cpp b/test/fuzztest/formatconverter_fuzzer/format_converter_fuzzer.cpp index 76942f3fa3..d563ae8eac 100644 --- a/test/fuzztest/formatconverter_fuzzer/format_converter_fuzzer.cpp +++ b/test/fuzztest/formatconverter_fuzzer/format_converter_fuzzer.cpp @@ -63,12 +63,12 @@ void S16StereoToF32StereoFuzzTest() BufferDesc dstDesc; uint8_t srcBuffer[BUFFER_SIZE_MEDIUM] = {0}; uint8_t dstBuffer[BUFFER_SIZE_LARGE] = {0}; - srcDesc.bufLength = BUFFER_SIZE_MEDIUM; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_SMALL; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_SMALL + 1); dstDesc.buffer = dstBuffer; FormatConverter::S16StereoToF32Stereo(srcDesc, dstDesc); - dstDesc.bufLength = BUFFER_SIZE_LARGE; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); FormatConverter::S16StereoToF32Stereo(srcDesc, dstDesc); } @@ -78,12 +78,12 @@ void S16StereoToF32MonoFuzzTest() BufferDesc dstDesc; uint8_t srcBuffer[BUFFER_SIZE_MEDIUM] = {0}; uint8_t dstBuffer[BUFFER_SIZE_MEDIUM] = {0}; - srcDesc.bufLength = BUFFER_SIZE_MEDIUM; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_SMALL; dstDesc.buffer = dstBuffer; FormatConverter::S16StereoToF32Mono(srcDesc, dstDesc); - dstDesc.bufLength = BUFFER_SIZE_MEDIUM; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); FormatConverter::S16StereoToF32Mono(srcDesc, dstDesc); } @@ -93,12 +93,12 @@ void F32MonoToS16StereoFuzzTest() BufferDesc dstDesc; uint8_t srcBuffer[BUFFER_SIZE_MEDIUM] = {0}; uint8_t dstBuffer[BUFFER_SIZE_MEDIUM] = {0}; - srcDesc.bufLength = BUFFER_SIZE_MEDIUM; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_SMALL; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); dstDesc.buffer = dstBuffer; FormatConverter::F32MonoToS16Stereo(srcDesc, dstDesc); - dstDesc.bufLength = BUFFER_SIZE_MEDIUM; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); FormatConverter::F32MonoToS16Stereo(srcDesc, dstDesc); } @@ -108,12 +108,12 @@ void F32StereoToS16StereoFuzzTest() BufferDesc dstDesc; uint8_t srcBuffer[BUFFER_SIZE_LARGE] = {0}; uint8_t dstBuffer[BUFFER_SIZE_MEDIUM] = {0}; - srcDesc.bufLength = BUFFER_SIZE_LARGE; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_SMALL; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_SMALL + 1); dstDesc.buffer = dstBuffer; FormatConverter::F32StereoToS16Stereo(srcDesc, dstDesc); - dstDesc.bufLength = BUFFER_SIZE_MEDIUM; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); FormatConverter::F32StereoToS16Stereo(srcDesc, dstDesc); } @@ -123,9 +123,9 @@ void S16MonoToS16StereoFuzzTest() BufferDesc dstDesc; uint8_t srcBuffer[BUFFER_SIZE_LARGE] = {0}; uint8_t dstBuffer[BUFFER_SIZE_MEDIUM] = {0}; - srcDesc.bufLength = BUFFER_SIZE_SMALL; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_SMALL + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_LARGE; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); dstDesc.buffer = dstBuffer; FormatConverter::S16MonoToS16Stereo(srcDesc, dstDesc); srcDesc.buffer = nullptr; @@ -156,9 +156,9 @@ void FormatConverterS32MonoToS16StereoFuzzTest() uint8_t srcBuffer[BUFFER_SIZE_LARGE] = {0}; uint8_t dstBuffer[BUFFER_SIZE_LARGE] = {0}; - srcDesc.bufLength = BUFFER_SIZE_LARGE; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_LARGE; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); dstDesc.buffer = dstBuffer; FormatConverter::S32MonoToS16Stereo(srcDesc, dstDesc); } @@ -170,9 +170,9 @@ void FormatConverterS32StereoToS16StereoFuzzTest() uint8_t srcBuffer[BUFFER_SIZE_LARGE] = {0}; uint8_t dstBuffer[BUFFER_SIZE_MEDIUM] = {0}; - srcDesc.bufLength = BUFFER_SIZE_LARGE; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_MEDIUM; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); dstDesc.buffer = dstBuffer; FormatConverter::S32StereoToS16Stereo(srcDesc, dstDesc); } @@ -184,9 +184,9 @@ void FormatConverterS16StereoToS32StereoFuzzTest() uint8_t srcBuffer[BUFFER_SIZE_MEDIUM] = {0}; uint8_t dstBuffer[BUFFER_SIZE_LARGE] = {0}; - srcDesc.bufLength = BUFFER_SIZE_MEDIUM; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_LARGE; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); dstDesc.buffer = dstBuffer; FormatConverter::S16StereoToS32Stereo(srcDesc, dstDesc); } @@ -198,9 +198,9 @@ void FormatConverterS16MonoToS32StereoFuzzTest() uint8_t srcBuffer[BUFFER_SIZE_SMALL] = {0}; uint8_t dstBuffer[BUFFER_SIZE_LARGE] = {0}; - srcDesc.bufLength = BUFFER_SIZE_SMALL; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_SMALL + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_LARGE; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); dstDesc.buffer = dstBuffer; FormatConverter::S16MonoToS32Stereo(srcDesc, dstDesc); } @@ -212,9 +212,9 @@ void FormatConverterS32MonoToS32StereoFuzzTest() uint8_t srcBuffer[BUFFER_SIZE_MEDIUM] = {0}; uint8_t dstBuffer[BUFFER_SIZE_LARGE] = {0}; - srcDesc.bufLength = BUFFER_SIZE_MEDIUM; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_LARGE; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_LARGE + 1); dstDesc.buffer = dstBuffer; FormatConverter::S32MonoToS32Stereo(srcDesc, dstDesc); FormatConverter::F32MonoToS32Stereo(srcDesc, dstDesc); @@ -227,9 +227,9 @@ void FormatConverterF32StereoToS32StereoFuzzTest() uint8_t srcBuffer[BUFFER_SIZE_MEDIUM] = {0}; uint8_t dstBuffer[BUFFER_SIZE_MEDIUM] = {0}; - srcDesc.bufLength = BUFFER_SIZE_MEDIUM; + srcDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); srcDesc.buffer = srcBuffer; - dstDesc.bufLength = BUFFER_SIZE_MEDIUM; + dstDesc.bufLength = g_fuzzUtils.GetData() % (BUFFER_SIZE_MEDIUM + 1); dstDesc.buffer = dstBuffer; FormatConverter::F32StereoToS32Stereo(srcDesc, dstDesc); } -- Gitee