# Copyright (c) 2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("//build/config/features.gni")
import("//build/test.gni")
import("./../../usbmgr.gni")

config("usbsrv_private_config") {
  include_dirs = [ "${usb_manager_path}/interfaces/innerkits/native/include" ]
}

config("usbsrv_public_config") {
  include_dirs = [
    "${usb_manager_path}/services/native/include",
    "${usb_manager_path}/utils/native/include",
  ]
}

ohos_source_set("usbservice_source_set") {
  sanitize = {
    integer_overflow = true
    ubsan = true
    boundary_sanitize = true
    cfi = true
    cfi_cross_dso = true
    debug = false
  }
  branch_protector_ret = "pac_ret"

  sources = [
    "${utils_path}/native/src/usb_settings_datashare.cpp",
    "${usb_manager_path}/services/native/src/usb_security_report.cpp",
    "${usb_manager_path}/services/native/src/serial_manager.cpp",
    "${usb_manager_path}/services/native/src/usb_connection_notifier.cpp",
    "${usb_manager_path}/services/native/src/usb_report_sys_event.cpp",
    "${usb_manager_path}/services/native/src/usb_right_database.cpp",
    "${usb_manager_path}/services/native/src/usb_right_db_helper.cpp",
    "${usb_manager_path}/services/native/src/usb_right_manager.cpp",
    "${usb_manager_path}/services/native/src/usb_service.cpp",
    "${usb_manager_path}/services/native/src/usb_service_subscriber.cpp",
    "${usb_manager_path}/services/native/src/usb_timer_wraper.cpp",
  ]

  configs = [
    "${utils_path}:utils_config",
    ":usbsrv_private_config",
  ]

  public_configs = [ ":usbsrv_public_config" ]
  deps = [ "${usb_manager_path}/interfaces/innerkits:usb_server_stub" ]
  defines = []
  if (usb_manager_pass_through) {
    defines += [
      "USB_MANAGER_PASS_THROUGH",
      "USB_MANAGER_V2_0",
    ]
    sources += [ "${usb_manager_path}/services/native/src/usb_manager_subscriber.cpp" ]
  }
  if (usb_manager_feature_host) {
    defines += [ "USB_MANAGER_FEATURE_HOST" ]
    sources += [
      "${utils_path}/native/src/struct_parcel.cpp",
      "${usb_manager_path}/services/native/src/usb_descriptor_parser.cpp",
      "${usb_manager_path}/services/native/src/usb_host_manager.cpp",
      "${usb_manager_path}/services/native/src/usb_serial_reader.cpp",
      "${usb_manager_path}/services/native/src/usbd_bulkcallback_impl.cpp",
      "${usb_manager_path}/services/native/src/usbd_transfer_callback_impl.cpp",
    ]
    if (usb_manager_pass_through) {
      sources += [
        "${usb_manager_path}/services/native/src/usb_bulkcallback_impl.cpp",
        "${usb_manager_path}/services/native/src/usb_transfer_callback_impl.cpp",
      ]
    }
  }
  if (usb_manager_feature_device) {
    defines += [ "USB_MANAGER_FEATURE_DEVICE" ]
    sources += [
      "${usb_manager_path}/services/native/src/usb_accessory_manager.cpp",
      "${usb_manager_path}/services/native/src/usb_device_manager.cpp",
      "${usb_manager_path}/services/native/src/usb_function_switch_window.cpp",
    ]
  }
  if (usb_manager_feature_port) {
    defines += [ "USB_MANAGER_FEATURE_PORT" ]
    sources += [ "${usb_manager_path}/services/native/src/usb_port_manager.cpp" ]
  }

  external_deps = [
    "ability_base:base",
    "ability_base:want",
    "ability_runtime:ability_connect_callback_stub",
    "ability_runtime:ability_manager",
    "ability_runtime:wantagent_innerkits",
    "access_token:libaccesstoken_sdk",
    "access_token:libtokenid_sdk",
    "bundle_framework:appexecfwk_base",
    "bundle_framework:appexecfwk_core",
    "cJSON:cjson",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "distributed_notification_service:ans_innerkits",
    "drivers_interface_usb:libserial_proxy_1.0",
    "hilog:libhilog",
    "hisysevent:libhisysevent",
    "hitrace:hitrace_meter",
    "i18n:intl_util",
    "data_share:datashare_common",
    "data_share:datashare_consumer",
    "init:libbeget_proxy",
    "init:libbegetutil",
    "ipc:ipc_single",
    "memmgr:memmgrclient",
    "napi:ace_napi",
    "os_account:os_account_innerkits",
    "relational_store:native_rdb",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
    "hdf_core:libhdf_utils",
  ]

  if (usb_manager_peripheral_fault_notifier) {
     external_deps += [ "external_device_manager:driver_ext_mgr_client" ]
     defines += [ "USB_PERIPHERAL_FAULT_NOTIFY" ]
  }

  if (usb_manager_pass_through) {
    external_deps += [ 
      "drivers_interface_usb:libusb_proxy_2.0",
      "drivers_interface_usb:libusb_proxy_2.1"
    ]
  } else {
    external_deps += [
      "drivers_interface_usb:libusb_proxy_1.1",
      "drivers_interface_usb:libusb_proxy_1.2",
    ]
  }
  if (defined(global_parts_info) &&
      defined(global_parts_info.security_security_guard)) {
    external_deps += [ "security_guard:libsg_collect_sdk" ]
    defines += [ "SECURITY_GUARD_ENABLE" ]
  }

  if (usb_manager_feature_pop_up_func_switch_model) {
    defines += [ "USB_FUNC_SWITCH_MODE" ]
  }
  subsystem_name = "usb"
  part_name = "usb_manager"
}

module_output_path = "usb_manager/usb_manager"
module_output_path_parallelize = "usb_manager/usb_manager/concurrent"

config("module_private_config") {
  visibility = [ ":*" ]

  configs = [ 
    "${utils_path}:utils_config",
    ":usbsrv_public_config",
  ]

  cflags = [
    "-g",
    "-O0",
    "-Wno-unused-variable",
    "-fno-omit-frame-pointer",
    "-Dprivate=public",
    "-Dprotected=public",
  ]
  include_dirs = [
    "include",
    "common/include",
    "${usb_manager_path}/test/common/include/",
    "${usb_manager_path}/test/native/service_unittest/include/",
  ]
}

ohos_fuzztest("UsbMgrRequestRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrrequestright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrrequestright_fuzzer/usbmgrrequestright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrParseConfigDescriptorsFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgr_parseconfigdescriptors_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrparseconfigdescriptors_fuzzer\usbmgrparseconfigdescriptors_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrHasRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrhasright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrhasright_fuzzer/usbmgrhasright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRemoveRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrremoveright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrremoveright_fuzzer/usbmgrremoveright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetSupportedModesFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetsupportedmodes_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrgetsupportedmodes_fuzzer/usbmgrgetsupportedmodes_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSetPortRoleFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrsetportrole_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrsetportrole_fuzzer/usbmgrsetportrole_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetPortsFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetports_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrgetports_fuzzer/usbmgrgetports_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSetCurrentFunctionsFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrsetcurrentfunctions_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [
    "usbmgrsetcurrentfunctions_fuzzer/usbmgrsetcurrentfunctions_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrUsbFunctionsFromStringFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrusbfunctionsfromstring_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrusbfunctionsfromstring_fuzzer/usbmgrusbfunctionsfromstring_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrUsbFunctionsToStringFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrusbfunctionstostring_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [
    "usbmgrusbfunctionstostring_fuzzer/usbmgrusbfunctionstostring_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrClaimInterfaceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrclaiminterface_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrclaiminterface_fuzzer/usbmgrclaiminterface_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrReleaseInterfaceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrreleaseinterface_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrreleaseinterface_fuzzer/usbmgrreleaseinterface_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrResetDeviceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrresetdevice_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrresetdevice_fuzzer/usbmgrresetdevice_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrClearHaltFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrclearhalt_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [ "usbmgrclearhalt_fuzzer/usbmgrclearhalt_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrAttachKernelDriverFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrattachkerneldriver_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]
  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]
  external_deps = [
    "ability_base:want",
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
    "selinux_adapter:librestorecon",
  ]

  sources =
      [ "usbmgrattachkerneldriver_fuzzer/usbmgrattachkerneldriver_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrDetachKernelDriverFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrdetachkerneldriver_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]
  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]
  external_deps = [
    "ability_base:want",
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
    "selinux_adapter:librestorecon",
  ]

  sources =
      [ "usbmgrdetachkerneldriver_fuzzer/usbmgrdetachkerneldriver_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrBulkTransferFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrbulktransfer_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrbulktransfer_fuzzer/usbmgrbulktransfer_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrBulkTransferWriteFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrbulktransferwrite_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrbulktransferwrite_fuzzer/usbmgrbulktransferwrite_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrControlTransferFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrcontroltransfer_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrcontroltransfer_fuzzer/usbmgrcontroltransfer_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSetConfigurationFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrsetconfiguration_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrsetconfiguration_fuzzer/usbmgrsetconfiguration_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSetInterfaceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrsetinterface_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrsetinterface_fuzzer/usbmgrsetinterface_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetRawDescriptorsFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetrawdescriptors_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrgetrawdescriptors_fuzzer/usbmgrgetrawdescriptors_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetFileDescriptorFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetfiledescriptor_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrgetfiledescriptor_fuzzer/usbmgrgetfiledescriptor_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrCloseFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrclose_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrclose_fuzzer/usbmgrclose_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrParallelizeFuzzTest") {
  module_out_path = module_output_path_parallelize

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrparallelize_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrparallelize_fuzzer/usbmgrparallelize_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrPipeRequestWaitFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrpiperequestwait_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrpiperequestwait_fuzzer/usbmgrpiperequestwait_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrPrivateGetTransferTypeStringFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrprivategettransfertypestring_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    ":usbservice_source_set",
  ]

  if (defined(defines)) {
    defines += [ "private=public" ]
  } else {
    defines = [ "private=public" ]
  }

  defines += [ "USB_MANAGER_FEATURE_HOST" ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrprivategettransfertypestring_fuzzer/usbmgrprivategettransfertypestring_fuzzer.cpp" ]
}
  
ohos_fuzztest("UsbMgrPrivateSetPhyConnectFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrprivatesetphyconnect_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    ":usbservice_source_set",
  ]

  if (defined(defines)) {
    defines += [ "private=public" ]
  } else {
    defines = [ "private=public" ]
  }

  defines += [ "USB_MANAGER_FEATURE_DEVICE" ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrprivatesetphyconnect_fuzzer/usbmgrprivatesetphyconnect_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrPrivateFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrprivate_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    ":usbservice_source_set",
  ]

  if (defined(defines)) {
    defines += [ "private=public" ]
  } else {
    defines = [ "private=public" ]
  }

  defines += [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
    "USB_MANAGER_PASS_THROUGH",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "memmgr:memmgrclient",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrprivate_fuzzer/usbmgrprivate_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRequestInitializeFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrrequestinitialize_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrrequestinitialize_fuzzer/usbmgrrequestinitialize_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRequestQueueFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrrequestqueue_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrrequestqueue_fuzzer/usbmgrrequestqueue_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRequestFreeFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrrequestfree_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrrequestfree_fuzzer/usbmgrrequestfree_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRegBulkCallbackFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrregbulkcallback_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [
    "common/src/usb_common_fuzz.cpp",
    "usbmgrregbulkcallback_fuzzer/usbmgrregbulkcallback_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrUnRegBulkCallbackFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrunregbulkcallback_fuzzer"

  configs = [
    "${utils_path}:utils_config",
    ":module_private_config",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.0",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [
    "${usb_manager_path}/test/common/src/usb_callback_test.cpp",
    "common/src/usb_common_fuzz.cpp",
    "usbmgrunregbulkcallback_fuzzer/usbmgrunregbulkcallback_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrBulkReadFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrbulkread_fuzzer"

  configs = [
    "${utils_path}:utils_config",
    ":module_private_config",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.0",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [
    "${usb_manager_path}/test/common/src/usb_callback_test.cpp",
    "common/src/usb_common_fuzz.cpp",
    "usbmgrbulkread_fuzzer/usbmgrbulkread_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrBulkWriteFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrbulkwrite_fuzzer"

  configs = [
    "${utils_path}:utils_config",
    ":module_private_config",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.0",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [
    "${usb_manager_path}/test/common/src/usb_callback_test.cpp",
    "common/src/usb_common_fuzz.cpp",
    "usbmgrbulkwrite_fuzzer/usbmgrbulkwrite_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrBulkCancelFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrbulkcancel_fuzzer"

  configs = [
    "${utils_path}:utils_config",
    ":module_private_config",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.0",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [
    "${usb_manager_path}/test/common/src/usb_callback_test.cpp",
    "common/src/usb_common_fuzz.cpp",
    "usbmgrbulkcancel_fuzzer/usbmgrbulkcancel_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgr_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgr_fuzzer/usbmgr_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrExFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = "${usb_manager_path}/test/fuzztest/usbmgrex_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]
  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]
  external_deps = [
    "ability_base:want",
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrex_fuzzer/usbmgrex_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrManageGlobalInterfaceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrmanageglobalinterface_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [
    "usbmgrmanageglobalinterface_fuzzer/usbmgrmanageglobalinterface_fuzzer.cpp",
  ]
}
ohos_fuzztest("UsbMgrManageDeviceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrmanagedevice_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrmanagedevice_fuzzer/usbmgrmanagedevice_fuzzer.cpp" ]
}
ohos_fuzztest("UsbMgrManageDevicePolicyFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrmanagedevicepolicy_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
    "selinux_adapter:librestorecon",
  ]

  sources = [
    "../native/service_unittest/src/usb_common_test.cpp",
    "usbmgrmanagedevicepolicy_fuzzer/usbmgrmanagedevicepolicy_fuzzer.cpp"
  ]
}
ohos_fuzztest("UsbMgrManageManageInterfaceTypeFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrmanageinterfacetype_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [
    "usbmgrmanageinterfacetype_fuzzer/usbmgrmanageinterfacetype_fuzzer.cpp",
  ]
}
ohos_fuzztest("UsbMgrGetDeviceSpeedFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetdevicespeed_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrgetdevicespeed_fuzzer/usbmgrgetdevicespeed_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetCurrentFunctionsFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetcurrentfunctions_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrgetcurrentfunctions_fuzzer/usbmgrgetcurrentfunctions_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetInterfaceStatusFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetinterfacestatus_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrgetinterfacestatus_fuzzer/usbmgrgetinterfacestatus_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrUsbControlTransferFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrusbcontroltransfer_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources =
      [ "usbmgrusbcontroltransfer_fuzzer/usbmgrusbcontroltransfer_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSubmitTransferFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrsubmittransfer_fuzzer"

  configs = [
    "${utils_path}:utils_config",
    ":module_private_config",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.0",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [
    "${usb_manager_path}/test/common/src/usb_callback_test.cpp",
    "common/src/usb_common_fuzz.cpp",
    "usbmgrsubmittransfer_fuzzer/usbmgrsubmittransfer_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrCancelTransferFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrcanceltransfer_fuzzer"

  configs = [
    "${utils_path}:utils_config",
    ":module_private_config",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_base:want",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "bundle_framework:appexecfwk_base",
    "c_utils:utils",
    "common_event_service:cesfwk_innerkits",
    "drivers_interface_usb:libusb_proxy_1.0",
    "eventhandler:libeventhandler",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "samgr:samgr_proxy",
  ]

  sources = [
    "${usb_manager_path}/test/common/src/usb_callback_test.cpp",
    "common/src/usb_common_fuzz.cpp",
    "usbmgrcanceltransfer_fuzzer/usbmgrcanceltransfer_fuzzer.cpp",
  ]
}

ohos_fuzztest("UsbMgrAddSerialRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file = 
      "${usb_manager_path}/test/fuzztest/usbmgraddserialright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgraddserialright_fuzzer/usbmgraddserialright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrCancelSerialRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrcancelserialright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrcancelserialright_fuzzer/usbmgrcancelserialright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrHasSerialRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrhasserialright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrhasserialright_fuzzer/usbmgrhasserialright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRequestSerialRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrrequestserialright_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrrequestserialright_fuzzer/usbmgrrequestserialright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialCloseFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialclose_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrserialclose_fuzzer/usbmgrserialclose_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialGetAttributeFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialgetattribute_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrserialgetattribute_fuzzer/usbmgrserialgetattribute_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialGetPortListFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialgetportlist_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrserialgetportlist_fuzzer/usbmgrserialgetportlist_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialOpenFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialopen_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrserialopen_fuzzer/usbmgrserialopen_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialReadFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialread_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrserialread_fuzzer/usbmgrserialread_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialSetAttributeFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialsetattribute_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrserialsetattribute_fuzzer/usbmgrserialsetattribute_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrSerialWriteFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrserialwrite_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  sources = [ "usbmgrserialwrite_fuzzer/usbmgrserialwrite_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrOpenDeviceFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgropendevice_fuzzer"

  configs = [ ":module_private_config" ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]
  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgropendevice_fuzzer/usbmgropendevice_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrAddRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgraddright_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgraddright_fuzzer/usbmgraddright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrAddAccessoryRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgraddaccessoryright_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgraddaccessoryright_fuzzer/usbmgraddaccessoryright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrHasAccessoryRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrhasaccessoryright_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrhasaccessoryright_fuzzer/usbmgrhasaccessoryright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrRequestAccessoryRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrrequestaccessoryright_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrrequestaccessoryright_fuzzer/usbmgrrequestaccessoryright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrCancelAccessoryRightFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrcancelaccessoryright_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrcancelaccessoryright_fuzzer/usbmgrcancelaccessoryright_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrGetAccessoryListFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrgetaccessorylist_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrgetaccessorylist_fuzzer/usbmgrgetaccessorylist_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrOpenAccessoryFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgropenaccessory_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgropenaccessory_fuzzer/usbmgropenaccessory_fuzzer.cpp" ]
}

ohos_fuzztest("UsbMgrCloseAccessoryFuzzTest") {
  module_out_path = module_output_path

  fuzz_config_file =
      "${usb_manager_path}/test/fuzztest/usbmgrcloseaccessory_fuzzer"

  configs = [ ":module_private_config" ]

  defines = [
    "USB_MANAGER_FEATURE_HOST",
    "USB_MANAGER_FEATURE_DEVICE",
    "USB_MANAGER_FEATURE_PORT",
  ]

  deps = [
    "${usb_manager_path}/interfaces/innerkits:usbsrv_client",
    "${usb_manager_path}/services:usbservice",
  ]

  external_deps = [
    "ability_runtime:ability_manager",
    "access_token:libaccesstoken_sdk",
    "access_token:libnativetoken",
    "access_token:libtoken_setproc",
    "c_utils:utils",
    "drivers_interface_usb:libusb_proxy_1.0",
    "drivers_interface_usb:libusb_proxy_1.2",
    "drivers_interface_usb:usb_idl_headers_1.2",
    "hilog:libhilog",
    "ipc:ipc_core",
    "safwk:system_ability_fwk",
    "selinux_adapter:librestorecon",
  ]

  sources = [ "usbmgrcloseaccessory_fuzzer/usbmgrcloseaccessory_fuzzer.cpp" ]
}

group("fuzztest") {
  testonly = true
  deps = []
  if (usb_manager_feature_host) {
    deps += [
      ":UsbMgrAddRightFuzzTest",
      ":UsbMgrAddSerialRightFuzzTest",
      ":UsbMgrAttachKernelDriverFuzzTest",
      ":UsbMgrBulkCancelFuzzTest",
      ":UsbMgrBulkReadFuzzTest",
      ":UsbMgrBulkTransferFuzzTest",
      ":UsbMgrBulkTransferWriteFuzzTest",
      ":UsbMgrBulkWriteFuzzTest",
      ":UsbMgrCancelSerialRightFuzzTest",
      ":UsbMgrCancelTransferFuzzTest",
      ":UsbMgrClaimInterfaceFuzzTest",
      ":UsbMgrClearHaltFuzzTest",
      ":UsbMgrCloseFuzzTest",
      ":UsbMgrControlTransferFuzzTest",
      ":UsbMgrDetachKernelDriverFuzzTest",
      ":UsbMgrExFuzzTest",
      ":UsbMgrFuzzTest",
      ":UsbMgrGetDeviceSpeedFuzzTest",
      ":UsbMgrGetCurrentFunctionsFuzzTest",
      ":UsbMgrGetFileDescriptorFuzzTest",
      ":UsbMgrGetInterfaceStatusFuzzTest",
      ":UsbMgrGetRawDescriptorsFuzzTest",
      ":UsbMgrHasRightFuzzTest",
      ":UsbMgrHasSerialRightFuzzTest",
      ":UsbMgrManageDeviceFuzzTest",
      ":UsbMgrManageDevicePolicyFuzzTest",
      ":UsbMgrManageGlobalInterfaceFuzzTest",
      ":UsbMgrManageManageInterfaceTypeFuzzTest",
      ":UsbMgrOpenDeviceFuzzTest",
      ":UsbMgrParallelizeFuzzTest",
      ":UsbMgrPipeRequestWaitFuzzTest",
      ":UsbMgrPrivateFuzzTest",
      ":UsbMgrPrivateGetTransferTypeStringFuzzTest",
      ":UsbMgrRegBulkCallbackFuzzTest",
      ":UsbMgrReleaseInterfaceFuzzTest",
      ":UsbMgrRemoveRightFuzzTest",
      ":UsbMgrRequestFreeFuzzTest",
      ":UsbMgrRequestInitializeFuzzTest",
      ":UsbMgrRequestQueueFuzzTest",
      ":UsbMgrRequestRightFuzzTest",
      ":UsbMgrRequestSerialRightFuzzTest",
      ":UsbMgrResetDeviceFuzzTest",
      ":UsbMgrSerialCloseFuzzTest",
      ":UsbMgrSerialGetAttributeFuzzTest",
      ":UsbMgrSerialGetPortListFuzzTest",
      ":UsbMgrSerialOpenFuzzTest",
      ":UsbMgrSerialReadFuzzTest",
      ":UsbMgrSerialSetAttributeFuzzTest",
      ":UsbMgrSerialWriteFuzzTest",
      ":UsbMgrSetConfigurationFuzzTest",
      ":UsbMgrSetInterfaceFuzzTest",
      ":UsbMgrSubmitTransferFuzzTest",
      ":UsbMgrUnRegBulkCallbackFuzzTest",
      ":UsbMgrUsbControlTransferFuzzTest",
    ]
  }
  if (usb_manager_feature_device) {
    deps += [
      ":UsbMgrAddAccessoryRightFuzzTest",
      ":UsbMgrCancelAccessoryRightFuzzTest",
      ":UsbMgrCloseAccessoryFuzzTest",
      ":UsbMgrGetAccessoryListFuzzTest",
      ":UsbMgrHasAccessoryRightFuzzTest",
      ":UsbMgrOpenAccessoryFuzzTest",
      ":UsbMgrPrivateSetPhyConnectFuzzTest",
      ":UsbMgrRequestAccessoryRightFuzzTest",
      ":UsbMgrSetCurrentFunctionsFuzzTest",
      ":UsbMgrUsbFunctionsFromStringFuzzTest",
      ":UsbMgrUsbFunctionsToStringFuzzTest",
    ]
  }
  if (usb_manager_feature_port) {
    deps += [
      ":UsbMgrGetSupportedModesFuzzTest",
      ":UsbMgrSetPortRoleFuzzTest",
      ":UsbMgrGetPortsFuzzTest",
    ]
  }
}