diff --git a/test/fuzztest/abilitymgruiextensionsessioninfo_fuzzer/abilitymgruiextensionsessioninfo_fuzzer.cpp b/test/fuzztest/abilitymgruiextensionsessioninfo_fuzzer/abilitymgruiextensionsessioninfo_fuzzer.cpp index da00ac350744da77ea1ef9a418ac33f7a95e9086..2c19e67dcfa7d59755e34e7dcb591a0bfc6ad273 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 91ed64355c8865f07ad5076623e44d7538c22ad2..b97ae076deb42383e279ed1f9fdfcb41efb0f42b 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 1bd5d3df2c119048f0d2d69003a1cfed09d5997a..10817d8bbd3051419579edfc432d962ad109b1cb 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