diff --git a/services/distributeddataservice/framework/screen/screen_manager.cpp b/services/distributeddataservice/framework/screen/screen_manager.cpp index 6b939376e54a8a5acb6047c262967a3908412025..c2f7d5d3ad7d5a6ade28f23a6c0a8220d3ff4551 100644 --- a/services/distributeddataservice/framework/screen/screen_manager.cpp +++ b/services/distributeddataservice/framework/screen/screen_manager.cpp @@ -39,6 +39,7 @@ bool ScreenManager::RegisterInstance(std::shared_ptr instance) return true; } +// LCOV_EXCL_START void ScreenManager::Subscribe(std::shared_ptr observer) { return; @@ -63,7 +64,7 @@ void ScreenManager::UnsubscribeScreenEvent() { return; } - +// LCOV_EXCL_STOP bool ScreenManager::IsLocked() { return false; diff --git a/services/distributeddataservice/framework/test/fuzztest/BUILD.gn b/services/distributeddataservice/framework/test/fuzztest/BUILD.gn index b35cb67af178f4630b3f50d1f4cbd1170d81ff2c..e54fc7ba32202fb2ee7af39ea54a443214ea938e 100644 --- a/services/distributeddataservice/framework/test/fuzztest/BUILD.gn +++ b/services/distributeddataservice/framework/test/fuzztest/BUILD.gn @@ -18,8 +18,5 @@ import("//foundation/distributeddatamgr/datamgr_service/datamgr_service.gni") group("fuzztest") { testonly = true - deps = [ - "storedebuginfo_fuzzer:fuzztest", - "screenmanager_fuzzer:fuzztest", - ] + deps = [ "storedebuginfo_fuzzer:fuzztest" ] } \ No newline at end of file diff --git a/services/distributeddataservice/service/object/src/object_service_impl.cpp b/services/distributeddataservice/service/object/src/object_service_impl.cpp index ff6d5ee3af5e31e993f6ab2e0808f161c010aaba..12346d8923df6270280a79737511edde2d39225d 100644 --- a/services/distributeddataservice/service/object/src/object_service_impl.cpp +++ b/services/distributeddataservice/service/object/src/object_service_impl.cpp @@ -416,20 +416,24 @@ ObjectServiceImpl::ObjectServiceImpl() void ObjectServiceImpl::RegisterObjectServiceInfo() { + // LCOV_EXCL_START DumpManager::Config serviceInfoConfig; serviceInfoConfig.fullCmd = "--feature-info"; serviceInfoConfig.abbrCmd = "-f"; serviceInfoConfig.dumpName = "FEATURE_INFO"; serviceInfoConfig.dumpCaption = { "| Display all the service statistics" }; DumpManager::GetInstance().AddConfig("FEATURE_INFO", serviceInfoConfig); + // LCOV_EXCL_STOP } void ObjectServiceImpl::RegisterHandler() { + // LCOV_EXCL_START Handler handler = [this](int fd, std::map> ¶ms) { DumpObjectServiceInfo(fd, params); }; DumpManager::GetInstance().AddHandler("FEATURE_INFO", uintptr_t(this), handler); + // LCOV_EXCL_STOP } void ObjectServiceImpl::DumpObjectServiceInfo(int fd, std::map> ¶ms) diff --git a/services/distributeddataservice/service/test/fuzztest/BUILD.gn b/services/distributeddataservice/service/test/fuzztest/BUILD.gn index 107fde072f00517c48d248546298c1d07c45abc9..6dd680bddd17f5ab4b50dcc87f545b0acdfbb1f1 100644 --- a/services/distributeddataservice/service/test/fuzztest/BUILD.gn +++ b/services/distributeddataservice/service/test/fuzztest/BUILD.gn @@ -30,7 +30,9 @@ group("fuzztest") { if (datamgr_service_object) { deps += [ "objectservicestub_fuzzer:fuzztest", - "objectserviceimp_fuzzer:fuzztest", + "objectserviceimp1_fuzzer:fuzztest", + "objectserviceimp2_fuzzer:fuzztest", + "objectserviceimp3_fuzzer:fuzztest", "objectservicelistener_fuzzer:fuzztest", ] } diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/BUILD.gn b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/BUILD.gn similarity index 94% rename from services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/BUILD.gn rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/BUILD.gn index 039f0bf8e697b736d46a178f9b682e1b763e54d1..8d654ce30dbfb53d27aa58e48d760a2358a10283 100644 --- a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/BUILD.gn +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/BUILD.gn @@ -16,7 +16,7 @@ import("//build/test.gni") import("//foundation/distributeddatamgr/datamgr_service/datamgr_service.gni") ##############################fuzztest########################################## -ohos_fuzztest("ObjectServiceImpFuzzTest") { +ohos_fuzztest("ObjectServiceImp1FuzzTest") { module_out_path = "datamgr_service/datamgr_service" include_dirs = [ @@ -24,7 +24,7 @@ ohos_fuzztest("ObjectServiceImpFuzzTest") { ] fuzz_config_file = - "${data_service_path}/service/test/fuzztest/objectserviceimp_fuzzer" + "${data_service_path}/service/test/fuzztest/objectserviceimp1_fuzzer" cflags = [ "-g", @@ -35,7 +35,7 @@ ohos_fuzztest("ObjectServiceImpFuzzTest") { ] sources = [ - "objectserviceimp_fuzzer.cpp", + "objectserviceimp1_fuzzer.cpp", ] deps = [ @@ -69,6 +69,6 @@ ohos_fuzztest("ObjectServiceImpFuzzTest") { group("fuzztest") { testonly = true - deps = [ ":ObjectServiceImpFuzzTest" ] + deps = [ ":ObjectServiceImp1FuzzTest" ] } ############################################################################### diff --git a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/corpus/init b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/corpus/init similarity index 100% rename from services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/corpus/init rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/corpus/init diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/objectserviceimp1_fuzzer.cpp b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/objectserviceimp1_fuzzer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..000754166c4d6ae8c81cfa5c1fa9db97a8e19f33 --- /dev/null +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/objectserviceimp1_fuzzer.cpp @@ -0,0 +1,76 @@ +/* + * 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 "objectserviceimp1_fuzzer.h" +#include "object_service_impl.h" +#include "account/account_delegate.h" + +using namespace OHOS::DistributedObject; + +namespace OHOS { + +void ObjectStoreSaveFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + sptr callback; + std::string bundleName = provider.ConsumeRandomLengthString(100); + std::string sessionId = provider.ConsumeRandomLengthString(100); + std::string deviceId = provider.ConsumeRandomLengthString(100); + std::map> data; + std::vector remainingData = provider.ConsumeRemainingBytes(); + data["key1"] = remainingData; + objectServiceImpl->ObjectStoreSave(bundleName, sessionId, deviceId, data, callback); +} + +void OnUserChangeFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + uint32_t code = static_cast(AccountStatus::DEVICE_ACCOUNT_SWITCHED); + std::string user = provider.ConsumeRandomLengthString(100); + std::string account = provider.ConsumeRandomLengthString(100); + objectServiceImpl->OnUserChange(code, user, account); +} + +void ObjectStoreRevokeSaveFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + sptr callback; + std::string bundleName = provider.ConsumeRandomLengthString(100); + std::string sessionId = provider.ConsumeRandomLengthString(100); + objectServiceImpl->ObjectStoreRevokeSave(bundleName, sessionId, callback); +} + +void ObjectStoreRetrieveFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + sptr callback; + std::string bundleName = provider.ConsumeRandomLengthString(100); + std::string sessionId = provider.ConsumeRandomLengthString(100); + objectServiceImpl->ObjectStoreRetrieve(bundleName, sessionId, callback); +} +} // namespace OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + FuzzedDataProvider provider(data, size); + OHOS::ObjectStoreSaveFuzzTest(provider); + OHOS::OnUserChangeFuzzTest(provider); + OHOS::ObjectStoreRevokeSaveFuzzTest(provider); + OHOS::ObjectStoreRetrieveFuzzTest(provider); + return 0; +} \ No newline at end of file diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/objectserviceimp_fuzzer.h b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/objectserviceimp1_fuzzer.h similarity index 78% rename from services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/objectserviceimp_fuzzer.h rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/objectserviceimp1_fuzzer.h index 8aa6bb0e28c86ea002b8918d3a5c0d7c35a67a0e..9969aa5a538be8b77b9a829015555fb47f54f7d9 100644 --- a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/objectserviceimp_fuzzer.h +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/objectserviceimp1_fuzzer.h @@ -13,9 +13,9 @@ * limitations under the License. */ -#ifndef OBJECT_SERVICE_IMP_FUZZER_H -#define OBJECT_SERVICE_IMP_FUZZER_H +#ifndef OBJECT_SERVICE_IMP1_FUZZER_H +#define OBJECT_SERVICE_IMP1_FUZZER_H -#define FUZZ_PROJECT_NAME "objectserviceimp_fuzzer" +#define FUZZ_PROJECT_NAME "objectserviceimp1_fuzzer" -#endif // OBJECT_SERVICE_IMP_FUZZER_H \ No newline at end of file +#endif // OBJECT_SERVICE_IMP1_FUZZER_H \ No newline at end of file diff --git a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/project.xml b/services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/project.xml similarity index 100% rename from services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/project.xml rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp1_fuzzer/project.xml diff --git a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/BUILD.gn b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/BUILD.gn similarity index 56% rename from services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/BUILD.gn rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/BUILD.gn index f063faa15c3e8a5a0e1e28ad2119271ce4a6930b..57ebaece81c81df0660dd472bfe8eafd4f0bdc58 100644 --- a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/BUILD.gn +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/BUILD.gn @@ -16,33 +16,52 @@ import("//build/test.gni") import("//foundation/distributeddatamgr/datamgr_service/datamgr_service.gni") ##############################fuzztest########################################## -ohos_fuzztest("ScreenManagerFuzzTest") { +ohos_fuzztest("ObjectServiceImp2FuzzTest") { module_out_path = "datamgr_service/datamgr_service" include_dirs = [ - "${data_service_path}/framework/include", + "${data_service_path}/service/object/include", ] fuzz_config_file = - "${data_service_path}/framework/test/fuzztest/screenmanager_fuzzer" - - sources = [ "screenmanager_fuzzer.cpp" ] + "${data_service_path}/service/test/fuzztest/objectserviceimp2_fuzzer" cflags = [ "-g", "-O0", "-Wno-unused-variable", "-fno-omit-frame-pointer", + "-fno-access-control", + ] + + sources = [ + "objectserviceimp2_fuzzer.cpp", ] deps = [ + "${data_service_path}/adapter/account:distributeddata_account", + "${data_service_path}/adapter/communicator:distributeddata_communicator", "${data_service_path}/framework:distributeddatasvcfwk", + "${data_service_path}/service:distributeddatasvc", + "${data_service_path}/service/object:distributeddata_object", ] external_deps = [ - "c_utils:utils", + "ability_base:want", + "ability_base:zuri", + "ability_runtime:ability_manager", + "ability_runtime:dataobs_manager", + "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", + "data_object:data_object_inner", + "data_object:distributeddataobject_impl", + "device_manager:devicemanagersdk", + "dfs_service:distributed_file_daemon_kit_inner", + "dmsfwk:distributed_sdk", "hilog:libhilog", - "kv_store:datamgr_common", + "kv_store:distributeddata_inner", + "kv_store:distributeddata_mgr", + "kv_store:distributeddb", ] } @@ -50,6 +69,6 @@ ohos_fuzztest("ScreenManagerFuzzTest") { group("fuzztest") { testonly = true - deps = [ ":ScreenManagerFuzzTest" ] + deps = [ ":ObjectServiceImp2FuzzTest" ] } -############################################################################### \ No newline at end of file +############################################################################### diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/corpus/init b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/corpus/init similarity index 100% rename from services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/corpus/init rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/corpus/init diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/objectserviceimp2_fuzzer.cpp b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/objectserviceimp2_fuzzer.cpp new file mode 100644 index 0000000000000000000000000000000000000000..19775458e02b536a18cc5726461d9c35eff67cdc --- /dev/null +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/objectserviceimp2_fuzzer.cpp @@ -0,0 +1,72 @@ +/* + * 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 "objectserviceimp2_fuzzer.h" +#include "object_service_impl.h" +#include "account/account_delegate.h" + +using namespace OHOS::DistributedObject; + +namespace OHOS { + +void RegisterDataObserverFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + sptr callback; + std::string bundleName = provider.ConsumeRandomLengthString(100); + std::string sessionId = provider.ConsumeRandomLengthString(100); + objectServiceImpl->RegisterDataObserver(bundleName, sessionId, callback); +} + +void OnAppUninstallFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + std::string bundleName = provider.ConsumeRandomLengthString(100); + int32_t user = provider.ConsumeIntegral(); + int32_t index = provider.ConsumeIntegral(); + objectServiceImpl->factory_.staticActs_->OnAppUninstall(bundleName, user, index); +} + +void ResolveAutoLaunchFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + std::string identifier = provider.ConsumeRandomLengthString(100); + DistributedDB::AutoLaunchParam param; + objectServiceImpl->ResolveAutoLaunch(identifier, param); +} + +void OnAppExitFuzzTest(FuzzedDataProvider &provider) +{ + std::shared_ptr objectServiceImpl = std::make_shared(); + pid_t uid = provider.ConsumeIntegral(); + pid_t pid = provider.ConsumeIntegral(); + uint32_t tokenId = provider.ConsumeIntegral(); + std::string bundleName = provider.ConsumeRandomLengthString(100); + objectServiceImpl->OnAppExit(uid, pid, tokenId, bundleName); +} +} // namespace OHOS + +/* Fuzzer entry point */ +extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) +{ + FuzzedDataProvider provider(data, size); + OHOS::RegisterDataObserverFuzzTest(provider); + OHOS::OnAppUninstallFuzzTest(provider); + OHOS::ResolveAutoLaunchFuzzTest(provider); + OHOS::OnAppExitFuzzTest(provider); + return 0; +} \ No newline at end of file diff --git a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/screenmanager_fuzzer.cpp b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/objectserviceimp2_fuzzer.h similarity index 45% rename from services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/screenmanager_fuzzer.cpp rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/objectserviceimp2_fuzzer.h index d944f95c32460f65b1dbaa5db93703e895cf2f26..0e38d64c098b9a92d522b28ab2f41a532d92f194 100644 --- a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/screenmanager_fuzzer.cpp +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/objectserviceimp2_fuzzer.h @@ -13,28 +13,9 @@ * limitations under the License. */ -#include -#include "screenmanager_fuzzer.h" -#include "screen/screen_manager.h" +#ifndef OBJECT_SERVICE_IMP2_FUZZER_H +#define OBJECT_SERVICE_IMP2_FUZZER_H -using namespace OHOS::DistributedData; +#define FUZZ_PROJECT_NAME "objectserviceimp2_fuzzer" -namespace OHOS { -void TestScreenManager(FuzzedDataProvider &provider) -{ - ScreenManager::GetInstance()->Subscribe(nullptr); - ScreenManager::GetInstance()->Unsubscribe(nullptr); - ScreenManager::GetInstance()->BindExecutor(nullptr); - ScreenManager::GetInstance()->SubscribeScreenEvent(); - ScreenManager::GetInstance()->UnsubscribeScreenEvent(); -} - -} // namespace OHOS - -/* Fuzzer entry point */ -extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) -{ - FuzzedDataProvider provider(data, size); - OHOS::TestScreenManager(provider); - return 0; -} \ No newline at end of file +#endif // OBJECT_SERVICE_IMP2_FUZZER_H \ No newline at end of file diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/project.xml b/services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/project.xml similarity index 100% rename from services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/project.xml rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp2_fuzzer/project.xml diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/BUILD.gn b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/BUILD.gn new file mode 100644 index 0000000000000000000000000000000000000000..46a6be379d214b4d608b9a3dea5c2f72be7c5ae5 --- /dev/null +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/BUILD.gn @@ -0,0 +1,74 @@ +# 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. +##############################hydra-fuzz######################################## +import("//build/config/features.gni") +import("//build/test.gni") +import("//foundation/distributeddatamgr/datamgr_service/datamgr_service.gni") + +##############################fuzztest########################################## +ohos_fuzztest("ObjectServiceImp3FuzzTest") { + module_out_path = "datamgr_service/datamgr_service" + + include_dirs = [ + "${data_service_path}/service/object/include", + ] + + fuzz_config_file = + "${data_service_path}/service/test/fuzztest/objectserviceimp3_fuzzer" + + cflags = [ + "-g", + "-O0", + "-Wno-unused-variable", + "-fno-omit-frame-pointer", + "-fno-access-control", + ] + + sources = [ + "objectserviceimp3_fuzzer.cpp", + ] + + deps = [ + "${data_service_path}/adapter/account:distributeddata_account", + "${data_service_path}/adapter/communicator:distributeddata_communicator", + "${data_service_path}/framework:distributeddatasvcfwk", + "${data_service_path}/service:distributeddatasvc", + "${data_service_path}/service/object:distributeddata_object", + ] + + external_deps = [ + "ability_base:want", + "ability_base:zuri", + "ability_runtime:ability_manager", + "ability_runtime:dataobs_manager", + "access_token:libaccesstoken_sdk", + "access_token:libtokenid_sdk", + "data_object:data_object_inner", + "data_object:distributeddataobject_impl", + "device_manager:devicemanagersdk", + "dfs_service:distributed_file_daemon_kit_inner", + "dmsfwk:distributed_sdk", + "hilog:libhilog", + "kv_store:distributeddata_inner", + "kv_store:distributeddata_mgr", + "kv_store:distributeddb", + ] +} + +############################################################################### +group("fuzztest") { + testonly = true + + deps = [ ":ObjectServiceImp3FuzzTest" ] +} +############################################################################### diff --git a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/screenmanager_fuzzer.h b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/corpus/init similarity index 80% rename from services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/screenmanager_fuzzer.h rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/corpus/init index ab2fe6fe3efc801f5bc6b74e8a7861e05babcbfb..7ade8a0faafeaedba7241e7d4a97b8e1f9691932 100644 --- a/services/distributeddataservice/framework/test/fuzztest/screenmanager_fuzzer/screenmanager_fuzzer.h +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/corpus/init @@ -13,9 +13,4 @@ * limitations under the License. */ -#ifndef SCREENMANAGER_FUZZER_H -#define SCREENMANAGER_FUZZER_H - -#define FUZZ_PROJECT_NAME "screenmanager_fuzzer" - -#endif // SCREENMANAGER_FUZZER_H +FUZZ \ No newline at end of file diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/objectserviceimp_fuzzer.cpp b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/objectserviceimp3_fuzzer.cpp similarity index 44% rename from services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/objectserviceimp_fuzzer.cpp rename to services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/objectserviceimp3_fuzzer.cpp index de7adc4e9bf1bd6d6327991e3af180e96e7e32f3..fceecb58d8bc781aeebc88df22987fbbc0e2366a 100644 --- a/services/distributeddataservice/service/test/fuzztest/objectserviceimp_fuzzer/objectserviceimp_fuzzer.cpp +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/objectserviceimp3_fuzzer.cpp @@ -15,95 +15,14 @@ #include -#include "objectserviceimp_fuzzer.h" +#include "objectserviceimp3_fuzzer.h" #include "object_service_impl.h" #include "account/account_delegate.h" using namespace OHOS::DistributedObject; namespace OHOS { - -void ObjectStoreSaveFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - sptr callback; - std::string bundleName = provider.ConsumeRandomLengthString(100); - std::string sessionId = provider.ConsumeRandomLengthString(100); - std::string deviceId = provider.ConsumeRandomLengthString(100); - std::map> data; - std::vector remainingData = provider.ConsumeRemainingBytes(); - data["key1"] = remainingData; - objectServiceImpl->ObjectStoreSave(bundleName, sessionId, deviceId, data, callback); -} - -void OnUserChangeFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - uint32_t code = static_cast(AccountStatus::DEVICE_ACCOUNT_SWITCHED); - std::string user = provider.ConsumeRandomLengthString(100); - std::string account = provider.ConsumeRandomLengthString(100); - objectServiceImpl->OnUserChange(code, user, account); -} - -void ObjectStoreRevokeSaveFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - sptr callback; - std::string bundleName = provider.ConsumeRandomLengthString(100); - std::string sessionId = provider.ConsumeRandomLengthString(100); - objectServiceImpl->ObjectStoreRevokeSave(bundleName, sessionId, callback); -} - -void ObjectStoreRetrieveFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - sptr callback; - std::string bundleName = provider.ConsumeRandomLengthString(100); - std::string sessionId = provider.ConsumeRandomLengthString(100); - objectServiceImpl->ObjectStoreRetrieve(bundleName, sessionId, callback); -} - -void RegisterDataObserverFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - sptr callback; - std::string bundleName = provider.ConsumeRandomLengthString(100); - std::string sessionId = provider.ConsumeRandomLengthString(100); - objectServiceImpl->RegisterDataObserver(bundleName, sessionId, callback); -} - -void OnAppUninstallFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - if (objectServiceImpl->factory_.staticActs_ == nullptr) { - return; - } - std::string bundleName = provider.ConsumeRandomLengthString(100); - int32_t user = provider.ConsumeIntegral(); - int32_t index = provider.ConsumeIntegral(); - objectServiceImpl->factory_.staticActs_->OnAppUninstall(bundleName, user, index); -} - -void ResolveAutoLaunchFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - std::string identifier = provider.ConsumeRandomLengthString(100); - DistributedDB::AutoLaunchParam param; - objectServiceImpl->ResolveAutoLaunch(identifier, param); -} - -void OnAppExitFuzzTest(FuzzedDataProvider &provider) -{ - std::shared_ptr objectServiceImpl = std::make_shared(); - pid_t uid = provider.ConsumeIntegral(); - pid_t pid = provider.ConsumeIntegral(); - uint32_t tokenId = provider.ConsumeIntegral(); - std::string bundleName = provider.ConsumeRandomLengthString(100); - objectServiceImpl->OnAppExit(uid, pid, tokenId, bundleName); - objectServiceImpl->RegisterObjectServiceInfo(); - objectServiceImpl->RegisterHandler(); -} - + void DumpObjectServiceInfoFuzzTest(FuzzedDataProvider &provider) { std::shared_ptr objectServiceImpl = std::make_shared(); @@ -156,14 +75,6 @@ void BindAssetStoreFuzzTest(FuzzedDataProvider &provider) extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { FuzzedDataProvider provider(data, size); - OHOS::ObjectStoreSaveFuzzTest(provider); - OHOS::OnUserChangeFuzzTest(provider); - OHOS::ObjectStoreRevokeSaveFuzzTest(provider); - OHOS::ObjectStoreRetrieveFuzzTest(provider); - OHOS::RegisterDataObserverFuzzTest(provider); - OHOS::OnAppUninstallFuzzTest(provider); - OHOS::ResolveAutoLaunchFuzzTest(provider); - OHOS::OnAppExitFuzzTest(provider); OHOS::DumpObjectServiceInfoFuzzTest(provider); OHOS::SaveMetaDataFuzzTest(provider); OHOS::BindAssetStoreFuzzTest(provider); diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/objectserviceimp3_fuzzer.h b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/objectserviceimp3_fuzzer.h new file mode 100644 index 0000000000000000000000000000000000000000..a68ec2fe13519f5af00c54685af494cb478a4124 --- /dev/null +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/objectserviceimp3_fuzzer.h @@ -0,0 +1,21 @@ +/* + * 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. + */ + +#ifndef OBJECT_SERVICE_IMP3_FUZZER_H +#define OBJECT_SERVICE_IMP3_FUZZER_H + +#define FUZZ_PROJECT_NAME "objectserviceimp3_fuzzer" + +#endif // OBJECT_SERVICE_IMP3_FUZZER_H \ No newline at end of file diff --git a/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/project.xml b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/project.xml new file mode 100644 index 0000000000000000000000000000000000000000..a37a23b1533f07ab59744732b0f46b2b5fd958d8 --- /dev/null +++ b/services/distributeddataservice/service/test/fuzztest/objectserviceimp3_fuzzer/project.xml @@ -0,0 +1,25 @@ + + + + + + 1000 + + 300 + + 4096 + + \ No newline at end of file