# Copyright (c) 2022-2026 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("//foundation/filemanagement/storage_service/storage_service_aafwk.gni")

config("storage_daemon_fuzz_no_lto") {
  cflags = [ "-fno-lto" ]
  ldflags = [ "-fno-lto" ]
}

group("storage_manager_provider_fuzztest") {
  testonly = true
  deps = [
    "storagemanagerprovider_fuzzer:fuzztest",
    "storagemanagerprovidercompleteadduser_fuzzer:fuzztest",
    "storagemanagerprovidercreaterecoverkey_fuzzer:fuzztest",
    "storagemanagerprovidergenerateappkey_fuzzer:fuzztest",
    "storagemanagerprovidergetbundlestats_fuzzer:fuzztest",
    "storagemanagerprovidergetfileencryptstatus_fuzzer:fuzztest",
    "storagemanagerprovidergetfreesize_fuzzer:fuzztest",
    "storagemanagerprovidergetlockscreenstatus_fuzzer:fuzztest",
    "storagemanagerprovidergetsystemsize_fuzzer:fuzztest",
    "storagemanagerprovidergettotalsize_fuzzer:fuzztest",
    "storagemanagerprovidergetuserstoragestats_fuzzer:fuzztest",
    "storagemanagerprovidergetuserstoragestatswithuserid_fuzzer:fuzztest",
    "storagemanagerprovideradduser_fuzzer:fuzztest",
    "storagemanagerprovidergetcurrentbundle_fuzzer:fuzztest",
    "storagemanagerproviderremoveuser_fuzzer:fuzztest",
    "storagemanagerproviderresetsecretwithrecoverykey_fuzzer:fuzztest",
    "storagemanagerprovidersetrecoverkey_fuzzer:fuzztest",
    "storagemanagerprovidermountdfsdocs_fuzzer:fuzztest",
    "storagemanagerproviderstartuser_fuzzer:fuzztest",
    "storagemanagerproviderstopuser_fuzzer:fuzztest",
    "storagemanagerproviderupdateuseauthwithrecoverykey_fuzzer:fuzztest",
    "storagemanagerprovidermountmediafuse_fuzzer:fuzztest",
    "storagemanagerproviderumountmediafuse_fuzzer:fuzztest",
    "storagemanagerprovidersetextbundlestats_fuzzer:fuzztest",
    "storagemanagerprovidergetextbundlestats_fuzzer:fuzztest",
    "storagemanagerprovidererasealluserencryptedkeys_fuzzer:fuzztest",
    "storagemanagerprovidergetallextbundlestats_fuzzer:fuzztest",
    "storagemanagerprovidernotifycreatebundledatadirwithel_fuzzer:fuzztest",
    "storagemanagerproviderqueryactiveosaccountids_fuzzer:fuzztest",
    "storagemanagerproviderisosaccountexists_fuzzer:fuzztest",
    "storagemanagerprovidergetsystemdatasize_fuzzer:fuzztest",
    "storagemanagerprovidergettotalinodes_fuzzer:fuzztest",
    "storagemanagerprovidergetfreeinodes_fuzzer:fuzztest",
    "storagemanagerprovidergetcurrentbundleinodes_fuzzer:fuzztest",
    "storagemanagerprovidergetfreesizeofvolume_fuzzer:fuzztest",
    "storagemanagerprovidergettotalsizeofvolume_fuzzer:fuzztest",
    "storagemanagerproviderumountdissharefilevector_fuzzer:fuzztest",
  ]
}

group("storage_daemon_provider_fuzztest") {
  testonly = true
  deps = [
    "storagedaemonprovider_fuzzer:fuzztest",
    "storagedaemonprovidercheck_fuzzer:fuzztest",
    "storagedaemonprovidercreaterecoverkey_fuzzer:fuzztest",
    "storagedaemonprovidercreatesharefile_fuzzer:fuzztest",
    "storagedaemonproviderdeletesharefile_fuzzer:fuzztest",
    "storagedaemonproviderlockuserscreen_fuzzer:fuzztest",
    "storagedaemonprovidermountmediafuse_fuzzer:fuzztest",
    "storagedaemonprovidersetrecoverkey_fuzzer:fuzztest",
    "storagedaemonprovidershutdown_fuzzer:fuzztest",
    "storagedaemonproviderstartuser_fuzzer:fuzztest",
    "storagedaemonproviderstopuser_fuzzer:fuzztest",
    "storagedaemonproviderumountmediafuse_fuzzer:fuzztest",
    "storagedaemonproviderusermanager_fuzzer:fuzztest",
    "storagedaemonprovidersetbundlequota_fuzzer:fuzztest",
    "storagedaemonproviderupdateuserauth_fuzzer:fuzztest",
    "storagedaemonprovideractiveuserkey_fuzzer:fuzztest",
    "storagedaemonprovidererasealluserencryptedkeys_fuzzer:fuzztest",
    "storagedaemonprovidergetancosizedata_fuzzer:fuzztest",
    "storagedaemonprovidergetdirlistspace_fuzzer:fuzztest",
    "storagedaemonprovidersetstopscanflag_fuzzer:fuzztest",
    "storagedaemonprovidergetdirlistspacebypaths_fuzzer:fuzztest",
    "storagedaemonprovidergetsystemdatasize_fuzzer:fuzztest",
    "storagedaemonprovidercreateblockdevicenode_fuzzer:fuzztest",
    "storagedaemonproviderdestroyblockdevicenode_fuzzer:fuzztest",
    "storagedaemonprovidermountext_fuzzer:fuzztest",
  ]
}

group("storage_daemon_proxy_fuzztest") {
  testonly = true
  deps = [
    "storagedaemonproxyisfileoccupied_fuzzer:fuzztest",
    "storagedaemonproxyinactiveuserpublicdirkey_fuzzer:fuzztest",
    "storagedaemonproxymountdissharefile_fuzzer:fuzztest",
    "storagedaemonproxyqueryoccupiedspaceforsa_fuzzer:fuzztest",
    "storagedaemonproxyactiveuserkey_fuzzer:fuzztest",
    "storagedaemonproxycompleteadduser_fuzzer:fuzztest",
    "storagedaemonproxygenerateappkey_fuzzer:fuzztest",
    "storagedaemonproxyprepareuserdirs_fuzzer:fuzztest",
    "storagedaemonproxyshutdown_fuzzer:fuzztest",
    "storagedaemonproxystartuser_fuzzer:fuzztest",
    "storagedaemonproxyunlockuserscreen_fuzzer:fuzztest",
    "storagedaemonproxyupdatekeycontext_fuzzer:fuzztest",
    "storagedaemonproxyupdateuseauthwithrecoverykey_fuzzer:fuzztest",
    "storagedaemonproxyupdateuserauth_fuzzer:fuzztest",
    "storagedaemonproxycreaterecoverkey_fuzzer:fuzztest",
    "storagedaemonproxycreatesharefile_fuzzer:fuzztest",
    "storagedaemonproxygetfileencryptstatus_fuzzer:fuzztest",
    "storagedaemonproxymountdfsdocs_fuzzer:fuzztest",
    "storagedaemonproxysetbundlequota_fuzzer:fuzztest",
    "storagedaemonproxysetrecoverkey_fuzzer:fuzztest",
  ]
}

group("keycontrol_fuzztest") {
  testonly = true
  deps = [
    "keycontroladdkey_fuzzer:fuzztest",
    "keycontroladdkeyex_fuzzer:fuzztest",
    "keycontrolgetkeyringid_fuzzer:fuzztest",
    "keycontrolsearch_fuzzer:fuzztest",
    "keycontrolunlink_fuzzer:fuzztest",
    "keycontrolgetpolicy_fuzzer:fuzztest",
    "keycontrolgetfscryptversion_fuzzer:fuzztest",
    "keycontrolloadversion_fuzzer:fuzztest",
    "keyctrlgetkeystatus_fuzzer:fuzztest",
    "keyctrlgetpolicyex_fuzzer:fuzztest",
    "keyctrlinstallkey_fuzzer:fuzztest",
    "keyctrlremovekey_fuzzer:fuzztest",
    "keyctrlsetpolicy_fuzzer:fuzztest",
  ]
}

group("storage_daemon_provider_stub__fuzztest") {
  testonly = true
  deps = [
    "storagedaemonprovideronremoterequest_fuzzer:fuzztest",
    "storagedaemonproviderstubupdateuserauth_fuzzer:fuzztest",
    "storagedaemonproviderupdateuserauthwithrecoverykey_fuzzer:fuzztest",
    "storagedaemonproviderstubactiveuserkey_fuzzer:fuzztest"
  ]
}

group("storage_service_fuzztest") {
  testonly = true
  deps = [
    # deps file
    ":keycontrol_fuzztest",
    ":storage_daemon_provider_fuzztest",
    ":storage_daemon_proxy_fuzztest",
    ":storage_manager_provider_fuzztest",
    ":storage_daemon_provider_stub__fuzztest",
    "bundlestats_fuzzer:fuzztest",
    "statisticinfo_fuzzer:fuzztest",
    "extbundlestats_fuzzer:fuzztest",
    "fileutils_fuzzer:fuzztest",
    "fscryptutils_fuzzer:fuzztest",
    "keycontrol_fuzzer:fuzztest",
    "storagedaemonproxy_fuzzer:fuzztest",
    "storagedaemonstub_fuzzer:fuzztest",
    "storagemanagerstub_fuzzer:fuzztest",
    "storagestats_fuzzer:fuzztest",
    "storagestatusmanager_fuzzer:fuzztest",
    "stringutils_fuzzer:fuzztest",
    "sysparamdynamic_fuzzer:fuzztest",
    "sysparamstatic_fuzzer:fuzztest",
    "storagemanagerupdateuserauth_fuzzer:StorageManagerUpdateUserAuthFuzzTest",
    "storagemanageractiveuserkey_fuzzer:StorageManagerActiveUserKeyFuzzTest",
    "storagemanagerinactiveuserkey_fuzzer:StorageManagerInactiveUserKeyFuzzTest",
    "storagemanagerlockuserscreen_fuzzer:StorageManagerLockUserScreenFuzzTest",
    "storagemanagerunlockuserscreen_fuzzer:StorageManagerUnlockUserScreenFuzzTest",
    "storagemanagerupdatekeycontext_fuzzer:StorageManagerUpdateKeyContextFuzzTest",
    "storagemanagersetbundlequota_fuzzer:StorageManagerSetBundleQuotaFuzzTest",
    "storagemanagerdeleteappkey_fuzzer:StorageManagerDeleteAppkeyFuzzTest",
  ]
  if (support_open_source_libmtp) {
    deps += [
      "libmtpcheckcapability_fuzzer:fuzztest",
      "libmtpcheckspecificdevice_fuzzer:fuzztest",
      "libmtpclearerrorstack_fuzzer:fuzztest",
      "libmtpcreatefolder_fuzzer:fuzztest",
      "libmtpdeleteobject_fuzzer:fuzztest",
      "libmtpdetectrawdevices_fuzzer:fuzztest",
      "libmtpdumperrorstack_fuzzer:fuzztest",
      "libmtpgetfiletofile_fuzzer:fuzztest",
      "libmtpgetfilesandfolders_fuzzer:fuzztest",
      "libmtpgetpartialobject_fuzzer:fuzztest",
      "libmtpgetstorage_fuzzer:fuzztest",
      "libmtpopenrawdeviceuncached_fuzzer:fuzztest",
      "libmtpreleasedevice_fuzzer:fuzztest",
      "libmtpsendfilefromfile_fuzzer:fuzztest",
      "libmtpsendpartialobject_fuzzer:fuzztest",
      "libmtpsetfilename_fuzzer:fuzztest",
      "libmtpsetfoldername_fuzzer:fuzztest",
      "libmtpsetobjectstring_fuzzer:fuzztest",
      "libmtpsetobjectu32_fuzzer:fuzztest",
    ]
  }
}