1# Copyright (c) 2021 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("//build/config/features.gni") 15import("//build/ohos.gni") 16import("//build/test.gni") 17import("//drivers/adapter/uhdf2/uhdf.gni") 18import("../../camera.gni") 19 20module_output_path = "hdf/fuzz_test" 21 22ohos_fuzztest("IpcCameraDeviceRemote") { 23 module_out_path = module_output_path 24 cflags = [ 25 "-g", 26 "-O0", 27 "-Wno-unused-variable", 28 "-fno-omit-frame-pointer", 29 ] 30 sources = [ 31 "$camera_path/../interfaces/hdi_ipc/server/camera_device_stub.cpp", 32 "./ipc_camera_device_remote_fuzzer/ipc_camera_device_remote_fuzzer.cpp", 33 ] 34 35 include_dirs = [ 36 "./include", 37 "$camera_path/test/fuzz/ipc_camera_device_remote_fuzzer", 38 "$camera_path/../interfaces/include", 39 "$camera_path/../interfaces/hdi_ipc", 40 "$camera_path/../interfaces/hdi_ipc/utils/include", 41 "$camera_path/../interfaces/hdi_ipc/client/include", 42 "$camera_path/../interfaces/hdi_ipc/server/include", 43 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 44 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 45 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 46 "$camera_path/include", 47 "$camera_path/hdi_impl", 48 "$camera_path/hdi_impl/include", 49 "$camera_path/hdi_impl/include/camera_host", 50 "$camera_path/hdi_impl/include/camera_device", 51 "$camera_path/hdi_impl/include/stream_operator", 52 "$camera_path/hdi_impl/include/offline_stream_operator", 53 "$camera_path/device_manager/include/", 54 "$camera_path/device_manager/include/mpi", 55 "$camera_path/pipeline_core/utils", 56 "$camera_path/pipeline_core/pipeline_impl/include", 57 "$camera_path/pipeline_core/host_stream/include", 58 "$camera_path/pipeline_core/include", 59 "$camera_path/pipeline_core/ipp/include", 60 "$camera_path/pipeline_core/nodes/include", 61 "$camera_path/utils/event", 62 "//drivers/peripheral/camera/interfaces/metadata/include", 63 ] 64 65 deps = [ 66 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 67 "$camera_path/buffer_manager:camera_buffer_manager", 68 "$camera_path/device_manager:camera_device_manager", 69 "$camera_path/hdi_impl:camera_hdi_impl", 70 "$camera_path/pipeline_core:camera_pipeline_core", 71 "//drivers/peripheral/camera/interfaces/metadata:metadata", 72 ] 73 74 if (is_standard_system) { 75 external_deps = [ 76 "device_driver_framework:libhdf_host", 77 "device_driver_framework:libhdf_ipc_adapter", 78 "device_driver_framework:libhdf_utils", 79 "device_driver_framework:libhdi", 80 "display_device_driver:hdi_display_gralloc", 81 "graphic_standard:surface", 82 "hiviewdfx_hilog_native:libhilog", 83 "ipc:ipc_single", 84 "utils_base:utils", 85 ] 86 } else { 87 external_deps = [ "hilog:libhilog" ] 88 } 89 90 external_deps += [ 91 "ipc:ipc_single", 92 "samgr_standard:samgr_proxy", 93 ] 94 95 install_enable = true 96 install_images = [ chipset_base_dir ] 97 subsystem_name = "hdf" 98 part_name = "camera_device_driver" 99} 100 101ohos_fuzztest("IpcCameraHostService") { 102 module_out_path = module_output_path 103 cflags = [ 104 "-g", 105 "-O0", 106 "-Wno-unused-variable", 107 "-fno-omit-frame-pointer", 108 ] 109 sources = 110 [ "./ipc_camera_host_service_fuzzer/ipc_camera_host_service_fuzzer.cpp" ] 111 112 include_dirs = [ 113 "./include", 114 "$camera_path/test/fuzz/ipc_camera_host_service_fuzzer", 115 "$camera_path/../interfaces/include", 116 "$camera_path/../interfaces/hdi_ipc/utils/include", 117 "$camera_path/../interfaces/hdi_ipc/client/include", 118 "$camera_path/../interfaces/hdi_ipc/server/include", 119 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 120 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 121 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 122 "$camera_path/include", 123 "$camera_path/hdi_impl", 124 "$camera_path/hdi_impl/include", 125 "$camera_path/hdi_impl/include/camera_host", 126 "$camera_path/hdi_impl/include/camera_device", 127 "$camera_path/hdi_impl/include/stream_operator", 128 "$camera_path/hdi_impl/include/offline_stream_operator", 129 "$camera_path/device_manager/include/", 130 "$camera_path/device_manager/include/mpi", 131 "$camera_path/pipeline_core/utils", 132 "$camera_path/pipeline_core/pipeline_impl/include", 133 "$camera_path/pipeline_core/host_stream/include", 134 "$camera_path/pipeline_core/include", 135 "$camera_path/pipeline_core/ipp/include", 136 "$camera_path/pipeline_core/nodes/include", 137 "$camera_path/utils/event", 138 "//drivers/peripheral/camera/interfaces/metadata/include", 139 ] 140 141 deps = [ 142 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 143 "$camera_path/buffer_manager:camera_buffer_manager", 144 "$camera_path/device_manager:camera_device_manager", 145 "$camera_path/hdi_impl:camera_hdi_impl", 146 "$camera_path/pipeline_core:camera_pipeline_core", 147 "//drivers/peripheral/camera/interfaces/metadata:metadata", 148 ] 149 150 if (is_standard_system) { 151 external_deps = [ 152 "device_driver_framework:libhdf_host", 153 "device_driver_framework:libhdf_ipc_adapter", 154 "device_driver_framework:libhdf_utils", 155 "device_driver_framework:libhdi", 156 "display_device_driver:hdi_display_gralloc", 157 "graphic_standard:surface", 158 "hiviewdfx_hilog_native:libhilog", 159 "ipc:ipc_single", 160 "utils_base:utils", 161 ] 162 } else { 163 external_deps = [ "hilog:libhilog" ] 164 } 165 166 external_deps += [ 167 "ipc:ipc_single", 168 "samgr_standard:samgr_proxy", 169 ] 170 171 install_enable = true 172 install_images = [ chipset_base_dir ] 173 subsystem_name = "hdf" 174 part_name = "camera_device_driver" 175} 176 177ohos_fuzztest("IpcOffline") { 178 module_out_path = module_output_path 179 cflags = [ 180 "-g", 181 "-O0", 182 "-Wno-unused-variable", 183 "-fno-omit-frame-pointer", 184 ] 185 sources = [ "./ipc_offline_fuzzer/ipc_offline_fuzzer.cpp" ] 186 187 include_dirs = [ 188 "./include", 189 "$camera_path/test/fuzz/ipc_offline_fuzzer", 190 "$camera_path/../interfaces/include", 191 "$camera_path/../interfaces/hdi_ipc/utils/include", 192 "$camera_path/../interfaces/hdi_ipc/client/include", 193 "$camera_path/../interfaces/hdi_ipc/server/include", 194 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 195 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 196 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 197 "$camera_path/include", 198 "$camera_path/hdi_impl", 199 "$camera_path/hdi_impl/include", 200 "$camera_path/hdi_impl/include/camera_host", 201 "$camera_path/hdi_impl/include/camera_device", 202 "$camera_path/hdi_impl/include/stream_operator", 203 "$camera_path/hdi_impl/include/offline_stream_operator", 204 "$camera_path/device_manager/include/", 205 "$camera_path/device_manager/include/mpi", 206 "$camera_path/pipeline_core/utils", 207 "$camera_path/pipeline_core/pipeline_impl/include", 208 "$camera_path/pipeline_core/host_stream/include", 209 "$camera_path/pipeline_core/include", 210 "$camera_path/pipeline_core/ipp/include", 211 "$camera_path/pipeline_core/nodes/include", 212 "$camera_path/utils/event", 213 "//drivers/peripheral/camera/interfaces/metadata/include", 214 ] 215 216 deps = [ 217 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 218 "$camera_path/buffer_manager:camera_buffer_manager", 219 "$camera_path/device_manager:camera_device_manager", 220 "$camera_path/hdi_impl:camera_hdi_impl", 221 "$camera_path/pipeline_core:camera_pipeline_core", 222 "//drivers/peripheral/camera/interfaces/metadata:metadata", 223 ] 224 225 if (is_standard_system) { 226 external_deps = [ 227 "device_driver_framework:libhdf_host", 228 "device_driver_framework:libhdf_ipc_adapter", 229 "device_driver_framework:libhdf_utils", 230 "device_driver_framework:libhdi", 231 "display_device_driver:hdi_display_gralloc", 232 "graphic_standard:surface", 233 "hiviewdfx_hilog_native:libhilog", 234 "utils_base:utils", 235 ] 236 } else { 237 external_deps = [ "hilog:libhilog" ] 238 } 239 240 external_deps += [ 241 "ipc:ipc_single", 242 "samgr_standard:samgr_proxy", 243 ] 244 245 install_enable = true 246 install_images = [ chipset_base_dir ] 247 subsystem_name = "hdf" 248 part_name = "camera_device_driver" 249} 250 251ohos_fuzztest("IpcStreamOperator") { 252 module_out_path = module_output_path 253 cflags = [ 254 "-g", 255 "-O0", 256 "-Wno-unused-variable", 257 "-fno-omit-frame-pointer", 258 ] 259 sources = [ "./ipc_stream_operator_fuzzer/ipc_stream_operator_fuzzer.cpp" ] 260 261 include_dirs = [ 262 "./include", 263 "$camera_path/test/fuzz/ipc_stream_operator_fuzzer", 264 "$camera_path/../interfaces/include", 265 "$camera_path/../interfaces/hdi_ipc/utils/include", 266 "$camera_path/../interfaces/hdi_ipc/client/include", 267 "$camera_path/../interfaces/hdi_ipc/server/include", 268 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 269 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 270 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 271 "$camera_path/include", 272 "$camera_path/hdi_impl", 273 "$camera_path/hdi_impl/include", 274 "$camera_path/hdi_impl/include/camera_host", 275 "$camera_path/hdi_impl/include/camera_device", 276 "$camera_path/hdi_impl/include/stream_operator", 277 "$camera_path/hdi_impl/include/offline_stream_operator", 278 "$camera_path/device_manager/include/", 279 "$camera_path/device_manager/include/mpi", 280 "$camera_path/pipeline_core/utils", 281 "$camera_path/pipeline_core/pipeline_impl/include", 282 "$camera_path/pipeline_core/host_stream/include", 283 "$camera_path/pipeline_core/include", 284 "$camera_path/pipeline_core/ipp/include", 285 "$camera_path/pipeline_core/nodes/include", 286 "$camera_path/utils/event", 287 "//drivers/peripheral/camera/interfaces/metadata/include", 288 ] 289 290 deps = [ 291 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 292 "$camera_path/buffer_manager:camera_buffer_manager", 293 "$camera_path/device_manager:camera_device_manager", 294 "$camera_path/hdi_impl:camera_hdi_impl", 295 "$camera_path/pipeline_core:camera_pipeline_core", 296 "//drivers/peripheral/camera/interfaces/metadata:metadata", 297 ] 298 299 if (is_standard_system) { 300 external_deps = [ 301 "device_driver_framework:libhdf_host", 302 "device_driver_framework:libhdf_ipc_adapter", 303 "device_driver_framework:libhdf_utils", 304 "device_driver_framework:libhdi", 305 "display_device_driver:hdi_display_gralloc", 306 "graphic_standard:surface", 307 "hiviewdfx_hilog_native:libhilog", 308 "utils_base:utils", 309 ] 310 } else { 311 external_deps = [ "hilog:libhilog" ] 312 } 313 314 external_deps += [ 315 "ipc:ipc_single", 316 "samgr_standard:samgr_proxy", 317 ] 318 319 install_enable = true 320 install_images = [ chipset_base_dir ] 321 subsystem_name = "hdf" 322 part_name = "camera_device_driver" 323} 324 325ohos_fuzztest("IpcCameraDeviceCallback") { 326 module_out_path = module_output_path 327 cflags = [ 328 "-g", 329 "-O0", 330 "-Wno-unused-variable", 331 "-fno-omit-frame-pointer", 332 ] 333 sources = [ 334 "./ipc_camera_device_callback_fuzzer/ipc_camera_device_callback_fuzzer.cpp", 335 ] 336 337 include_dirs = [ 338 "./include", 339 "$camera_path/test/fuzz/ipc_camera_device_callback_fuzzer", 340 "$camera_path/../interfaces/include", 341 "$camera_path/../interfaces/hdi_ipc/utils/include", 342 "$camera_path/../interfaces/hdi_ipc/client/include", 343 "$camera_path/../interfaces/hdi_ipc/server/include", 344 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 345 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 346 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 347 "$camera_path/include", 348 "$camera_path/hdi_impl", 349 "$camera_path/hdi_impl/include", 350 "$camera_path/hdi_impl/include/camera_host", 351 "$camera_path/hdi_impl/include/camera_device", 352 "$camera_path/hdi_impl/include/stream_operator", 353 "$camera_path/hdi_impl/include/offline_stream_operator", 354 "$camera_path/device_manager/include/", 355 "$camera_path/device_manager/include/mpi", 356 "$camera_path/pipeline_core/utils", 357 "$camera_path/pipeline_core/pipeline_impl/include", 358 "$camera_path/pipeline_core/host_stream/include", 359 "$camera_path/pipeline_core/include", 360 "$camera_path/pipeline_core/ipp/include", 361 "$camera_path/pipeline_core/nodes/include", 362 "$camera_path/utils/event", 363 "//drivers/peripheral/camera/interfaces/metadata/include", 364 ] 365 366 deps = [ 367 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 368 "$camera_path/buffer_manager:camera_buffer_manager", 369 "$camera_path/device_manager:camera_device_manager", 370 "$camera_path/hdi_impl:camera_hdi_impl", 371 "$camera_path/pipeline_core:camera_pipeline_core", 372 "//drivers/peripheral/camera/interfaces/metadata:metadata", 373 ] 374 375 if (is_standard_system) { 376 external_deps = [ 377 "device_driver_framework:libhdf_host", 378 "device_driver_framework:libhdf_ipc_adapter", 379 "device_driver_framework:libhdf_utils", 380 "device_driver_framework:libhdi", 381 "display_device_driver:hdi_display_gralloc", 382 "graphic_standard:surface", 383 "hiviewdfx_hilog_native:libhilog", 384 "utils_base:utils", 385 ] 386 } else { 387 external_deps = [ "hilog:libhilog" ] 388 } 389 390 external_deps += [ 391 "ipc:ipc_single", 392 "samgr_standard:samgr_proxy", 393 ] 394 395 install_enable = true 396 install_images = [ chipset_base_dir ] 397 subsystem_name = "hdf" 398 part_name = "camera_device_driver" 399} 400 401ohos_fuzztest("IpcCameraHostCallback") { 402 module_out_path = module_output_path 403 cflags = [ 404 "-g", 405 "-O0", 406 "-Wno-unused-variable", 407 "-fno-omit-frame-pointer", 408 ] 409 sources = [ 410 "./ipc_camera_host_callback_fuzzer/ipc_camera_host_callback_fuzzer.cpp", 411 ] 412 413 include_dirs = [ 414 "./include", 415 "$camera_path/test/fuzz/ipc_camera_host_callback_fuzzer", 416 "$camera_path/../interfaces/include", 417 "$camera_path/../interfaces/hdi_ipc/utils/include", 418 "$camera_path/../interfaces/hdi_ipc/client/include", 419 "$camera_path/../interfaces/hdi_ipc/server/include", 420 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 421 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 422 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 423 "$camera_path/include", 424 "$camera_path/hdi_impl", 425 "$camera_path/hdi_impl/include", 426 "$camera_path/hdi_impl/include/camera_host", 427 "$camera_path/hdi_impl/include/camera_device", 428 "$camera_path/hdi_impl/include/stream_operator", 429 "$camera_path/hdi_impl/include/offline_stream_operator", 430 "$camera_path/device_manager/include/", 431 "$camera_path/device_manager/include/mpi", 432 "$camera_path/pipeline_core/utils", 433 "$camera_path/pipeline_core/pipeline_impl/include", 434 "$camera_path/pipeline_core/host_stream/include", 435 "$camera_path/pipeline_core/include", 436 "$camera_path/pipeline_core/ipp/include", 437 "$camera_path/pipeline_core/nodes/include", 438 "$camera_path/utils/event", 439 "//drivers/peripheral/camera/interfaces/metadata/include", 440 ] 441 442 deps = [ 443 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 444 "$camera_path/buffer_manager:camera_buffer_manager", 445 "$camera_path/device_manager:camera_device_manager", 446 "$camera_path/hdi_impl:camera_hdi_impl", 447 "$camera_path/pipeline_core:camera_pipeline_core", 448 "//drivers/peripheral/camera/interfaces/metadata:metadata", 449 ] 450 451 if (is_standard_system) { 452 external_deps = [ 453 "device_driver_framework:libhdf_host", 454 "device_driver_framework:libhdf_ipc_adapter", 455 "device_driver_framework:libhdf_utils", 456 "device_driver_framework:libhdi", 457 "display_device_driver:hdi_display_gralloc", 458 "graphic_standard:surface", 459 "hiviewdfx_hilog_native:libhilog", 460 "utils_base:utils", 461 ] 462 } else { 463 external_deps = [ "hilog:libhilog" ] 464 } 465 466 external_deps += [ 467 "ipc:ipc_single", 468 "samgr_standard:samgr_proxy", 469 ] 470 471 install_enable = true 472 install_images = [ chipset_base_dir ] 473 subsystem_name = "hdf" 474 part_name = "camera_device_driver" 475} 476 477ohos_fuzztest("IpcStreamOperatorCallback") { 478 module_out_path = module_output_path 479 cflags = [ 480 "-g", 481 "-O0", 482 "-Wno-unused-variable", 483 "-fno-omit-frame-pointer", 484 ] 485 sources = [ "./ipc_stream_operator_callback_fuzzer/ipc_stream_operator_callback_fuzzer.cpp" ] 486 487 include_dirs = [ 488 "./include", 489 "$camera_path/test/fuzz/ipc_stream_operator_callback_fuzzer", 490 "$camera_path/../interfaces/include", 491 "$camera_path/../interfaces/hdi_ipc/utils/include", 492 "$camera_path/../interfaces/hdi_ipc/client/include", 493 "$camera_path/../interfaces/hdi_ipc/server/include", 494 "$camera_path/../interfaces/hdi_ipc/callback/host/include", 495 "$camera_path/../interfaces/hdi_ipc/callback/device/include", 496 "$camera_path/../interfaces/hdi_ipc/callback/operator/include", 497 "$camera_path/include", 498 "$camera_path/hdi_impl", 499 "$camera_path/hdi_impl/include", 500 "$camera_path/hdi_impl/include/camera_host", 501 "$camera_path/hdi_impl/include/camera_device", 502 "$camera_path/hdi_impl/include/stream_operator", 503 "$camera_path/hdi_impl/include/offline_stream_operator", 504 "$camera_path/device_manager/include/", 505 "$camera_path/device_manager/include/mpi", 506 "$camera_path/pipeline_core/utils", 507 "$camera_path/pipeline_core/pipeline_impl/include", 508 "$camera_path/pipeline_core/host_stream/include", 509 "$camera_path/pipeline_core/include", 510 "$camera_path/pipeline_core/ipp/include", 511 "$camera_path/pipeline_core/nodes/include", 512 "$camera_path/utils/event", 513 "//drivers/peripheral/camera/interfaces/metadata/include", 514 ] 515 516 deps = [ 517 "$camera_path/../interfaces/hdi_ipc/client:libcamera_client", 518 "$camera_path/buffer_manager:camera_buffer_manager", 519 "$camera_path/device_manager:camera_device_manager", 520 "$camera_path/hdi_impl:camera_hdi_impl", 521 "$camera_path/pipeline_core:camera_pipeline_core", 522 "//drivers/peripheral/camera/interfaces/metadata:metadata", 523 ] 524 525 if (is_standard_system) { 526 external_deps = [ 527 "device_driver_framework:libhdf_host", 528 "device_driver_framework:libhdf_ipc_adapter", 529 "device_driver_framework:libhdf_utils", 530 "device_driver_framework:libhdi", 531 "display_device_driver:hdi_display_gralloc", 532 "graphic_standard:surface", 533 "hiviewdfx_hilog_native:libhilog", 534 "utils_base:utils", 535 ] 536 } else { 537 external_deps = [ "hilog:libhilog" ] 538 } 539 540 external_deps += [ 541 "ipc:ipc_single", 542 "samgr_standard:samgr_proxy", 543 ] 544 545 install_enable = true 546 install_images = [ chipset_base_dir ] 547 subsystem_name = "hdf" 548 part_name = "camera_device_driver" 549} 550 551group("camera_hal_fuzztest") { 552 testonly = true 553 deps = [ 554 ":IpcCameraDeviceCallback", 555 ":IpcCameraDeviceRemote", 556 ":IpcCameraHostCallback", 557 ":IpcCameraHostService", 558 ":IpcOffline", 559 ":IpcStreamOperator", 560 ":IpcStreamOperatorCallback", 561 ] 562} 563