From c9ab9c4a68729619dd564d1b19ad71f99467d54b Mon Sep 17 00:00:00 2001 From: xujunyang Date: Tue, 8 Jul 2025 15:49:59 +0800 Subject: [PATCH] Add Fuzz Signed-off-by: xujunyang Change-Id: Iaa1cca802553d1fcb41c81b4140f048ad2cff66d --- .../timesettimezone_fuzzer/BUILD.gn | 10 +++++-- .../timesettimezone_fuzzer.cpp | 29 +++++++++++++++++++ test/fuzztest/timeservice_fuzzer/BUILD.gn | 6 +++- .../timerproxy_fuzzer/timerproxy_fuzzer.cpp | 9 ++++++ 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/BUILD.gn b/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/BUILD.gn index c196fe7f..abe59b52 100644 --- a/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/BUILD.gn +++ b/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/BUILD.gn @@ -23,7 +23,10 @@ ohos_fuzztest("TimeSetTimezoneFuzzTest") { fuzz_config_file = "${time_root_path}/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer" - include_dirs = [ "${api_path}/include" ] + include_dirs = [ + "${api_path}/include", + "${time_utils_path}/native/include", + ] cflags = [ "-g", @@ -34,7 +37,10 @@ ohos_fuzztest("TimeSetTimezoneFuzzTest") { sources = [ "timesettimezone_fuzzer.cpp" ] - deps = [ "${api_path}:time_client" ] + deps = [ + "${api_path}:time_client", + "${time_utils_path}:time_utils", + ] external_deps = [ "ability_base:want", diff --git a/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/timesettimezone_fuzzer.cpp b/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/timesettimezone_fuzzer.cpp index 7d4dbcc2..b4f13106 100644 --- a/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/timesettimezone_fuzzer.cpp +++ b/test/fuzztest/timemanager_fuzzer/timesettimezone_fuzzer/timesettimezone_fuzzer.cpp @@ -14,6 +14,7 @@ */ #include "timesettimezone_fuzzer.h" +#include "time_common.h" #include #include @@ -106,6 +107,31 @@ bool FuzzTimeGetRealTimeMs(const uint8_t *rawData, size_t size) return true; } +bool FuzzTimeTimeUtilsGetWallTimeMs(const uint8_t *rawData, size_t size) +{ + FuzzedDataProvider fdp(rawData, size); + int64_t time = fdp.ConsumeIntegral(); + TimeUtils::GetWallTimeMs(time); + return true; +} + +bool FuzzTimeTimeUtilsGetBootTimeNs(const uint8_t *rawData, size_t size) +{ + FuzzedDataProvider fdp(rawData, size); + int64_t time = fdp.ConsumeIntegral(); + TimeUtils::GetBootTimeNs(time); + TimeUtils::GetBootTimeNs(); + return true; +} + +bool FuzzTimeTimeUtilsGetBootTimeMs(const uint8_t *rawData, size_t size) +{ + FuzzedDataProvider fdp(rawData, size); + int64_t time = fdp.ConsumeIntegral(); + TimeUtils::GetBootTimeNs(time); + return true; +} + } /* Fuzzer entry point */ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) @@ -121,5 +147,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) OHOS::FuzzTimeGetTime(data, size); OHOS::FuzzTimeGetNtpTimeMs(data, size); OHOS::FuzzTimeGetRealTimeMs(data, size); + OHOS::FuzzTimeTimeUtilsGetWallTimeMs(data, size); + OHOS::FuzzTimeTimeUtilsGetBootTimeNs(data, size); + OHOS::FuzzTimeTimeUtilsGetBootTimeMs(data, size); return 0; } \ No newline at end of file diff --git a/test/fuzztest/timeservice_fuzzer/BUILD.gn b/test/fuzztest/timeservice_fuzzer/BUILD.gn index 6e7097b5..9e04ae2d 100644 --- a/test/fuzztest/timeservice_fuzzer/BUILD.gn +++ b/test/fuzztest/timeservice_fuzzer/BUILD.gn @@ -110,6 +110,7 @@ foreach(item, time_fuzztests) { "${time_service_path}/ipc/base", "${api_path}/include", "${time_service_path}/timer/include", + "${time_service_path}/time/include/inner_api_include", "${time_root_path}/test/fuzztest/timeservice_fuzzer/common", ] @@ -125,7 +126,10 @@ foreach(item, time_fuzztests) { item.source, ] - deps = [ "${time_service_path}:time_system_ability_static" ] + deps = [ + "${time_service_path}:time_system_ability_static", + "${api_path}:time_client", + ] external_deps = [ "ability_base:want", diff --git a/test/fuzztest/timeservice_fuzzer/timerproxy_fuzzer/timerproxy_fuzzer.cpp b/test/fuzztest/timeservice_fuzzer/timerproxy_fuzzer/timerproxy_fuzzer.cpp index 6b9312fa..e5f2971c 100644 --- a/test/fuzztest/timeservice_fuzzer/timerproxy_fuzzer/timerproxy_fuzzer.cpp +++ b/test/fuzztest/timeservice_fuzzer/timerproxy_fuzzer/timerproxy_fuzzer.cpp @@ -14,6 +14,7 @@ */ #include "timerproxy_fuzzer.h" +#include "timer_call_back.h" #include #include @@ -97,6 +98,13 @@ bool FuzzTimerIsProxy(const uint8_t *data, size_t size) return true; } +bool FuzzTimerNotifyTimer(const uint8_t *data, size_t size) +{ + FuzzedDataProvider fdp(data, size); + uint64_t id = fdp.ConsumeIntegral(); + TimerCallback::GetInstance()->NotifyTimer(id); + return true; +} } // namespace OHOS /* Fuzzer entry point */ @@ -114,5 +122,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) OHOS::FuzzTimerEraseTimer(data, size); OHOS::FuzzTimerRemoveTimerMap(data, size); OHOS::FuzzTimerIsProxy(data, size); + OHOS::FuzzTimerNotifyTimer(data, size); return 0; } \ No newline at end of file -- Gitee