From cc1e6cb458cc4218fcb3e65be2b664e40fe47a61 Mon Sep 17 00:00:00 2001 From: l30059571 Date: Mon, 30 Dec 2024 08:55:16 +0800 Subject: [PATCH] =?UTF-8?q?FUZZ=E7=94=A8=E4=BE=8B=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E7=8E=87=E6=8F=90=E5=8D=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: l30059571 --- .../bundleactiveobserver_fuzzer/BUILD.gn | 2 + .../bundleactiveobserver_fuzzer.cpp | 37 +++++++++++++++++++ .../deviceUsage/deviceUsageConfig.xml | 25 +++++++++++++ .../device_usage_statistics_config.json | 7 ++++ 4 files changed, 71 insertions(+) create mode 100644 test/resource/deviceUsage/deviceUsageConfig.xml create mode 100644 test/resource/deviceUsage/parseconfig/device_usage_statistics_config.json diff --git a/test/fuzztest/bundleactiveobserver_fuzzer/BUILD.gn b/test/fuzztest/bundleactiveobserver_fuzzer/BUILD.gn index 663e612..06693f2 100644 --- a/test/fuzztest/bundleactiveobserver_fuzzer/BUILD.gn +++ b/test/fuzztest/bundleactiveobserver_fuzzer/BUILD.gn @@ -36,6 +36,8 @@ ohos_fuzztest("BundleActiveObserverFuzzTest") { fuzz_config_file = "${usage_statistics_path}/test/fuzztest/bundleactiveobserver_fuzzer" configs = [ ":module_private_config" ] + resource_config_file = + "${usage_statistics_path}/test/resource/deviceUsage/deviceUsageConfig.xml" cflags = [ "-g", "-O0", diff --git a/test/fuzztest/bundleactiveobserver_fuzzer/bundleactiveobserver_fuzzer.cpp b/test/fuzztest/bundleactiveobserver_fuzzer/bundleactiveobserver_fuzzer.cpp index 3525909..5dd3440 100644 --- a/test/fuzztest/bundleactiveobserver_fuzzer/bundleactiveobserver_fuzzer.cpp +++ b/test/fuzztest/bundleactiveobserver_fuzzer/bundleactiveobserver_fuzzer.cpp @@ -22,6 +22,7 @@ #include "iservice_registry.h" #include "bundle_active_service.h" #include "iapp_group_callback.h" +#include "bundle_active_config_reader.h" namespace OHOS { namespace DeviceUsageStats { @@ -55,6 +56,39 @@ namespace DeviceUsageStats { DelayedSingleton::GetInstance()->IsBundleUsePeriod(result, inputBundlName, userId); return true; } + + bool BundleActiveServiceStartAndStopFuzzTest(const char* data, size_t size) + { + DelayedSingleton::GetInstance()->OnStart(); + DelayedSingleton::GetInstance()->InitNecessaryState(); + DelayedSingleton::GetInstance()->OnStop(); + return true; + } + + bool BundleActiveConfigReaderFuzzTest(const char* data, size_t size) + { + DelayedSingleton::GetInstance()->GetApplicationUsePeriodicallyConfig(); + return true; + } + + bool BundleActiveServiceDumpFuzzTest(const char* data, size_t size) + { + int32_t fd = static_cast(GetU32Data(data)); + std::vector args; + args = {to_utf16(std::to_string(GetU32Data(data)))}; + DelayedSingleton::GetInstance()->Dump(fd, args); + DelayedSingleton::GetInstance()->AllowDump(); + + std::vector dumpOption = {std::to_string(GetU32Data(data))}; + std::vector dumpInfo = {std::to_string(GetU32Data(data))}; + DelayedSingleton::GetInstance()->ShellDump(dumpOption, dumpInfo); + DelayedSingleton::GetInstance()->DumpEvents(dumpOption, dumpInfo); + DelayedSingleton::GetInstance()->DumpPackageUsage(dumpOption, dumpInfo); + DelayedSingleton::GetInstance()->DumpModuleUsage(dumpOption, dumpInfo); + std::string result = std::to_string(GetU32Data(data)); + DelayedSingleton::GetInstance()->DumpUsage(result); + return true; + } } // namespace DeviceUsageStats } // namespace OHOS @@ -82,6 +116,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) } OHOS::DeviceUsageStats::DoSomethingInterestingWithMyAPI(ch, size); + OHOS::DeviceUsageStats::BundleActiveServiceStartAndStopFuzzTest(ch, size); + OHOS::DeviceUsageStats::BundleActiveConfigReaderFuzzTest(ch, size); + OHOS::DeviceUsageStats::BundleActiveServiceDumpFuzzTest(ch, size); free(ch); ch = nullptr; return 0; diff --git a/test/resource/deviceUsage/deviceUsageConfig.xml b/test/resource/deviceUsage/deviceUsageConfig.xml new file mode 100644 index 0000000..2dacadb --- /dev/null +++ b/test/resource/deviceUsage/deviceUsageConfig.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/test/resource/deviceUsage/parseconfig/device_usage_statistics_config.json b/test/resource/deviceUsage/parseconfig/device_usage_statistics_config.json new file mode 100644 index 0000000..31145c3 --- /dev/null +++ b/test/resource/deviceUsage/parseconfig/device_usage_statistics_config.json @@ -0,0 +1,7 @@ +{ + "application_use_periodically": { + "MinUseTimes" : 5, + "MaxUseTimes" : 15, + "MinUseDays" : 6 + } +} \ No newline at end of file -- Gitee