# Copyright (C) 2024 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/ohos.gni")
import("//foundation/multimedia/av_codec/config.gni")

group("av_codec_demo_test") {
  testonly = true
  deps = []
  if (av_codec_support_test && !use_libfuzzer) {
    deps += [ "nativedemo:av_codec_demo" ]
    deps += [ "unittest/video_test/video_test:video_codec_demo" ]
  }
}

group("av_codec_unit_test") {
  testonly = true
  deps = []
  if (!use_libfuzzer) {
    if (av_codec_support_test) {
      deps += [
        "unittest/audio_capture_test:audio_capture_module_unit_test",
        "unittest/audio_encoder_filter_test:audio_encoder_filter_unitest",
        "unittest/audio_test:av_audio_capi_unit_test",
        "unittest/audio_test:av_audio_codecbase_unit_test",
        "unittest/audio_test:av_audio_decode_ability_unit_test",
        "unittest/audio_test:av_audio_decoder_avbuffer_capi_unit_test",
        "unittest/audio_test:av_audio_encoder_avbuffer_capi_unit_test",
        "unittest/audio_test:av_audio_encoder_capi_unit_test",
        "unittest/audio_test:av_audio_inner_unit_test",
        "unittest/audio_test:av_audio_media_codec_unit_test",
        "unittest/avcenc_info_test:avcenc_info_capi_unit_test",
        "unittest/avmuxer_test:avmuxer_capi_unit_test",
        "unittest/avmuxer_test:avmuxer_inner_unit_test",
        "unittest/avsource_test:avsource_capi_unit_test",
        "unittest/avsource_test:avsource_inner_unit_test",
        "unittest/dash_test:dash_media_downloader_unit_test",
        "unittest/dash_test:dash_mpd_downloader_unit_test",
        "unittest/dash_test:dash_mpd_parser_unit_test",
        "unittest/dash_test:dash_segment_downloader_unit_test",
        "unittest/dash_test:dash_xml_unit_test",
        "unittest/decoder_filter_test:decoder_filter_unit_test",
        "unittest/demuxer_test:demuxer_capi_buffer_unit_test",
        "unittest/demuxer_test:demuxer_capi_unit_test",
        "unittest/demuxer_test:demuxer_inner_buffer_unit_test",
        "unittest/demuxer_test:demuxer_inner_unit_test",
        "unittest/filter_test:filter_unit_test",
        "unittest/hls_test:hls_media_downloader_unit_test",
        "unittest/hls_test:hls_segment_manager_unit_test",
        "unittest/hls_test:hls_playlist_downloader_unit_test",
        "unittest/hls_test:hls_tags_unit_test",
        "unittest/hls_test:m3u8_unit_test",
        "unittest/http_source_test:downloader_unit_test",
        "unittest/http_source_test:http_media_downloader_unit_test",
        "unittest/http_source_test:http_source_plugin_unit_test",
        "unittest/media_demuxer_test:media_demuxer_unit_test",
        "unittest/media_sink_test:av_audio_sink_unit_test",
        "unittest/plugins_source_test:plugins_source_unit_test",
        "unittest/reference_parser_test:reference_parser_inner_unit_test",
        "unittest/source_test:source_unit_test",
        "unittest/video_test/codeclist_test:codeclist_capi_unit_test",
        "unittest/video_test/codeclist_test:codeclist_inner_unit_test",
        "unittest/video_test/codeclist_test/coverage_unit_test:codeclist_coverage_unit_test",
        "unittest/video_test/codec_param_checker_test:video_codec_param_checker_test",
        "unittest/video_test/dfx_test:video_codec_dfx_test",
        "unittest/video_test/drm_decryptor_test:drm_decryptor_coverage_unit_test",
        "unittest/video_test/fcodec_test:videodec_fcodec_capi_unit_test",
        "unittest/video_test/key_type_test:video_codec_key_type_test",
        "unittest/video_test/sa_avcodec_test:video_sa_avcodec_unit_test",
        "unittest/video_test/vcodec_framework_test:vcodec_framework_test",
        "unittest/video_test/vcodec_server_test:codec_server_test",
      ]
      if (av_codec_support_hcodec) {
        deps += [ "unittest/hcodec_test:hcodec_unit_test" ]
      }
      if (av_codec_enable_special_codec) {
        deps += [
          "unittest/audio_vivid_test:audio_vivid_ability_unit_test",
          "unittest/audio_vivid_test:audio_vivid_capi_unit_test",
          "unittest/audio_vivid_test:audio_vivid_inner_unit_test",
        ]
      }
    }
  }
}

group("av_codec_module_test") {
  testonly = true
  deps = []
  if (av_codec_support_test && !use_libfuzzer) {
    deps += [
      "moduletest/audio_decoder:audio_decoder_module_test",
      "moduletest/audio_encoder:audio_encoder_module_test",
      "moduletest/capability:capability_module_test",
      "moduletest/demuxer:demuxer_native_module_test",
      "moduletest/muxer:muxer_native_module_test",
      "moduletest/vcodec/encoder:encoder_native_module_test",
      "moduletest/vcodec/hdrcodec:hdrcodec_native_module_test",
      "moduletest/vcodec/hevcswdecoder:hevcswdecoder_native_module_test",
      "moduletest/vcodec/hwdecoder:hwdecoder_native_module_test",
      "moduletest/vcodec/swdecoder:swdecoder_native_module_test",
    ]
  }
}

group("av_codec_fuzz_test") {
  testonly = true
  deps = []
  if (av_codec_support_test) {
    deps += [
      "fuzztest/audiodecoder_fuzzer:AudioDecoderFuzzTest",
      "fuzztest/audiodecoderconfigure_fuzzer:AudiodecoderConfigureFuzzTest",
      "fuzztest/audiodecoderdescription_fuzzer:AudioDecoderDescriptionFuzzTest",
      "fuzztest/audiodecoderflush_fuzzer:AudioDecoderFlushFuzzTest",
      "fuzztest/audiodecoderpreapi_fuzzer:AudioDecoderpreapiFuzzTest",
      "fuzztest/audiodecoderpreapidescription_fuzzer:AudioDecoderpreapiDescriptionFuzzTest",
      "fuzztest/audiodecoderpreapiflush_fuzzer:AudioDecoderpreapiFlushFuzzTest",
      "fuzztest/audiodecoderpreapireset_fuzzer:AudioDecoderpreapiResetFuzzTest",
      "fuzztest/audiodecoderpreapisetparameter_fuzzer:AudioDecoderpreapiSetParameterFuzzTest",
      "fuzztest/audiodecoderreset_fuzzer:AudioDecoderResetFuzzTest",
      "fuzztest/audiodecodersetparameter_fuzzer:AudiodecoderSetParameterFuzzTest",
      "fuzztest/audioencoder_fuzzer:AudioencoderFuzzTest",
      "fuzztest/audioencoderdescription_fuzzer:AudioEncoderDescriptionFuzzTest",
      "fuzztest/audioencoderflush_fuzzer:AudioEncoderFlushFuzzTest",
      "fuzztest/audioencoderpreapi_fuzzer:AudioencoderpreapiFuzzTest",
      "fuzztest/audioencoderpreapidescription_fuzzer:AudioencoderpreapiDescriptionFuzzTest",
      "fuzztest/audioencoderpreapiflush_fuzzer:AudioencoderpreapiFlushFuzzTest",
      "fuzztest/audioencoderpreapireset_fuzzer:AudioencoderpreapiResetFuzzTest",
      "fuzztest/audioencoderpreapisetparameter_fuzzer:AudioencoderpreapiSetParameterFuzzTest",
      "fuzztest/audioencoderreset_fuzzer:AudioEncoderResetFuzzTest",
      "fuzztest/audiomuxer_fuzzer:AudioMuxerFuzzTest",
      "fuzztest/avcencinfo_fuzzer:AvCencInfoFuzzTest",
      "fuzztest/demuxer_fuzzer:DemuxerFuzzTest",
      "fuzztest/drmdecryptor_fuzzer:DrmDecryptorFuzzTest",
      "fuzztest/encoderapi11_fuzzer:EncoderAPI11FuzzTest",
      "fuzztest/encoderconfigure_fuzzer:EncoderConfigureFuzzTest",
      "fuzztest/encodersetparameter_fuzzer:EncoderSetParameterFuzzTest",
      "fuzztest/httpsource_fuzzer:HttpSourceFuzzTest",
      "fuzztest/hwdecoder_fuzzer:HwdecoderFuzzTest",
      "fuzztest/hwdecoderapi11_fuzzer:HwdecoderApi11FuzzTest",
      "fuzztest/swdecoderconfigure_fuzzer:SwdecoderConfigureFuzzTest",
      "fuzztest/swdecoderresource_fuzzer:SwdecoderResourceFuzzTest",
      "fuzztest/swdecodersetparameter_fuzzer:SwdecoderSetParameterFuzzTest",
    ]
  }
}