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
14import("../../../wallpaper.gni")
15
16#####################hydra-fuzz###################
17import("//build/config/features.gni")
18import("//build/ohos.gni")
19import("//build/test.gni")
20
21##############################fuzztest##########################################
22boundarycode_test = {
23  targetName = "WallpaperBoundaryCodeFuzzTest"
24  configFuzzer = "wallpaperboundarycode_fuzzer"
25  source = "src/boundarycode_fuzzer.cpp"
26}
27getcolors_test = {
28  targetName = "WallpaperGetColorsFuzzTest"
29  configFuzzer = "wallpapergetcolors_fuzzer"
30  source = "src/getcolors_fuzzer.cpp"
31}
32getcolorsv9_test = {
33  targetName = "WallpaperGetColorsV9FuzzTest"
34  configFuzzer = "wallpapergetcolorsv9_fuzzer"
35  source = "src/getcolorsv9_fuzzer.cpp"
36}
37getfile_test = {
38  targetName = "WallpaperGetFileFuzzTest"
39  configFuzzer = "wallpapergetfile_fuzzer"
40  source = "src/getfile_fuzzer.cpp"
41}
42getpixelmap_test = {
43  targetName = "WallpaperGetPixelMapFuzzTest"
44  configFuzzer = "wallpapergetpixelmap_fuzzer"
45  source = "src/getpixelmap_fuzzer.cpp"
46}
47getpixelmapv9_test = {
48  targetName = "WallpaperGetPixelMapV9FuzzTest"
49  configFuzzer = "wallpapergetpixelmapv9_fuzzer"
50  source = "src/getpixelmapv9_fuzzer.cpp"
51}
52getwallpaperid_test = {
53  targetName = "WallpaperGetWallpaperIdFuzzTest"
54  configFuzzer = "wallpapergetwallpaperid_fuzzer"
55  source = "src/getwallpaperid_fuzzer.cpp"
56}
57ischangepermitted_test = {
58  targetName = "WallpaperIsChangePermittedFuzzTest"
59  configFuzzer = "wallpaperischangepermitted_fuzzer"
60  source = "src/ischangepermitted_fuzzer.cpp"
61}
62isoperationallowed_test = {
63  targetName = "WallpaperIsOperationAllowedFuzzTest"
64  configFuzzer = "wallpaperisoperationallowed_fuzzer"
65  source = "src/isoperationallowed_fuzzer.cpp"
66}
67off_test = {
68  targetName = "WallpaperOffFuzzTest"
69  configFuzzer = "wallpaperoff_fuzzer"
70  source = "src/off_fuzzer.cpp"
71}
72on_test = {
73  targetName = "WallpaperOnFuzzTest"
74  configFuzzer = "wallpaperon_fuzzer"
75  source = "src/on_fuzzer.cpp"
76}
77registercallback_test = {
78  targetName = "WallpaperRegisterCallbackFuzzTest"
79  configFuzzer = "wallpaperregistercallback_fuzzer"
80  source = "src/registercallback_fuzzer.cpp"
81}
82resetwallpaper_test = {
83  targetName = "WallpaperResetWallpaperFuzzTest"
84  configFuzzer = "wallpaperresetwallpaper_fuzzer"
85  source = "src/resetwallpaper_fuzzer.cpp"
86}
87resetwallpaperv9_test = {
88  targetName = "WallpaperResetWallpaperV9FuzzTest"
89  configFuzzer = "wallpaperresetwallpaperv9_fuzzer"
90  source = "src/resetwallpaperv9_fuzzer.cpp"
91}
92sendevent_test = {
93  targetName = "WallpaperSendEventFuzzTest"
94  configFuzzer = "wallpapersendevent_fuzzer"
95  source = "src/sendevent_fuzzer.cpp"
96}
97setcustom_test = {
98  targetName = "WallpaperSetCustomFuzzTest"
99  configFuzzer = "wallpapersetcustom_fuzzer"
100  source = "src/setcustom_fuzzer.cpp"
101}
102setvideo_test = {
103  targetName = "WallpaperSetVideoFuzzTest"
104  configFuzzer = "wallpapersetvideo_fuzzer"
105  source = "src/setvideo_fuzzer.cpp"
106}
107setwallpaper_test = {
108  targetName = "WallpaperSetWallpaperFuzzTest"
109  configFuzzer = "wallpapersetwallpaper_fuzzer"
110  source = "src/setwallpaper_fuzzer.cpp"
111}
112setwallpaperv9_test = {
113  targetName = "WallpaperSetWallpaperV9FuzzTest"
114  configFuzzer = "wallpapersetwallpaperv9_fuzzer"
115  source = "src/setwallpaperv9_fuzzer.cpp"
116}
117setwallpaperpixelmapv9_test = {
118  targetName = "WallpaperSetWallpaperPixelmapV9FuzzTest"
119  configFuzzer = "wallpapersetwallpaperpixelmapv9_fuzzer"
120  source = "src/setwallpaperpixelmapv9_fuzz.cpp"
121}
122wallpaperstub_test = {
123  targetName = "WallpaperStubFuzzTest"
124  configFuzzer = "wallpaperstub_fuzzer"
125  source = "src/wallpaperstub_fuzz.cpp"
126}
127
128wallpaper_fuzztests = [
129  boundarycode_test,
130  getcolors_test,
131  getcolorsv9_test,
132  getfile_test,
133  getpixelmap_test,
134  getpixelmapv9_test,
135  getwallpaperid_test,
136  ischangepermitted_test,
137  isoperationallowed_test,
138  off_test,
139  on_test,
140  registercallback_test,
141  resetwallpaper_test,
142  resetwallpaperv9_test,
143  sendevent_test,
144  setcustom_test,
145  setvideo_test,
146  setwallpaper_test,
147  setwallpaperv9_test,
148  setwallpaperpixelmapv9_test,
149  wallpaperstub_test,
150]
151foreach(item, wallpaper_fuzztests) {
152  ohos_fuzztest(item.targetName) {
153    module_out_path = "wallpaper_mgr/wallpaper_mgr"
154
155    fuzz_config_file = "${wallpaper_path}/test/fuzztest/wallpaperservice_fuzzer/${item.configFuzzer}"
156
157    include_dirs = [
158      "${wallpaper_path}/services/include",
159      "${wallpaper_path}/frameworks/native/include",
160      "${wallpaper_path}/utils/include",
161      "${wallpaper_path}/test/fuzztest/wallpaperservice_fuzzer/include",
162    ]
163
164    cflags = [
165      "-g",
166      "-O0",
167      "-Wno-unused-variable",
168      "-fno-omit-frame-pointer",
169    ]
170
171    sources = [
172      "src/fuzztest_utils.cpp",
173      item.source,
174    ]
175
176    deps = [
177      "${utils_path}:wallpaper_utils",
178      "${wallpaper_path}/services:wallpaper_service",
179    ]
180
181    external_deps = [
182      "ability_runtime:abilitykit_native",
183      "access_token:libaccesstoken_sdk",
184      "access_token:libtoken_setproc",
185      "c_utils:utils",
186      "hilog:libhilog",
187      "ipc:ipc_single",
188      "os_account:os_account_innerkits",
189      "window_manager:libwm",
190    ]
191  }
192}
193
194###############################################################################
195group("fuzztest") {
196  testonly = true
197  deps = []
198  deps += [
199    # deps file
200    ":WallpaperBoundaryCodeFuzzTest",
201    ":WallpaperGetColorsFuzzTest",
202    ":WallpaperGetColorsV9FuzzTest",
203    ":WallpaperGetFileFuzzTest",
204    ":WallpaperGetPixelMapFuzzTest",
205    ":WallpaperGetPixelMapV9FuzzTest",
206    ":WallpaperGetWallpaperIdFuzzTest",
207    ":WallpaperIsChangePermittedFuzzTest",
208    ":WallpaperIsOperationAllowedFuzzTest",
209    ":WallpaperOffFuzzTest",
210    ":WallpaperOnFuzzTest",
211    ":WallpaperRegisterCallbackFuzzTest",
212    ":WallpaperResetWallpaperFuzzTest",
213    ":WallpaperResetWallpaperV9FuzzTest",
214    ":WallpaperSendEventFuzzTest",
215    ":WallpaperSetCustomFuzzTest",
216    ":WallpaperSetVideoFuzzTest",
217    ":WallpaperSetWallpaperFuzzTest",
218    ":WallpaperSetWallpaperPixelmapV9FuzzTest",
219    ":WallpaperSetWallpaperV9FuzzTest",
220    ":WallpaperStubFuzzTest",
221  ]
222}
223###############################################################################
224