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