# Copyright (c) 2021-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("//build/test.gni")
import("//build/config/components/memory_utils/purgeable_mem_config.gni")
import("//foundation/multimedia/image_framework/ide/image_decode_config.gni")

module_output_path = "image_framework/image_framework"
pixelmap_module_output_path = "graphic_2d/pixelmap"

ohos_unittest("pixelmaptest") {
  module_out_path = pixelmap_module_output_path

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "${image_subsystem}/frameworks/innerkitsimpl/egl_image/include",
  ]
  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/native_image_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/pixel_map_gl_transform_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/pixel_map_parcel_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/pixel_map_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/pixel_yuv_ext_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/pixelmap_native_test.cpp",
  ]

  deps = [
    "$image_subsystem/frameworks/kits/js/common/ndk:image_ndk",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_source",
    "$image_subsystem/frameworks/kits/js/common/pixelmap_ndk:pixelmap",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]
  if (!use_clang_android && !use_clang_ios) {
    deps +=
        [ "${image_subsystem}/frameworks/innerkitsimpl/egl_image:post_proc_gl" ]
  }
  external_deps = [
    "c_utils:utils",
    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
    "ffmpeg:libohosffmpeg",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "graphic_2d:libnative_color_space_manager",
    "graphic_surface:surface",
    "hilog:libhilog",
    "ipc:ipc_core",
    "resource_management:librawfile",
    "graphic_2d:GLESv3",
    "napi:ace_napi",
    "egl:libEGL",
    "opengles:libGLES",
  ]
  if (!use_clang_android && !use_clang_ios) {
    external_deps += [
      "graphic_2d:EGL",
      "skia:skia_canvaskit",
    ]
  }

  defines = []
  if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) &&
      defined(global_parts_info.resourceschedule_memmgr_override)) {
    defines += [ "IMAGE_PURGEABLE_PIXELMAP" ]
    external_deps += [ 
      "memmgr:libpurgeablemem_plugin",
      "memory_utils:libpurgeablemem"
    ]
  }

  if (defined(global_parts_info) &&
      defined(global_parts_info.open_source_libyuv)) {
    defines += [ "EXT_PIXEL" ]
  }

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("picturetest") {
  module_out_path = module_output_path

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprivate=public",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/picture_test/picture_test.cpp",
  ]

  deps = [
    "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
    "$image_subsystem/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]

  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("auxiliarypicturetest") {
  module_out_path = module_output_path

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/auxiliary_picture_test/auxiliary_picture_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/auxiliary_generator_test.cpp",
  ]

  deps = [
    "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
    "$image_subsystem/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]

  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("metadatatest") {
  module_out_path = module_output_path

  cflags = [
    "-Dprotected=public",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/metadata_test/metadata_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/blob_metadata_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("fragmentmetadatatest") {
  module_out_path = module_output_path

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/metadata_test/fragment_metadata_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
  ]
}

ohos_unittest("gifmetadatatest") {
  module_out_path = module_output_path

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/metadata_test/gif_metadata_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
  ]
}

ohos_unittest("xmpmetadatatest") {
  module_out_path = module_output_path

  defines = [
    "UNIX_ENV=1",
    "XMP_StaticBuild=1",
    "XMP_INCLUDE_XMPFILES=1",
    "TXMP_STRING_TYPE=std::string"
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/xmp/xmp_buffer_io.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/xmp/xmp_fd_io.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/xmp/xmp_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/metadata_test/xmp_metadata_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/xmp_helper_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/xmp_io_test.cpp",
  ]

  deps = [
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
    "${image_subsystem}/interfaces/kits/js/common:image_error_convert",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
    "xmp_toolkit_sdk:xmpsdk"
  ]
}

ohos_unittest("imagepixelmaptest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/adapter/frameworks/bitmapconverter/native/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include",
  ]
  cflags = [ "-DIMAGE_COLORSPACE_FLAG" ]
  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/image_packer_ex_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/image_pixel_map_switch_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/image_pixel_map_test.cpp",
  ]

  deps = [
    #    "//foundation/multimedia/image_framework/adapter/frameworks/bitmapconverter/native:bitmapconverter",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "ffmpeg:libohosffmpeg",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "ipc:ipc_single",
  ]
  if (use_clang_android || use_clang_ios) {
    external_deps -= [ "graphic_2d:color_manager" ]
  }
}

ohos_unittest("imagepixelmapparceltest") {
  module_out_path = module_output_path

  include_dirs =
      [ "//foundation/multimedia/image_framework/interfaces/innerkits/include" ]

  sources = [ "./unittest/pixel_map_test/image_pixel_map_parcel_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "hilog:libhilog",
    "hitrace:hitrace_meter",
    "ipc:ipc_core",

    #"//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]
}

ohos_unittest("imagesourcetest") {
  DUAL_ADAPTER = true
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/accessor/include",
    "$image_subsystem/frameworks/innerkitsimpl/converter/include",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/common/libs/image/libextplugin/include",
    "$image_subsystem/plugins/common/libs/image/libextplugin/include/hdr",
    "$image_subsystem/plugins/manager/include",
  ]
  cflags = [
    "-Dprivate=public",
    "-DIMAGE_COLORSPACE_FLAG",
  ]
  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_packer_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_ai_sr_hdr_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_exif_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_gif_ex_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_gif_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_jpeg_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_png_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_svg_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_util.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_xmp_test.cpp",

    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_webp_test.cpp",
    "$image_subsystem/plugins/common/libs/image/libextplugin/src/ext_stream.cpp",
    "$image_subsystem/plugins/common/libs/image/libextplugin/src/hdr/hdr_helper.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/hdr_helper_test.cpp",
    "$image_subsystem/plugins/common/libs/image/libextplugin/src/hdr/jpeg_mpf_parser.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/dng_exif_metadata_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/dng_sdk_info_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/dng_sdk_helper_test.cpp",
  ]

  if (enable_heif_hw_decode) {
    sources += [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_heif_test.cpp" ]
  }

  if (DUAL_ADAPTER) {
    sources += [
      "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_raw_test.cpp",
      "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_wbmp_test.cpp",
    ]
  }

  deps = [
    "$image_subsystem/plugins/common/libs/image/libextplugin:heifparser",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_display:display_commontype_idl_headers",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hilog:libhilog",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "zlib:libz",
    "skia:dng_sdk",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }

  if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) &&
      defined(global_parts_info.resourceschedule_memmgr_override)) {
    defines = [ "IMAGE_PURGEABLE_PIXELMAP" ]
    external_deps += [ 
      "memmgr:libpurgeablemem_plugin",
      "memory_utils:libpurgeablemem"
    ]
  }

  if (defined(global_parts_info) &&
      defined(global_parts_info.multimedia_video_processing_engine)) {
    if (defined(defines)) {
      defines += [ "IMAGE_VPE_FLAG" ]
    } else {
      defines = [ "IMAGE_VPE_FLAG" ]
    }
  }
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("jpegdecoderextest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/converter/include",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/common/libs/image/libjpegplugin/include",
    "$image_subsystem/plugins/manager/include",
  ]
  cflags = [
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprivate=public",
    "-Dprotected=public",
  ]
  sources = [
    "unittest/jpeg_decoder_ex_test.cpp",
    "unittest/jpeg_decoder_test.cpp",
  ]
  deps = [
    "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
    "$image_subsystem/interfaces/innerkits:image_native",
    "$image_subsystem/plugins/common/libs/image/libjpegplugin:jpegplugin",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "libexif:libexif",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "graphic_2d:color_manager",
    "ipc:ipc_single",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("jpegutilstest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/converter/include",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/common/libs/image/libjpegplugin/include",
    "$image_subsystem/plugins/manager/include",
  ]
  cflags = [ "-DIMAGE_COLORSPACE_FLAG" ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/jpeg_utils_test.cpp" ]
  deps = [
    "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
    "$image_subsystem/interfaces/innerkits:image_native",
    "$image_subsystem/plugins/common/libs/image/libjpegplugin:jpegplugin",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "hilog:libhilog",
    "libexif:libexif",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "ipc:ipc_single",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("format_agent_plugin_src_test") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/plugins/manager/include/image",
    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin/include",
    "//foundation/multimedia/image_framework/plugins/manager/include/utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
  ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/format_agent_plugin_src_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin:imageformatagent",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]

  external_deps = [
    "graphic_2d:color_manager",
    "hilog:libhilog",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("imageutilstest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "$image_subsystem/frameworks/innerkitsimpl/common/include",
  ]
  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/color_utils_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_utils_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_func_timer_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_handle_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_yuv_ext_utils_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/vpe_utils_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
    "ffmpeg:libohosffmpeg",
    "graphic_2d:color_manager",
    "graphic_surface:surface",

    #"hilog:libhilog",
    "hitrace:hitrace_meter",
  ]

  cflags = [
    "-Dprivate=public",
  ]

  defines = []
  if (defined(global_parts_info) &&
      defined(global_parts_info.open_source_libyuv)) {
    defines += [ "EXT_PIXEL" ]
  }
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("colorconvertertest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]
  sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/color_converter_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
  ]

  #  external_deps = [ "hilog:libhilog" ]
}

ohos_unittest("transformtest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]
  sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/image_transform_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  if (use_clang_android || use_clang_ios) {
    include_dirs -=
        [ "//base/hiviewdfx/hilog/interfaces/native/innerkits/include" ]
  }

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
  ]

  #  external_deps = [ "hilog:libhilog" ]
}

ohos_unittest("imagecolorspacetest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/converter/include",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/manager/include",
  ]

  cflags = [ "-DIMAGE_DEBUG_FLAG" ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_color_space_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_util.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "ipc:ipc_single",
  ]

  if (use_clang_android || use_clang_ios) {
    external_deps -= [ "graphic_2d:color_manager" ]
  }
}

ohos_unittest("interfacetest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/stream/src/incremental_source_stream.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/interface_test.cpp"
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]
}

ohos_unittest("formatagentplugintest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/common/include",
    "$image_subsystem/frameworks/innerkitsimpl/converter/include",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/common/libs/image/formatagentplugin/include",
    "$image_subsystem/plugins/manager/include",
  ]

  sources = [
    "unittest/plugin_test/format_agent_plugin_svg_test.cpp",
    "unittest/plugin_test/format_agent_plugin_test.cpp",
    "unittest/heif_format_agent_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin:imageformatagent",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  cflags = [
    "-fno-access-control",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "hilog:libhilog",
    "ipc:ipc_single",
  ]
}

ohos_unittest("attrdatatest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]

  sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/attr_data_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
  ]
}

ohos_unittest("platformadptest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/manager/include",
    "$image_subsystem/plugins/manager/src/common",
  ]

  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/platform_adp_test.cpp" ]

  deps = [ "$image_subsystem/plugins/manager:pluginmanager" ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
  ]
}

ohos_unittest("convertertest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/converter/src/post_proc_slr.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/basic_transformer_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/converter/src/post_proc.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/converter/src/scan_line_filter.cpp",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/matrix_test.cpp",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/pixel_convert_test.cpp",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/post_proc_test.cpp",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/scan_line_filter_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/egl_image:post_proc_gl",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
    "ffmpeg:libohosffmpeg",
    "ffrt:libffrt",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "graphic_2d:GLESv3",
    "graphic_surface:surface",
    "egl:libEGL",
    "opengles:libGLES",
  ]
}

ohos_unittest("gstpluginfwtest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/plugins/manager/src/thirdpartyadp/gstreamer",
  ]

  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/gst_plugin_fw_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
  ]
}

ohos_unittest("pixelconvertadaptertest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]

  sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/pixel_convert_adapter_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "ffmpeg:libohosffmpeg",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "ipc:ipc_single",
  ]
}

ohos_unittest("pluginsmanagersrcframeworktest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
    "//foundation/multimedia/image_framework/plugins/manager/include/utils",
    "//foundation/multimedia/image_framework/plugins/manager/src/common",
    "//foundation/multimedia/image_framework/plugins/manager/src/framework",
    "//foundation/multimedia/image_framework/plugins/manager/src/pluginbase",
    "//foundation/multimedia/image_framework/plugins/manager/src/framework",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/plugins_manager_src_framework_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/impl_class_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "json:nlohmann_json_static",
  ]
}

ohos_unittest("pngtest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libpngplugin/include",
    "$image_subsystem/plugins/common/libs/image/libsvgplugin/include",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/png_test/nine_path_listener_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/png_test/png_decoder_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/png_test/png_ninepatch_res_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/svg_decoder_test.cpp",
  ]

  deps = [
    "$image_subsystem/plugins/common/libs/image/libsvgplugin:svgplugin",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libpngplugin:pngplugin",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "libpng:libpng",
    "ipc:ipc_single",
  ]
}

ohos_unittest("receivertest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/converter/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
  ]

  sources = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/image_receiver_manager_test.cpp",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/image_receiver_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]
}

ohos_unittest("streamtest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/common/include",
    "$image_subsystem/frameworks/innerkitsimpl/converter/include",
    "$image_subsystem/frameworks/innerkitsimpl/stream/include",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/common/libs/image/formatagentplugin/include",
    "$image_subsystem/plugins/manager/include",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/stream/src/istream_source_stream.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/stream/src/ostream_packer_stream.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/stream_test/buffer_packer_stream_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/stream_test/buffer_source_stream_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/stream_test/file_source_stream_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/stream_test/incremental_source_stream_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/stream_test/istream_source_stream_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/stream_test/ostream_packer_stream_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/formatagentplugin:imageformatagent",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "ipc:ipc_single",
  ]
}

ohos_unittest("creatortest") {
  module_out_path = module_output_path

  include_dirs = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include" ]

  sources = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/image_creator_manager_test.cpp",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/image_creator_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]

  if (enable_heif_hw_decode) {
    defines = [ "HEIF_HW_DECODE_ENABLE" ]
  }
}

ohos_unittest("pluginlibjpegtest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/plugins/manager/include/image",
    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
  ]

  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/plugin_libjpeg_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libjpegplugin:jpegplugin",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager_static",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "hitrace:hitrace_meter",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "skia:skia_canvaskit",
    "ipc:ipc_single",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
}

ohos_unittest("rawdecodertest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/librawplugin/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/plugins/manager/include/image",
    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libwebpplugin/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
  ]

  sources = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/raw_decoder_test.cpp" ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/librawplugin:rawplugin",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "skia:piexm133",
    "ipc:ipc_single",
  ]
}

ohos_unittest("gifplugintest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "//foundation/multimedia/image_framework/plugins/manager/test/unittest/common/plugin_example/interface/vision",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter/include",
    "//foundation/multimedia/image_framework/plugins/manager/include",
    "//foundation/multimedia/image_framework/plugins/manager/include/image",
    "//foundation/multimedia/image_framework/plugins/manager/include/pluginbase",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libgifplugin/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/stream/include",
    "//foundation/multimedia/image_framework/adapter/frameworks/bitmapconverter/native/include",
  ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/gif_encoder_test.cpp" ]

  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libgifplugin:gifplugin",
    "//foundation/multimedia/image_framework/plugins/manager:pluginmanager",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "ipc:ipc_single",
  ]
}

ohos_unittest("ndktest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/kits/js/common/ndk/include",
    "/utils/include",
    "/interfaces/innerkits/include",
  ]
  sources = [
    "unittest/image_ndk_test.cpp",
    "unittest/image_packer_mdk_test.cpp",
    "unittest/ndk_test.cpp",
  ]

  deps = [
    "$image_subsystem/frameworks/kits/js/common/ndk:image_ndk",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_packer_ndk",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_receiver_ndk",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_source_ndk",
    "$image_subsystem/frameworks/kits/js/common/pixelmap_ndk:pixelmap_ndk",
  ]
  external_deps = [
    "googletest:gmock_main",
    "googletest:gtest_main",
  ]
}

ohos_unittest("ndktest2") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/kits/js/common/ndk/include",
    "$image_subsystem/frameworks/kits/js/common/picture_ndk/include",
    "/utils/include",
    "/interfaces/innerkits/include",
  ]
  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
    "unittest/image_common_ndk_test.cpp",
    "unittest/image_packer_native_ndk_test.cpp",
  ]

  if (enable_picture_ndk) {
    sources += [ "unittest/picture_native_ndk_test.cpp" ]
  }

  deps = [
    "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_ndk",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_packer",
    "$image_subsystem/frameworks/kits/js/common/ndk:image_source",
    "$image_subsystem/frameworks/kits/js/common/picture_ndk:image_common",
    "$image_subsystem/frameworks/kits/js/common/picture_ndk:picture",
    "$image_subsystem/frameworks/kits/js/common/pixelmap_ndk:pixelmap",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "graphic_2d:color_manager",
    "graphic_2d:libnative_color_space_manager",
    "graphic_surface:surface",
    "graphic_surface:surface",
    "hilog:libhilog",
    "napi:ace_napi",
    "napi:ark_interop",
    "resource_management:librawfile",
  ]

  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("napitest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/kits/js/common/include",
    "/utils/include",
    "/interfaces/innerkits/include",
  ]
  sources = [ "unittest/napi_test.cpp" ]

  deps = [ "$image_subsystem/interfaces/kits/js/common:image" ]

  external_deps = [
    "ipc:ipc_single",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "napi:ace_napi",
    "ipc:ipc_single",
  ]
}

ohos_unittest("jpeg_hw_decoder_test") {
  module_out_path = module_output_path

  if (is_ohos) {
    defines = [ "SK_ENABLE_OHOS_CODEC" ]
  }
  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/plugin_test/ext_decoder_test.cpp",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/src/ext_stream.cpp",
    "unittest/jpeg_hw_decode/common/mock_jpeg_hw_decode_flow.cpp",
    "unittest/jpeg_hw_decode/unittest/jpeg_hw_decoder_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/HeifDecoderImpl_test.cpp",
  ]

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/jpeg_hw_decode/common/",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/mock/",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/jpeg_yuv_decoder/",
    "${image_subsystem}/plugins/manager/include/",
    "${image_subsystem}/plugins/manager/include/pluginbase/",
    "${image_subsystem}/interfaces/innerkits/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:textureEncoderCL",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libimage_proxy_2.1",
    "drivers_interface_display:libdisplay_buffer_hdi_impl",
    "drivers_interface_display:libdisplay_buffer_proxy_1.0",
    "drivers_interface_display:libdisplay_composer_hdi_impl_1.3",
    "drivers_interface_display:libdisplay_composer_proxy_1.0",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hdf_core:libhdf_utils",
    "hdf_core:libhdi",
    "hilog:libhilog",
    "ipc:ipc_single",
    "libexif:libexif",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "skia:skia_canvaskit",
    "skia:piexm133",
  ]
  if (enable_heif_hw_decode) {
    defines += [ "HEIF_HW_DECODE_ENABLE" ]
    deps +=
        [ "${image_subsystem}/plugins/common/libs/image/libextplugin:heifimpl" ]
    external_deps += [
      "drivers_interface_codec:libcodec_proxy_4.0",
      "ffmpeg:libohosffmpeg",
      "ffrt:libffrt",
      "graphic_2d:color_manager",
      "hitrace:hitrace_meter",
      "init:libbegetutil",
      "ipc:ipc_core",
      "openmax:libopenmax_static",
      "qos_manager:qos",
    ]
  }
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  cflags = [
    "-Dprivate=public",
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprotected=public",
  ]

  if (enable_picture) {
    defines += [ "EXIF_INFO_ENABLE" ]
  }
}

ohos_unittest("heif_decode_impl_test") {
  module_out_path = module_output_path
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  include_dirs = [
    "include/heif_impl",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/heif_decode_impl_test.cpp",
  ]
  
  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifimpl"
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest_main"
  ]
}

ohos_unittest("heif_hw_encoder_test") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/heif_hw_encode",
  ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/heif_hw_encode/heif_hw_encoder_test.cpp" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hilog:libhilog",
    "zlib:libz",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("hispeed_image_manager_test") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/mock",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/plugins/manager/include",
  ]

  sources = [
    "unittest/hispeed_image_manager_test.cpp",
  ]

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  deps = [
    "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils",
    "$image_subsystem/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "hilog:libhilog",
    "skia:skia_canvaskit",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("heif_parser_test") {
  module_out_path = module_output_path

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/heif_parser_box_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/heif_parser_test.cpp",
  ]

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include/",
    "${image_subsystem}/interfaces/innerkits/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/box/",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:textureEncoderCL",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libcodec_proxy_4.0",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hdf_core:libhdi",
    "hilog:libhilog",
    "hitrace:hitrace_meter",
    "init:libbegetutil",
    "ipc:ipc_core",
    "openmax:libopenmax_static",
    "qos_manager:qos",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("pixelastctest") {
  module_out_path = module_output_path

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/converter/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/plugins/manager/include",
  ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/pixel_map_test/astc/pixel_astc_test.cpp" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "ffmpeg:libohosffmpeg",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]

  if (memory_utils_purgeable_ashmem_enable && defined(global_parts_info) &&
      defined(global_parts_info.resourceschedule_memmgr_override)) {
    defines = [ "IMAGE_PURGEABLE_PIXELMAP" ]
    external_deps += [ 
      "memmgr:libpurgeablemem_plugin",
      "memory_utils:libpurgeablemem"
    ]
  }

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("textureencodetest") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/texture_encode",
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/frameworks/innerkitsimpl/stream/include",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest",
  ]
  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_source_test/image_source_util.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/pixel_map_test/astc/plugin_texture_encode_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/pixel_map_test/ext_pixel_convert_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/stream_test/ext_stream_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/plugins/manager:pluginmanager",
  ]

  defines = []
  if (defined(global_parts_info) &&
      defined(global_parts_info.open_source_libyuv)) {
    defines += [ "ENABLE_ASTC_ENCODE_BASED_GPU" ]
    deps += [ "${image_subsystem}/plugins/common/libs/image/libextplugin:textureEncoderCL" ]
  }

  if (defined(global_parts_info) &&
      defined(global_parts_info.graphic_graphic_2d_ext)) {
    defines += [ "ASTC_CUSTOMIZED_ENABLE" ]
    defines += [ "SUT_ENCODE_ENABLE" ]
  }

  external_deps = [
    "astc-encoder:astc_encoder_shared",
    "c_utils:utils",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "hisysevent:libhisysevent",
    "libjpeg-turbo:turbojpeg",
    "opencl-headers:libcl",
    "skia:skia_canvaskit",
    "ipc:ipc_single",
  ]

  cflags = [
    "-fno-access-control",
  ]
}

ohos_unittest("eglimagetest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/egl_image/include",
    "$image_subsystem/interfaces/innerkits/include",
  ]
  sources = [ "unittest/pixel_map_test/egl/egl_image_test.cpp" ]

  deps = [ "$image_subsystem/frameworks/innerkitsimpl/egl_image:egl_image" ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:EGL",
    "graphic_2d:GLESv3",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "hilog:libhilog",
    "egl:libEGL",
    "opengles:libGLES",
  ]
}

ohos_unittest("eglimagetest2") {
  module_out_path = module_output_path

  defines = [
    "SK_SUPPORT_GPU=1",
    "GR_TEST_UTILS=1",
    "SK_GL=1",
  ]
  if (image_use_new_skia) {
    defines += [ "USE_M133_SKIA" ]
  }

  include_dirs = [
    "$image_subsystem/frameworks/innerkitsimpl/egl_image/include",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
    "$image_subsystem/interfaces/innerkits/include",
  ]
  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/egl_image/src/pixel_map_gl_context.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/egl_image/src/pixel_map_gl_post_proc_program.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/egl_image/src/pixel_map_gl_shader.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/egl_image/src/pixel_map_program_manager.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/utils/src/image_trace.cpp",
    "unittest/pixel_map_test/egl/egl_image_helper_test.cpp",
    "unittest/pixel_map_test/egl/egl_image_test2.cpp",
  ]

  deps = [ "$image_subsystem/frameworks/innerkitsimpl/egl_image:egl_image" ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:EGL",
    "graphic_2d:GLESv3",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "graphic_surface:sync_fence",
    "hilog:libhilog",
    "hitrace:hitrace_meter",
    "ipc:ipc_single",
    "skia:skia_canvaskit",
    "egl:libEGL",
    "opengles:libGLES",
  ]
}

ohos_unittest("jpgyuvtest") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/common/include",
    "${image_subsystem}/frameworks/innerkitsimpl/converter/include",
    "${image_subsystem}/frameworks/innerkitsimpl/stream/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/plugins/common/libs/image/formatagentplugin/include",
    "${image_subsystem}/plugins/manager/include",
  ]

  sources = [ "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/jpg_yuv_test.cpp" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/formatagentplugin:imageformatagent",
    "${image_subsystem}/plugins/manager:pluginmanager",
  ]
  cflags = [ "-DIMAGE_COLORSPACE_FLAG" ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "ipc:ipc_single",
  ]
}

ohos_unittest("heifyuvtest") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/common/include",
    "${image_subsystem}/frameworks/innerkitsimpl/converter/include",
    "${image_subsystem}/frameworks/innerkitsimpl/stream/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/plugins/common/libs/image/formatagentplugin/include",
    "${image_subsystem}/plugins/manager/include",
  ]

  sources = [ "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/heif_yuv_test.cpp" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/formatagentplugin:imageformatagent",
    "${image_subsystem}/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest",
    "ipc:ipc_single",
  ]
}

ohos_unittest("jpeg_yuv_decoder_test") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/common/include",
    "${image_subsystem}/frameworks/innerkitsimpl/converter/include",
    "${image_subsystem}/frameworks/innerkitsimpl/stream/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/jpeg_yuv_decoder",
    "${image_subsystem}/plugins/manager/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/jpeg_yuv_decoder/jpeg_yuv_decoder_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/jpeg_decoder_yuv_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/jpeg_yuv_decoder/jpeg_yuvdata_converter_test.cpp",
  ]

  cflags = [ "-Dprotected=public" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/plugins/manager:pluginmanager",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "googletest:gtest_main",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "ipc:ipc_single",
  ]
}

ohos_unittest("imagestreamtest") {
  module_out_path = module_output_path

  include_dirs = [ "${image_subsystem}/interfaces/innerkits/include" ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/data_buf.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/file_metadata_stream.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_source_test/data_buf_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_source_test/metadata_stream_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock",
    "googletest:gtest",
    "hilog:libhilog",
  ]
}

ohos_unittest("imageaccessortest") {
  module_out_path = module_output_path

  defines = [
    "UNIX_ENV=1",
    "XMP_StaticBuild=1",
    "XMP_INCLUDE_XMPFILES=1",
    "TXMP_STRING_TYPE=std::string"
  ]

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include/xmp",
    "${image_subsystem}/interfaces/innerkits/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/abstract_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/dng_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/heif_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/jpeg_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/png_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/png_image_chunk_utils_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/webp_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/xmp_metadata_accessor_test/xmpsdk_xmp_metadata_accessor_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  cflags = [
    "-fno-access-control",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
    "zlib:libz",
    "skia:dng_sdk",
    "xmp_toolkit_sdk:xmpsdk",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
  if (has_libtiff) {
    defines += [ "SUPPORT_LIBTIFF" ]
    sources += [
      "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/tiff_exif_metadata_test.cpp",
    ]
    external_deps += [ "libtiff:libtiff" ]
  }
}

ohos_unittest("imagetiffparsertest") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/exif_metadata_formatter_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/tiff_parser_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
}

ohos_unittest("creatormocktest") {
  module_out_path = module_output_path

  include_dirs = [ "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/creator/include" ]

  sources = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/test/unittest/image_creator_mock_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]

  if (enable_heif_hw_decode) {
    defines = [ "HEIF_HW_DECODE_ENABLE" ]
  }
}

ohos_unittest("exifmetadatatest") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include",
    "${image_subsystem}/interfaces/innerkits/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/exif_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/tiff_parser.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/exif_metadata_accessor_test/exif_metadata_test.cpp",
  ]

  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
}

ohos_unittest("image_native_test") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl",
    "${image_subsystem}/frameworks/kits/native/common/ndk/include",
    "${image_subsystem}/frameworks/kits/js/common/include",
    "${image_subsystem}/interfaces/kits/native/include/image",
  ]

  sources = [ "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_native_test.cpp" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/frameworks/kits/native/common/ndk:image_receiver",
    "${image_subsystem}/frameworks/kits/native/common/ndk:ohimage",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
    "googletest:gtest_main",
    "googletest:gtest",
    "graphic_surface:surface",
    "graphic_2d:libnative_color_space_manager",
  ]
}

ohos_unittest("image_receiver_native_test") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl",
    "${image_subsystem}/frameworks/kits/native/common/ndk/include",
    "${image_subsystem}/frameworks/kits/js/common/include",
    "${image_subsystem}/interfaces/kits/native/include/image",
  ]

  sources = [ "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_receiver_native_test.cpp" ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/frameworks/kits/native/common/ndk:image_receiver",
    "${image_subsystem}/frameworks/kits/native/common/ndk:ohimage",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "googletest:gtest_main",
    "graphic_surface:surface",
  ]
}

ohos_unittest("datastatisticstest") {
  module_out_path = module_output_path

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
    "-fno-access-control",
  ]

  include_dirs = [ "$image_subsystem/frameworks/innerkitsimpl/utils/include" ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_data_statistics_test.cpp" ]

  deps = [ "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils" ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "hilog:libhilog",
    "ipc:ipc_core",
  ]
}

ohos_unittest("imageeventtest") {
  module_out_path = module_output_path

  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
  ]

  include_dirs = [ "$image_subsystem/frameworks/innerkitsimpl/utils/include" ]
  sources = [ "$image_subsystem/frameworks/innerkitsimpl/test/unittest/image_event_test.cpp" ]

  deps = [ "$image_subsystem/frameworks/innerkitsimpl/utils:image_utils" ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "hilog:libhilog",
    "hisysevent:libhisysevent",
    "ipc:ipc_core",
  ]
}

ohos_unittest("imageformatconverttest") {
  module_out_path = module_output_path
  cflags = [
    "-DIMAGE_DEBUG_FLAG",
    "-DIMAGE_COLORSPACE_FLAG",
  ]
  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/common/include",
    "${image_subsystem}/frameworks/innerkitsimpl/converter/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/plugins/manager/include",
    "${image_subsystem}/frameworks/innerkitsimpl/common/include",
    "${image_subsystem}/interfaces/innerkits/include",
  ]
  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_format_convert_test.cpp",
  ]
  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/plugins/manager:pluginmanager",
  ]
  external_deps = [
    "c_utils:utils",
    "ffmpeg:libohosffmpeg",
    "googletest:gmock_main",
    "googletest:gtest",
    "graphic_2d:color_manager",
    "hilog:libhilog",
    "ipc:ipc_core",
    "graphic_surface:surface",
  ]
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("image_cj_test") {
  module_out_path = module_output_path

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cj/image_ffi_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cj/image_impl_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cj/image_receiver_impl_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cj/image_source_impl_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/kits/cj:cj_image_ffi",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "napi:ace_napi",
    "napi:cj_bind_ffi",
    "napi:cj_bind_native",
  ]
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("picture_ext_test") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/kits/js/common/picture_ndk/include",
    "${image_subsystem}/frameworks/kits/js/common/ndk/include",
    "${image_subsystem}/interfaces/kits/native/include/image",
    "${image_subsystem}/interfaces/innerkits/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_source_native_ndk_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/picture_ext_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/frameworks/kits/js/common/ndk:image_packer",
    "${image_subsystem}/frameworks/kits/js/common/ndk:image_source",
    "${image_subsystem}/frameworks/kits/js/common/picture_ndk:image_common",
    "${image_subsystem}/frameworks/kits/js/common/picture_ndk:picture",
    "${image_subsystem}/frameworks/kits/js/common/pixelmap_ndk:pixelmap",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gmock_main",
    "googletest:gtest_main",
    "graphic_2d:color_space_object_convertor",
    "graphic_2d:libnative_color_space_manager",
    "graphic_surface:surface",
    "napi:ace_napi",
    "resource_management:librawfile",
  ]
  if (enable_libexif) {
    external_deps += [ "libexif:libexif" ]
  }
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("cr3_parser_test"){
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include/",
    "${image_subsystem}/interfaces/innerkits/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/box/",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include/",
    "${image_subsystem}/plugins/common/libs/image/formatagentplugin/include/",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cr3_box_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cr3_parser_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/heif_exif_metadata_accessor_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/buffer_metadata_stream.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/cr3_format_agent_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/heif_stream.test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/formatagentplugin:imageformatagent",
    "${image_subsystem}/frameworks/innerkitsimpl/accessor:image_accessor",
  ]

  cflags = [
    "-fno-access-control",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libcodec_proxy_4.0",
    "googletest:gtest_main",
    "hilog:libhilog",
    "libexif:libexif",
  ]
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("itempropertybasicboxtest"){
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/box/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/item_property_basic_box_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/item_data_box_test.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/item_info_box_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  cflags = [
    "-fno-access-control",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libcodec_proxy_4.0",
    "googletest:gtest_main",
    "hilog:libhilog",
    "libexif:libexif",
  ]
  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("sk_ohoscodec_test") {
  module_out_path = module_output_path

  defines = [ "SK_ENABLE_OHOS_CODEC" ]

  include_dirs = [
    "${image_subsystem}/interfaces/innerkits/include",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include",
  ]

  sources = [
    "${image_subsystem}/plugins/common/libs/image/libextplugin/src/sk_ohoscodec.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/plugin_test/sk_ohoscodec_test.cpp",
  ]

  deps = [
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "googletest:gtest_main",
    "skia:skia_canvaskit",
    "graphic_2d:color_manager",
  ]

  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]
}

ohos_unittest("memorymanagertest") {
  module_out_path = module_output_path

  include_dirs = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/common/include",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils/include",
    "//foundation/multimedia/image_framework/interfaces/innerkits/include",
  ]

  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/common/src/memory_manager.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/memory_manager_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
}

ohos_unittest("kvmetadatatest") {
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/include",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include",
    "${image_subsystem}/interfaces/innerkits/include",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/kv_metadata_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"

  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "googletest:gtest_main",
    "hilog:libhilog",
  ]
}

ohos_unittest("imagedfxtest"){
  module_out_path = module_output_path

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include/",
  ]

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/image_dfx_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
  ]

  cflags = [
    "-fno-access-control",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libcodec_proxy_4.0",
    "googletest:gtest_main",
    "hilog:libhilog",
  ]
}

ohos_unittest("heifs_decode_test") {
  module_out_path = module_output_path

  defines = []
  sources = [
    "unittest/heifs_decode_test/heifs_decode_test.cpp",
  ]

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/mock/",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/",
    "${image_subsystem}/plugins/manager/include/",
    "${image_subsystem}/plugins/manager/include/pluginbase/",
    "${image_subsystem}/interfaces/innerkits/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/box",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libimage_proxy_2.1",
    "drivers_interface_display:libdisplay_buffer_hdi_impl",
    "drivers_interface_display:libdisplay_buffer_proxy_1.0",
    "drivers_interface_display:libdisplay_composer_hdi_impl_1.3",
    "drivers_interface_display:libdisplay_composer_proxy_1.0",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hdf_core:libhdf_utils",
    "hdf_core:libhdi",
    "hilog:libhilog",
    "ipc:ipc_single",
    "libexif:libexif",
    "libjpeg-turbo:turbojpeg",
    "skia:libjpegm133",
    "skia:skia_canvaskit",
  ]
  if (enable_heif_hw_decode) {
    defines += [ "HEIF_HW_DECODE_ENABLE" ]
    deps += [ "${image_subsystem}/plugins/common/libs/image/libextplugin:heifimpl" ]
    external_deps += [
      "drivers_interface_codec:libcodec_proxy_4.0",
      "ffmpeg:libohosffmpeg",
      "ffrt:libffrt",
      "graphic_2d:color_manager",
      "hitrace:hitrace_meter",
      "init:libbegetutil",
      "ipc:ipc_core",
      "openmax:libopenmax_static",
      "qos_manager:qos",
    ]
  }
  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  cflags = [
    "-Dprivate=public",
    "-DIMAGE_COLORSPACE_FLAG",
    "-Dprotected=public",
  ]
}

ohos_unittest("tiffplugintest") {
  module_out_path = module_output_path

  include_dirs = [
    "$image_subsystem/plugins/manager/include",
    "$image_subsystem/plugins/manager/include/image",
    "$image_subsystem/plugins/manager/include/pluginbase",
    "$image_subsystem/plugins/common/libs/image/libtiffplugin/include",
    "$image_subsystem/interfaces/innerkits/include",
    "$image_subsystem/frameworks/innerkitsimpl/utils/include",
  ]
  sources = [
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/tiff_decoder_test.cpp",
    "$image_subsystem/frameworks/innerkitsimpl/test/unittest/plugin_test/tiff_encoder_test.cpp",
  ]

  deps = [
    "//foundation/multimedia/image_framework/interfaces/innerkits:image_native",
    "//foundation/multimedia/image_framework/plugins/common/libs/image/libtiffplugin:tiffplugin",
    "//foundation/multimedia/image_framework/frameworks/innerkitsimpl/utils:image_utils",
  ]

  external_deps = [
    "c_utils:utils",
    "hilog:libhilog",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "drivers_interface_display:libdisplay_commontype_proxy_1.0",
  ]
  if (has_libtiff) {
    external_deps += [ "libtiff:libtiff" ]
  }

  cflags = [
    "-Dprotected=public",
    "-Dprivate=public",
    "-DIMAGE_COLORSPACE_FLAG",
  ]

  resource_config_file = "${image_subsystem}/test/resource/image/ohos_test.xml"
}

ohos_unittest("heifsmetadatatest") {
  module_out_path = module_output_path

  sources = [
    "${image_subsystem}/frameworks/innerkitsimpl/accessor/src/kv_metadata.cpp",
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/metadata_test/heifs_metadata_test.cpp",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
  ]

  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]

  external_deps = [
    "c_utils:utils",
    "googletest:gtest",
    "hilog:libhilog",
  ]
}

ohos_unittest("avif_decode_test") {
  module_out_path = module_output_path

  defines = []
  sources = [
    "unittest/avif_decode_test.cpp",
  ]

  include_dirs = [
    "${image_subsystem}/frameworks/innerkitsimpl/test/unittest/mock/",
    "${image_subsystem}/frameworks/innerkitsimpl/utils/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/",
    "${image_subsystem}/plugins/manager/include/",
    "${image_subsystem}/plugins/manager/include/pluginbase/",
    "${image_subsystem}/interfaces/innerkits/include/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/",
    "${image_subsystem}/plugins/common/libs/image/libextplugin/include/heif_impl/heif_parser/box",
  ]

  deps = [
    "${image_subsystem}/frameworks/innerkitsimpl/utils:image_utils",
    "${image_subsystem}/interfaces/innerkits:image_native",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:extplugin",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:heifparser",
    "${image_subsystem}/plugins/common/libs/image/libextplugin:avifimpl",
    "${image_subsystem}/frameworks/innerkitsimpl/pixelconverter:pixelconvertadapter",
  ]

  external_deps = [
    "c_utils:utils",
    "drivers_interface_codec:libimage_proxy_2.1",
    "drivers_interface_display:libdisplay_buffer_hdi_impl",
    "drivers_interface_display:libdisplay_buffer_proxy_1.0",
    "drivers_interface_display:libdisplay_composer_hdi_impl_1.3",
    "drivers_interface_display:libdisplay_composer_proxy_1.0",
    "googletest:gtest_main",
    "graphic_surface:surface",
    "hdf_core:libhdf_utils",
    "hdf_core:libhdi",
    "hilog:libhilog",
    "ipc:ipc_single",
    "libjpeg-turbo:turbojpeg",
    "libexif:libexif",
    "skia:libjpegm133",
    "skia:skia_canvaskit",
    "ffmpeg:libohosffmpeg",
    "graphic_2d:color_manager",
    "graphic_surface:surface",
    "hilog:libhilog",
  ]

  if (has_dav1d) {
    external_deps += [ "dav1d:dav1d_ohos" ]
    defines += [ "AVIF_DECODE_ENABLE" ]
  }

  resource_config_file = "$image_subsystem/test/resource/image/ohos_test.xml"
  cflags = [
    "-Dprivate=public",
    "-Dprotected=public",
  ]
}

################################################
group("unittest") {
  testonly = true
  deps = [
    ":attrdatatest",
    ":auxiliarypicturetest",
    ":avif_decode_test",
    ":colorconvertertest",
    ":convertertest",
    ":creatormocktest",
    ":creatortest",
    ":datastatisticstest",
    ":eglimagetest",
    ":exifmetadatatest",
    ":format_agent_plugin_src_test",
    ":formatagentplugintest",
    ":fragmentmetadatatest",
    ":gifmetadatatest",
    ":gifplugintest",
    ":gstpluginfwtest",
    ":heif_parser_test",
    ":hispeed_image_manager_test",
    ":image_native_test",
    ":image_receiver_native_test",
    ":imageaccessortest",
    ":imagecolorspacetest",
    ":imageeventtest",
    ":imageformatconverttest",
    ":imagepixelmapparceltest",
    ":imagepixelmaptest",
    ":imagesourcetest",
    ":imagetiffparsertest",
    ":imageutilstest",
    ":interfacetest",
    ":jpegdecoderextest",
    ":jpegutilstest",
    ":jpgyuvtest",
    ":kvmetadatatest",
    ":memorymanagertest",
    ":metadatatest",
    ":napitest",
    ":ndktest2",
    ":picturetest",
    ":pixelastctest",
    ":pixelmaptest",
    ":platformadptest",
    ":pluginlibjpegtest",
    ":pluginsmanagersrcframeworktest",
    ":pngtest",
    #":rawdecodertest",
    ":receivertest",
    ":sk_ohoscodec_test",
    ":streamtest",
    ":textureencodetest",

    ":cr3_parser_test",
    ":itempropertybasicboxtest",
    ":imagedfxtest",
    ":heifsmetadatatest"
  ]

  if (enable_jpeg_hw_decode) {
    deps += [ ":jpeg_hw_decoder_test" ]
  }

  if (enable_heif_hw_decode) {
    deps += [
      ":heif_decode_impl_test",
      ":heifyuvtest",
      ":heifs_decode_test",
    ]
  }

  if (enable_heif_hw_encode) {
    deps += [ ":heif_hw_encoder_test" ]
  }

  if (enable_picture) {
    deps += [ ":picture_ext_test" ]
  }
}
################################################