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