1# Copyright (c) 2024 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
14import("//base/print/print_fwk/print.gni")
15import("//build/config/features.gni")
16import("//build/ohos.gni")
17import("//build/test.gni")
18
19##############################fuzztest##########################################
20ohos_fuzztest("PrintServiceAbilityFuzzTest") {
21  module_out_path = fuzz_test_output_path
22
23  fuzz_config_file = "${print_path}/test/fuzztest/printserviceability_fuzzer"
24
25  include_dirs = [
26    "mock",
27    "${print_path}/frameworks/innerkitsimpl/print_impl/include",
28    "${print_path}/frameworks/ohprint/include",
29    "${print_utils_path}/include",
30    "//vendor/open_source/cpp-httplib",
31  ]
32
33  cflags = [
34    "-g",
35    "-O0",
36    "-Wno-unused-variable",
37    "-fno-omit-frame-pointer",
38  ]
39
40  cflags_cc = []
41
42  deps = [
43    "${print_path}/etc/init:printservice.rc",
44    "${print_path}/frameworks/innerkitsimpl/print_impl:print_client",
45    "${print_path}/frameworks/kits/extension:print_extension_framework",
46    "${print_path}/frameworks/kits/extension:print_extension_module",
47    "${print_path}/frameworks/models/print_models:print_models",
48    "${print_path}/interfaces/kits/jsnapi/print_extension:printextensionability_napi",
49    "${print_path}/interfaces/kits/jsnapi/print_extensionctx:printextensioncontext_napi",
50    "${print_path}/interfaces/kits/napi/print_napi:print_napi",
51    "${print_path}/profile:print_sa_profiles",
52    "${print_path}/services/print_service:print_service",
53  ]
54
55  sources = [
56    "printserviceability_fuzzer.cpp",
57    "printserviceability_mock_permission.cpp",
58  ]
59
60  external_deps = [
61    "ability_base:base",
62    "ability_base:want",
63    "ability_base:zuri",
64    "ability_runtime:ability_manager",
65    "ability_runtime:abilitykit_native",
66    "access_token:libaccesstoken_sdk",
67    "access_token:libaccesstoken_sdk",
68    "access_token:libnativetoken",
69    "access_token:libtoken_setproc",
70    "bundle_framework:appexecfwk_base",
71    "bundle_framework:appexecfwk_core",
72    "c_utils:utils",
73    "common_event_service:cesfwk_innerkits",
74    "drivers_interface_usb:libusb_proxy_1.0",
75    "eventhandler:libeventhandler",
76    "hilog:libhilog",
77    "hisysevent:libhisysevent",
78    "init:libbegetutil",
79    "ipc:ipc_core",
80    "napi:ace_napi",
81    "os_account:os_account_innerkits",
82    "safwk:system_ability_fwk",
83    "samgr:samgr_proxy",
84    "usb_manager:usbsrv_client",
85    "wifi:wifi_sdk",
86  ]
87
88  if (cups_enable) {
89    cflags_cc += [ "-DCUPS_ENABLE" ]
90    external_deps += [
91      "cJSON:cjson",
92      "cups:cups",
93      "cups-filters:cupsfilters",
94    ]
95  }
96
97  if (security_guard_enabled) {
98    external_deps += [
99      "security_guard:libsg_collect_sdk",
100      "time_service:time_client",
101    ]
102  }
103}
104
105###############################################################################
106group("fuzztest") {
107  testonly = true
108  deps = []
109  deps += [
110    # deps file
111    ":PrintServiceAbilityFuzzTest",
112  ]
113}
114###############################################################################
115