1cf69771bSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
2cf69771bSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3cf69771bSopenharmony_ci# you may not use this file except in compliance with the License.
4cf69771bSopenharmony_ci# You may obtain a copy of the License at
5cf69771bSopenharmony_ci#
6cf69771bSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7cf69771bSopenharmony_ci#
8cf69771bSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9cf69771bSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10cf69771bSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11cf69771bSopenharmony_ci# See the License for the specific language governing permissions and
12cf69771bSopenharmony_ci# limitations under the License.
13cf69771bSopenharmony_ci
14cf69771bSopenharmony_ci#####################hydra-fuzz###################
15cf69771bSopenharmony_ciimport("//build/config/features.gni")
16cf69771bSopenharmony_ciimport("//build/ohos.gni")
17cf69771bSopenharmony_ciimport("//build/test.gni")
18cf69771bSopenharmony_ciimport("../../../time.gni")
19cf69771bSopenharmony_ci
20cf69771bSopenharmony_ci##############################fuzztest##########################################
21cf69771bSopenharmony_citimeboundarycode_test = {
22cf69771bSopenharmony_ci  targetName = "TimeBoundaryCodeFuzzTest"
23cf69771bSopenharmony_ci  configFuzzer = "timeboundarycode_fuzzer"
24cf69771bSopenharmony_ci  source = "timeboundarycode_fuzzer/timeboundarycode_fuzzer.cpp"
25cf69771bSopenharmony_ci}
26cf69771bSopenharmony_citimecreatetimer_test = {
27cf69771bSopenharmony_ci  targetName = "TimeCreateTimerFuzzTest"
28cf69771bSopenharmony_ci  configFuzzer = "timecreatetimer_fuzzer"
29cf69771bSopenharmony_ci  source = "timecreatetimer_fuzzer/timecreatetimer_fuzzer.cpp"
30cf69771bSopenharmony_ci}
31cf69771bSopenharmony_citimedestroytimer_test = {
32cf69771bSopenharmony_ci  targetName = "TimeDestroyTimerFuzzTest"
33cf69771bSopenharmony_ci  configFuzzer = "timedestroytimer_fuzzer"
34cf69771bSopenharmony_ci  source = "timedestroytimer_fuzzer/timedestroytimer_fuzzer.cpp"
35cf69771bSopenharmony_ci}
36cf69771bSopenharmony_citimegetthreadtimemilli_test = {
37cf69771bSopenharmony_ci  targetName = "TimeGetThreadTimeMilliFuzzTest"
38cf69771bSopenharmony_ci  configFuzzer = "timegetthreadtimemilli_fuzzer"
39cf69771bSopenharmony_ci  source = "timegetthreadtimemilli_fuzzer/timegetthreadtimemilli_fuzzer.cpp"
40cf69771bSopenharmony_ci}
41cf69771bSopenharmony_citimegetthreadtimenano_test = {
42cf69771bSopenharmony_ci  targetName = "TimeGetThreadTimeNanoFuzzTest"
43cf69771bSopenharmony_ci  configFuzzer = "timegetthreadtimenano_fuzzer"
44cf69771bSopenharmony_ci  source = "timegetthreadtimenano_fuzzer/timegetthreadtimenano_fuzzer.cpp"
45cf69771bSopenharmony_ci}
46cf69771bSopenharmony_citimegettimezone_test = {
47cf69771bSopenharmony_ci  targetName = "TimeGetTimeZoneFuzzTest"
48cf69771bSopenharmony_ci  configFuzzer = "timegettimezone_fuzzer"
49cf69771bSopenharmony_ci  source = "timegettimezone_fuzzer/timegettimezone_fuzzer.cpp"
50cf69771bSopenharmony_ci}
51cf69771bSopenharmony_citimereceivedmessage_test = {
52cf69771bSopenharmony_ci  targetName = "TimeReceivedMessageFuzzTest"
53cf69771bSopenharmony_ci  configFuzzer = "timereceivedmessage_fuzzer"
54cf69771bSopenharmony_ci  source = "timereceivedmessage_fuzzer/timereceivedmessage_fuzzer.cpp"
55cf69771bSopenharmony_ci}
56cf69771bSopenharmony_citimeservicesettimezone_test = {
57cf69771bSopenharmony_ci  targetName = "TimeServiceSetTimeZoneFuzzTest"
58cf69771bSopenharmony_ci  configFuzzer = "timeservicesettimezone_fuzzer"
59cf69771bSopenharmony_ci  source = "timeservicesettimezone_fuzzer/timeservicesettimezone_fuzzer.cpp"
60cf69771bSopenharmony_ci}
61cf69771bSopenharmony_citimestarttimer_test = {
62cf69771bSopenharmony_ci  targetName = "TimeStartTimerFuzzTest"
63cf69771bSopenharmony_ci  configFuzzer = "timestarttimer_fuzzer"
64cf69771bSopenharmony_ci  source = "timestarttimer_fuzzer/timestarttimer_fuzzer.cpp"
65cf69771bSopenharmony_ci}
66cf69771bSopenharmony_citimestoptimer_test = {
67cf69771bSopenharmony_ci  targetName = "TimeStopTimerFuzzTest"
68cf69771bSopenharmony_ci  configFuzzer = "timestoptimer_fuzzer"
69cf69771bSopenharmony_ci  source = "timestoptimer_fuzzer/timestoptimer_fuzzer.cpp"
70cf69771bSopenharmony_ci}
71cf69771bSopenharmony_citimerproxy_test = {
72cf69771bSopenharmony_ci  targetName = "TimerProxyFuzzTest"
73cf69771bSopenharmony_ci  configFuzzer = "timerproxy_fuzzer"
74cf69771bSopenharmony_ci  source = "timerproxy_fuzzer/timerproxy_fuzzer.cpp"
75cf69771bSopenharmony_ci}
76cf69771bSopenharmony_citimesntp_test = {
77cf69771bSopenharmony_ci  targetName = "TimeSntpFuzzTest"
78cf69771bSopenharmony_ci  configFuzzer = "timesntp_fuzzer"
79cf69771bSopenharmony_ci  source = "timesntp_fuzzer/timesntp_fuzzer.cpp"
80cf69771bSopenharmony_ci}
81cf69771bSopenharmony_ci
82cf69771bSopenharmony_citime_fuzztests = [
83cf69771bSopenharmony_ci  timeboundarycode_test,
84cf69771bSopenharmony_ci  timecreatetimer_test,
85cf69771bSopenharmony_ci  timedestroytimer_test,
86cf69771bSopenharmony_ci  timegetthreadtimemilli_test,
87cf69771bSopenharmony_ci  timegetthreadtimenano_test,
88cf69771bSopenharmony_ci  timegettimezone_test,
89cf69771bSopenharmony_ci  timereceivedmessage_test,
90cf69771bSopenharmony_ci  timeservicesettimezone_test,
91cf69771bSopenharmony_ci  timestarttimer_test,
92cf69771bSopenharmony_ci  timestoptimer_test,
93cf69771bSopenharmony_ci  timerproxy_test,
94cf69771bSopenharmony_ci  timesntp_test,
95cf69771bSopenharmony_ci]
96cf69771bSopenharmony_ci
97cf69771bSopenharmony_ciforeach(item, time_fuzztests) {
98cf69771bSopenharmony_ci  ohos_fuzztest(item.targetName) {
99cf69771bSopenharmony_ci    module_out_path = "time_service/time"
100cf69771bSopenharmony_ci
101cf69771bSopenharmony_ci    fuzz_config_file = "${time_root_path}/test/fuzztest/timeservice_fuzzer/${item.configFuzzer}"
102cf69771bSopenharmony_ci
103cf69771bSopenharmony_ci    include_dirs = [
104cf69771bSopenharmony_ci      "${time_service_path}",
105cf69771bSopenharmony_ci      "${time_service_path}/dfx/include",
106cf69771bSopenharmony_ci      "${time_service_path}/time/include",
107cf69771bSopenharmony_ci      "${time_utils_path}/native/include",
108cf69771bSopenharmony_ci      "${time_service_path}/ipc/stub",
109cf69771bSopenharmony_ci      "${time_service_path}/ipc/base",
110cf69771bSopenharmony_ci      "${api_path}/include",
111cf69771bSopenharmony_ci      "${time_service_path}/timer/include",
112cf69771bSopenharmony_ci      "${time_root_path}/test/fuzztest/timeservice_fuzzer/common",
113cf69771bSopenharmony_ci    ]
114cf69771bSopenharmony_ci
115cf69771bSopenharmony_ci    cflags = [
116cf69771bSopenharmony_ci      "-g",
117cf69771bSopenharmony_ci      "-O0",
118cf69771bSopenharmony_ci      "-Wno-unused-variable",
119cf69771bSopenharmony_ci      "-fno-omit-frame-pointer",
120cf69771bSopenharmony_ci    ]
121cf69771bSopenharmony_ci
122cf69771bSopenharmony_ci    sources = [
123cf69771bSopenharmony_ci      "common/time_service_fuzz_utils.cpp",
124cf69771bSopenharmony_ci      item.source,
125cf69771bSopenharmony_ci    ]
126cf69771bSopenharmony_ci
127cf69771bSopenharmony_ci    deps = [ "${time_service_path}:time_system_ability_static" ]
128cf69771bSopenharmony_ci
129cf69771bSopenharmony_ci    external_deps = [
130cf69771bSopenharmony_ci      "ability_base:want",
131cf69771bSopenharmony_ci      "ability_runtime:wantagent_innerkits",
132cf69771bSopenharmony_ci      "access_token:libaccesstoken_sdk",
133cf69771bSopenharmony_ci      "access_token:libnativetoken",
134cf69771bSopenharmony_ci      "access_token:libtoken_setproc",
135cf69771bSopenharmony_ci      "bundle_framework:appexecfwk_core",
136cf69771bSopenharmony_ci      "c_utils:utils",
137cf69771bSopenharmony_ci      "common_event_service:cesfwk_innerkits",
138cf69771bSopenharmony_ci      "hilog:libhilog",
139cf69771bSopenharmony_ci      "init:libbegetutil",
140cf69771bSopenharmony_ci      "ipc:ipc_single",
141cf69771bSopenharmony_ci      "power_manager:powermgr_client",
142cf69771bSopenharmony_ci      "relational_store:native_dataability",
143cf69771bSopenharmony_ci      "relational_store:native_rdb",
144cf69771bSopenharmony_ci      "safwk:system_ability_fwk",
145cf69771bSopenharmony_ci      "samgr:samgr_proxy",
146cf69771bSopenharmony_ci    ]
147cf69771bSopenharmony_ci  }
148cf69771bSopenharmony_ci}
149cf69771bSopenharmony_ci
150cf69771bSopenharmony_ci###############################################################################
151cf69771bSopenharmony_cigroup("fuzztest") {
152cf69771bSopenharmony_ci  testonly = true
153cf69771bSopenharmony_ci  deps = []
154cf69771bSopenharmony_ci  deps += [
155cf69771bSopenharmony_ci    # deps file
156cf69771bSopenharmony_ci    ":TimeBoundaryCodeFuzzTest",
157cf69771bSopenharmony_ci    ":TimeCreateTimerFuzzTest",
158cf69771bSopenharmony_ci    ":TimeDestroyTimerFuzzTest",
159cf69771bSopenharmony_ci    ":TimeGetThreadTimeMilliFuzzTest",
160cf69771bSopenharmony_ci    ":TimeGetThreadTimeNanoFuzzTest",
161cf69771bSopenharmony_ci    ":TimeGetTimeZoneFuzzTest",
162cf69771bSopenharmony_ci    ":TimeReceivedMessageFuzzTest",
163cf69771bSopenharmony_ci    ":TimeServiceSetTimeZoneFuzzTest",
164cf69771bSopenharmony_ci    ":TimeSntpFuzzTest",
165cf69771bSopenharmony_ci    ":TimeStartTimerFuzzTest",
166cf69771bSopenharmony_ci    ":TimeStopTimerFuzzTest",
167cf69771bSopenharmony_ci    ":TimerProxyFuzzTest",
168cf69771bSopenharmony_ci  ]
169cf69771bSopenharmony_ci}
170cf69771bSopenharmony_ci###############################################################################
171