1e1c44949Sopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
2e1c44949Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3e1c44949Sopenharmony_ci# you may not use this file except in compliance with the License.
4e1c44949Sopenharmony_ci# You may obtain a copy of the License at
5e1c44949Sopenharmony_ci#
6e1c44949Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7e1c44949Sopenharmony_ci#
8e1c44949Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9e1c44949Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10e1c44949Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11e1c44949Sopenharmony_ci# See the License for the specific language governing permissions and
12e1c44949Sopenharmony_ci# limitations under the License.
13e1c44949Sopenharmony_ci
14e1c44949Sopenharmony_ci#####################hydra-fuzz###################
15e1c44949Sopenharmony_ciimport("//build/config/features.gni")
16e1c44949Sopenharmony_ciimport("//build/ohos.gni")
17e1c44949Sopenharmony_ciimport("//build/test.gni")
18e1c44949Sopenharmony_ciimport("../../../callmanager.gni")
19e1c44949Sopenharmony_ciCALL_MANAGER_PATH = "../../.."
20e1c44949Sopenharmony_ci
21e1c44949Sopenharmony_ci##############################fuzztest##########################################
22e1c44949Sopenharmony_ciohos_fuzztest("DialCallFuzzTest") {
23e1c44949Sopenharmony_ci  module_output_path = "call_manager/call_manager"
24e1c44949Sopenharmony_ci  module_out_path = module_output_path
25e1c44949Sopenharmony_ci  fuzz_config_file = "${CALL_MANAGER_PATH}/test/fuzztest/dialcall_fuzzer"
26e1c44949Sopenharmony_ci  _cfi_blocklist_path = "../../cfi_blocklist.txt"
27e1c44949Sopenharmony_ci
28e1c44949Sopenharmony_ci  include_dirs = [
29e1c44949Sopenharmony_ci    "${CALL_MANAGER_PATH}/interfaces/innerkits",
30e1c44949Sopenharmony_ci    "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer",
31e1c44949Sopenharmony_ci  ]
32e1c44949Sopenharmony_ci  include_dirs += call_manager_include_dirs
33e1c44949Sopenharmony_ci
34e1c44949Sopenharmony_ci  deps = [
35e1c44949Sopenharmony_ci    "${CALL_MANAGER_PATH}/frameworks/native:tel_call_manager_api",
36e1c44949Sopenharmony_ci    "//third_party/cJSON:cjson",
37e1c44949Sopenharmony_ci    "//third_party/libphonenumber/cpp:phonenumber_standard",
38e1c44949Sopenharmony_ci  ]
39e1c44949Sopenharmony_ci
40e1c44949Sopenharmony_ci  external_deps = [
41e1c44949Sopenharmony_ci    "access_token:libnativetoken",
42e1c44949Sopenharmony_ci    "access_token:libtoken_setproc",
43e1c44949Sopenharmony_ci  ]
44e1c44949Sopenharmony_ci  external_deps += call_manager_external_deps
45e1c44949Sopenharmony_ci
46e1c44949Sopenharmony_ci  defines = [
47e1c44949Sopenharmony_ci    "TELEPHONY_LOG_TAG = \"CallManagerFuzzTest\"",
48e1c44949Sopenharmony_ci    "LOG_DOMAIN = 0xD000F00",
49e1c44949Sopenharmony_ci  ]
50e1c44949Sopenharmony_ci  defines += call_manager_defines
51e1c44949Sopenharmony_ci
52e1c44949Sopenharmony_ci  cflags = [
53e1c44949Sopenharmony_ci    "-g",
54e1c44949Sopenharmony_ci    "-O0",
55e1c44949Sopenharmony_ci    "-Wno-unused-variable",
56e1c44949Sopenharmony_ci    "-fno-omit-frame-pointer",
57e1c44949Sopenharmony_ci    "-flto",
58e1c44949Sopenharmony_ci    "-fvisibility=hidden",
59e1c44949Sopenharmony_ci    "-fsanitize=cfi",
60e1c44949Sopenharmony_ci    "-fsanitize-cfi-cross-dso",
61e1c44949Sopenharmony_ci    "-fsanitize-blacklist=" + rebase_path(_cfi_blocklist_path, root_build_dir),
62e1c44949Sopenharmony_ci  ]
63e1c44949Sopenharmony_ci
64e1c44949Sopenharmony_ci  ldflags = [
65e1c44949Sopenharmony_ci    "-flto",
66e1c44949Sopenharmony_ci    "-fsanitize=cfi",
67e1c44949Sopenharmony_ci    "-fsanitize-cfi-cross-dso",
68e1c44949Sopenharmony_ci  ]
69e1c44949Sopenharmony_ci
70e1c44949Sopenharmony_ci  sources = [
71e1c44949Sopenharmony_ci    "${CALL_MANAGER_PATH}/test/fuzztest/common_fuzzer/addcalltoken_fuzzer.cpp",
72e1c44949Sopenharmony_ci    "dialcall_fuzzer.cpp",
73e1c44949Sopenharmony_ci  ]
74e1c44949Sopenharmony_ci  sources += call_manager_sources
75e1c44949Sopenharmony_ci}
76e1c44949Sopenharmony_ci
77e1c44949Sopenharmony_ci###############################################################################
78e1c44949Sopenharmony_cigroup("fuzztest") {
79e1c44949Sopenharmony_ci  testonly = true
80e1c44949Sopenharmony_ci  deps = []
81e1c44949Sopenharmony_ci  deps += [
82e1c44949Sopenharmony_ci    # deps file
83e1c44949Sopenharmony_ci    ":DialCallFuzzTest",
84e1c44949Sopenharmony_ci  ]
85e1c44949Sopenharmony_ci}
86e1c44949Sopenharmony_ci###############################################################################
87