From f4bc31fb4f98a07a0a1e15404e74466a824c0c3d Mon Sep 17 00:00:00 2001 From: "yang.yang" Date: Sat, 13 Sep 2025 10:56:01 +0800 Subject: [PATCH] opt fuzz code Signed-off-by: yang.yang Change-Id: Icf8cd6cae9f5c21b1479eb2c6c414e13808ca9d2 --- ...abilitymgruiextensionsessioninfo_fuzzer.cpp | 18 +++++++++--------- .../preloaduiextstateobserver_fuzzer.cpp | 7 ++++++- .../uiextensionrecordfactory_fuzzer.cpp | 12 ++++++++++++ 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/test/fuzztest/abilitymgruiextensionsessioninfo_fuzzer/abilitymgruiextensionsessioninfo_fuzzer.cpp b/test/fuzztest/abilitymgruiextensionsessioninfo_fuzzer/abilitymgruiextensionsessioninfo_fuzzer.cpp index da00ac35074..2c19e67dcfa 100644 --- a/test/fuzztest/abilitymgruiextensionsessioninfo_fuzzer/abilitymgruiextensionsessioninfo_fuzzer.cpp +++ b/test/fuzztest/abilitymgruiextensionsessioninfo_fuzzer/abilitymgruiextensionsessioninfo_fuzzer.cpp @@ -34,17 +34,17 @@ bool DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) std::shared_ptr uiExtensionSessionInfo = std::make_shared(); Parcel parcel; FuzzedDataProvider fdp(data, size); + ElementName element, hostElement; + // persistentId(int32), hostWindowId(uint32), uiExtensionUsageType(uint32) + // element, extensionAbilityType(int32), hostElement parcel.WriteInt32(fdp.ConsumeIntegral()); - parcel.WriteInt32(uiExtensionSessionInfo->persistentId); - uiExtensionSessionInfo->Marshalling(parcel); parcel.WriteUint32(fdp.ConsumeIntegral()); - parcel.WriteUint32(uiExtensionSessionInfo->hostWindowId); - uiExtensionSessionInfo->Marshalling(parcel); - parcel.WriteUint32(static_cast(uiExtensionSessionInfo->uiExtensionUsage)); - uiExtensionSessionInfo->Marshalling(parcel); - parcel.WriteInt32(static_cast(uiExtensionSessionInfo->extensionAbilityType)); - uiExtensionSessionInfo->Marshalling(parcel); - uiExtensionSessionInfo->Unmarshalling(parcel); + parcel.WriteUint32(fdp.ConsumeIntegral()); + parcel.WriteParcelable(&element); + parcel.WriteInt32(fdp.ConsumeIntegral()); + parcel.WriteParcelable(&hostElement); + uiExtensionSessionInfo.reset(uiExtensionSessionInfo->Unmarshalling(parcel)); + uiExtensionSessionInfo.Marshalling(parcel); return true; } } diff --git a/test/fuzztest/preloaduiextstateobserver_fuzzer/preloaduiextstateobserver_fuzzer.cpp b/test/fuzztest/preloaduiextstateobserver_fuzzer/preloaduiextstateobserver_fuzzer.cpp index 91ed64355c8..b97ae076deb 100644 --- a/test/fuzztest/preloaduiextstateobserver_fuzzer/preloaduiextstateobserver_fuzzer.cpp +++ b/test/fuzztest/preloaduiextstateobserver_fuzzer/preloaduiextstateobserver_fuzzer.cpp @@ -31,7 +31,12 @@ constexpr size_t STRING_MAX_LENGTH = 128; bool DoSomethingInterestingWithMyAPI(const uint8_t *data, size_t size) { FuzzedDataProvider fdp(data, size); - std::shared_ptr extRecord; + AbilityRequest abilityRequest; + abilityRequest.appInfo.bundleName = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH);; + abilityRequest.appInfo.name = fdp.ConsumeRandomLengthString(STRING_MAX_LENGTH); + abilityRequest.appInfo.type = AppExecFwk::AbilityType::EXTENSION; + auto abilityRecord = AbilityRecord::CreateAbilityRecord(abilityRequest); + std::shared_ptr extRecord = std::make_shared(abilityRecord); std::weak_ptr weakExtRecord = extRecord; std::shared_ptr preLoad = std::make_shared(weakExtRecord); diff --git a/test/fuzztest/uiextensionrecordfactory_fuzzer/uiextensionrecordfactory_fuzzer.cpp b/test/fuzztest/uiextensionrecordfactory_fuzzer/uiextensionrecordfactory_fuzzer.cpp index 1bd5d3df2c1..10817d8bbd3 100644 --- a/test/fuzztest/uiextensionrecordfactory_fuzzer/uiextensionrecordfactory_fuzzer.cpp +++ b/test/fuzztest/uiextensionrecordfactory_fuzzer/uiextensionrecordfactory_fuzzer.cpp @@ -23,6 +23,8 @@ #undef protected #undef private #include "ability_record.h" +#include "session_info.h" +#include "multi_instance_utils.h" using namespace OHOS::AAFwk; using namespace OHOS::AppExecFwk; @@ -38,6 +40,7 @@ constexpr size_t OFFSET_ZERO = 24; constexpr size_t OFFSET_ONE = 16; constexpr size_t OFFSET_TWO = 8; constexpr uint8_t ENABLE = 2; +const std::string UIEXTENSION_ABILITY_ID = "ability.want.params.uiExtensionAbilityId"; } // namespace uint32_t GetU32Data(const char* ptr) @@ -60,6 +63,15 @@ bool DoSomethingInterestingWithMyAPI(const char *data, size_t size) std::shared_ptr abilityRecord; factory->CreateDebugRecord(abilityRequest, abilityRecord); + abilityRequest.appInfo.bundleName = "com.example.unittest"; + appInfo.multiAppMode.multiAppModeType = AppExecFwk::MultiAppModeType::MULTI_INSTANCE; + abilityRequest.abilityInfo.name = "MainAbility"; + abilityRequest.abilityInfo.type = AppExecFwk::AbilityType::EMBEDDED_UI; + sptr sessionInfo(new SessionInfo()); + abilityRequest.sessionInfo = sessionInfo; + abilityRequest.sessionInfo->want.SetParam(UIEXTENSION_ABILITY_ID, 0); + factory->NeedReuse(abilityRequest, int32Param); + factory->CreateRecord(abilityRequest, extensionRecord); return true; } } // namespace OHOS -- Gitee