# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("../build/webrtc.gni")
import("audio_coding/audio_coding.gni")

declare_args() {
  # Desktop capturer is supported only on Windows, OSX and Linux.
  rtc_desktop_capture_supported = is_win || is_mac || is_linux
}

group("modules") {
  public_deps = [
    "audio_coding",
    "audio_conference_mixer",
    "audio_device",
    "audio_mixer",
    "audio_processing",
    "bitrate_controller",
    "desktop_capture",
    "media_file",
    "rtp_rtcp",
    "utility",
    "video_coding",
    "video_processing",
  ]
}

if (rtc_include_tests) {
  modules_tests_resources = [
    "//resources/audio_coding/testfile32kHz.pcm",
    "//resources/audio_coding/teststereo32kHz.pcm",
    "//resources/foreman_cif.yuv",
    "//resources/paris_qcif.yuv",
  ]

  if (is_ios) {
    bundle_data("modules_tests_bundle_data") {
      testonly = true
      sources = modules_tests_resources
      outputs = [
        "{{bundle_resources_dir}}/{{source_file_part}}",
      ]
    }
  }

  rtc_test("modules_tests") {
    testonly = true

    videoprocessor_defines = []
    if (rtc_use_h264) {
      videoprocessor_defines += [ "WEBRTC_VIDEOPROCESSOR_H264_TESTS" ]
    }

    defines = audio_coding_defines + videoprocessor_defines

    deps = [
      "..:webrtc_common",
      "../common_video",
      "../modules/audio_coding",
      "../modules/rtp_rtcp",
      "../modules/utility",
      "../modules/video_coding",
      "../modules/video_coding:video_codecs_test_framework",
      "../system_wrappers",
      "../test:test_support",
      "../test:test_support_main",
      "//testing/gtest",
    ]

    sources = [
      "audio_coding/test/APITest.cc",
      "audio_coding/test/Channel.cc",
      "audio_coding/test/EncodeDecodeTest.cc",
      "audio_coding/test/PCMFile.cc",
      "audio_coding/test/PacketLossTest.cc",
      "audio_coding/test/RTPFile.cc",
      "audio_coding/test/TestAllCodecs.cc",
      "audio_coding/test/TestRedFec.cc",
      "audio_coding/test/TestStereo.cc",
      "audio_coding/test/TestVADDTX.cc",
      "audio_coding/test/Tester.cc",
      "audio_coding/test/TwoWayCommunication.cc",
      "audio_coding/test/iSACTest.cc",
      "audio_coding/test/opus_test.cc",
      "audio_coding/test/target_delay_unittest.cc",
      "audio_coding/test/utility.cc",
      "rtp_rtcp/test/testFec/test_fec.cc",
      "video_coding/codecs/test/videoprocessor_integrationtest.cc",
      "video_coding/codecs/vp8/test/vp8_impl_unittest.cc",
    ]

    data = modules_tests_resources

    if (is_android) {
      deps += [ "//testing/android/native_test:native_test_native_code" ]
      shard_timeout = 900
    }

    if (is_ios) {
      deps += [ ":modules_tests_bundle_data" ]
    }

    if (is_clang) {
      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
    }
    if (is_win) {
      cflags = [
        # TODO(phoglund): get rid of 4373 supression when
        # http://code.google.com/p/webrtc/issues/detail?id=261 is solved.
        # legacy warning for ignoring const / volatile in signatures.
        "/wd4373",
      ]
    }
  }

  modules_unittests_resources = [
    "//data/audio_processing/output_data_fixed.pb",
    "//data/audio_processing/output_data_float.pb",
    "//data/audio_processing/output_data_mac.pb",
    "//data/voice_engine/audio_tiny48.wav",
    "//resources/att-downlink.rx",
    "//resources/att-uplink.rx",
    "//resources/audio_coding/neteq_opus.rtp",
    "//resources/audio_coding/neteq_universal_new.rtp",
    "//resources/audio_coding/speech_mono_16kHz.pcm",
    "//resources/audio_coding/speech_mono_32_48kHz.pcm",
    "//resources/audio_coding/testfile32kHz.pcm",
    "//resources/audio_coding/teststereo32kHz.pcm",
    "//resources/audio_device/audio_short16.pcm",
    "//resources/audio_device/audio_short44.pcm",
    "//resources/audio_device/audio_short48.pcm",
    "//resources/audio_processing/agc/agc_audio.pcm",
    "//resources/audio_processing/agc/agc_no_circular_buffer.dat",
    "//resources/audio_processing/agc/agc_pitch_gain.dat",
    "//resources/audio_processing/agc/agc_pitch_lag.dat",
    "//resources/audio_processing/agc/agc_spectral_peak.dat",
    "//resources/audio_processing/agc/agc_vad.dat",
    "//resources/audio_processing/agc/agc_voicing_prob.dat",
    "//resources/audio_processing/agc/agc_with_circular_buffer.dat",
    "//resources/audio_processing/transient/ajm-macbook-1-spke16m.pcm",
    "//resources/audio_processing/transient/audio16kHz.pcm",
    "//resources/audio_processing/transient/audio32kHz.pcm",
    "//resources/audio_processing/transient/audio48kHz.pcm",
    "//resources/audio_processing/transient/audio8kHz.pcm",
    "//resources/audio_processing/transient/detect16kHz.dat",
    "//resources/audio_processing/transient/detect32kHz.dat",
    "//resources/audio_processing/transient/detect48kHz.dat",
    "//resources/audio_processing/transient/detect8kHz.dat",
    "//resources/audio_processing/transient/double-utils.dat",
    "//resources/audio_processing/transient/float-utils.dat",
    "//resources/audio_processing/transient/suppressed16kHz.pcm",
    "//resources/audio_processing/transient/suppressed32kHz.pcm",
    "//resources/audio_processing/transient/suppressed8kHz.pcm",
    "//resources/audio_processing/transient/wpd0.dat",
    "//resources/audio_processing/transient/wpd1.dat",
    "//resources/audio_processing/transient/wpd2.dat",
    "//resources/audio_processing/transient/wpd3.dat",
    "//resources/audio_processing/transient/wpd4.dat",
    "//resources/audio_processing/transient/wpd5.dat",
    "//resources/audio_processing/transient/wpd6.dat",
    "//resources/audio_processing/transient/wpd7.dat",
    "//resources/deflicker_before_cif_short.yuv",
    "//resources/far16_stereo.pcm",
    "//resources/far32_stereo.pcm",
    "//resources/far44_stereo.pcm",
    "//resources/far48_stereo.pcm",
    "//resources/far8_stereo.pcm",
    "//resources/foremanColorEnhanced_cif_short.yuv",
    "//resources/foreman_cif.yuv",
    "//resources/foreman_cif_short.yuv",
    "//resources/near16_stereo.pcm",
    "//resources/near32_stereo.pcm",
    "//resources/near44_stereo.pcm",
    "//resources/near48_stereo.pcm",
    "//resources/near8_stereo.pcm",
    "//resources/ref03.aecdump",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke1_1_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingChoke2_1_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingDelay1_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_IncreasingLoss1_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_Multi1_1_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyChoke_1_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyDelay_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_SteadyLoss_0_TOF.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_AST.bin",
    "//resources/remote_bitrate_estimator/VideoSendersTest_BweTest_UnlimitedSpeed_0_TOF.bin",
    "//resources/short_mixed_mono_48.dat",
    "//resources/short_mixed_mono_48_arm.dat",
    "//resources/short_mixed_mono_48.pcm",
    "//resources/short_mixed_stereo_48.dat",
    "//resources/short_mixed_stereo_48.pcm",
    "//resources/sprint-downlink.rx",
    "//resources/sprint-uplink.rx",
    "//resources/synthetic-trace.rx",
    "//resources/tmobile-downlink.rx",
    "//resources/tmobile-uplink.rx",
    "//resources/utility/encapsulated_pcm16b_8khz.wav",
    "//resources/utility/encapsulated_pcmu_8khz.wav",
    "//resources/verizon3g-downlink.rx",
    "//resources/verizon3g-uplink.rx",
    "//resources/verizon4g-downlink.rx",
    "//resources/verizon4g-uplink.rx",
  ]

  if (is_ios) {
    bundle_data("modules_unittests_bundle_data") {
      testonly = true
      sources = modules_unittests_resources
      outputs = [
        "{{bundle_resources_dir}}/{{source_file_part}}",
      ]
    }
  }

  rtc_source_set("audio_network_adaptor_unittests") {
    # Put sources for unittests of audio network adaptor in a separate
    # rtc_source_set to solve name collision on bitrate_controller_unittest.cc.
    testonly = true
    sources = [
      "audio_coding/audio_network_adaptor/audio_network_adaptor_impl_unittest.cc",
      "audio_coding/audio_network_adaptor/bitrate_controller_unittest.cc",
      "audio_coding/audio_network_adaptor/channel_controller_unittest.cc",
      "audio_coding/audio_network_adaptor/controller_manager_unittest.cc",
      "audio_coding/audio_network_adaptor/dtx_controller_unittest.cc",
      "audio_coding/audio_network_adaptor/mock/mock_controller.h",
      "audio_coding/audio_network_adaptor/mock/mock_controller_manager.h",
      "audio_coding/audio_network_adaptor/smoothing_filter_unittest.cc",
    ]
    deps = [
      "audio_coding:audio_network_adaptor",
      "//testing/gmock",
      "//testing/gtest",
    ]
    if (is_clang) {
      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
    }
  }

  rtc_test("modules_unittests") {
    testonly = true

    defines = audio_coding_defines
    deps = []
    sources = [
      "audio_coding/acm2/acm_receiver_unittest_oldapi.cc",
      "audio_coding/acm2/audio_coding_module_unittest_oldapi.cc",
      "audio_coding/acm2/call_statistics_unittest.cc",
      "audio_coding/acm2/codec_manager_unittest.cc",
      "audio_coding/acm2/initial_delay_manager_unittest.cc",
      "audio_coding/acm2/rent_a_codec_unittest.cc",
      "audio_coding/codecs/audio_decoder_factory_unittest.cc",
      "audio_coding/codecs/cng/audio_encoder_cng_unittest.cc",
      "audio_coding/codecs/cng/cng_unittest.cc",
      "audio_coding/codecs/ilbc/ilbc_unittest.cc",
      "audio_coding/codecs/isac/fix/source/filterbanks_unittest.cc",
      "audio_coding/codecs/isac/fix/source/filters_unittest.cc",
      "audio_coding/codecs/isac/fix/source/lpc_masking_model_unittest.cc",
      "audio_coding/codecs/isac/fix/source/transform_unittest.cc",
      "audio_coding/codecs/isac/main/source/audio_encoder_isac_unittest.cc",
      "audio_coding/codecs/isac/main/source/isac_unittest.cc",
      "audio_coding/codecs/isac/unittest.cc",
      "audio_coding/codecs/mock/mock_audio_encoder.cc",
      "audio_coding/codecs/opus/audio_encoder_opus_unittest.cc",
      "audio_coding/codecs/opus/opus_unittest.cc",
      "audio_coding/codecs/red/audio_encoder_copy_red_unittest.cc",
      "audio_coding/neteq/audio_classifier_unittest.cc",
      "audio_coding/neteq/audio_multi_vector_unittest.cc",
      "audio_coding/neteq/audio_vector_unittest.cc",
      "audio_coding/neteq/background_noise_unittest.cc",
      "audio_coding/neteq/buffer_level_filter_unittest.cc",
      "audio_coding/neteq/comfort_noise_unittest.cc",
      "audio_coding/neteq/decision_logic_unittest.cc",
      "audio_coding/neteq/decoder_database_unittest.cc",
      "audio_coding/neteq/delay_manager_unittest.cc",
      "audio_coding/neteq/delay_peak_detector_unittest.cc",
      "audio_coding/neteq/dsp_helper_unittest.cc",
      "audio_coding/neteq/dtmf_buffer_unittest.cc",
      "audio_coding/neteq/dtmf_tone_generator_unittest.cc",
      "audio_coding/neteq/expand_unittest.cc",
      "audio_coding/neteq/merge_unittest.cc",
      "audio_coding/neteq/mock/mock_audio_decoder.h",
      "audio_coding/neteq/mock/mock_audio_vector.h",
      "audio_coding/neteq/mock/mock_buffer_level_filter.h",
      "audio_coding/neteq/mock/mock_decoder_database.h",
      "audio_coding/neteq/mock/mock_delay_manager.h",
      "audio_coding/neteq/mock/mock_delay_peak_detector.h",
      "audio_coding/neteq/mock/mock_dtmf_buffer.h",
      "audio_coding/neteq/mock/mock_dtmf_tone_generator.h",
      "audio_coding/neteq/mock/mock_expand.h",
      "audio_coding/neteq/mock/mock_external_decoder_pcm16b.h",
      "audio_coding/neteq/mock/mock_packet_buffer.h",
      "audio_coding/neteq/mock/mock_payload_splitter.h",
      "audio_coding/neteq/nack_tracker_unittest.cc",
      "audio_coding/neteq/neteq_external_decoder_unittest.cc",
      "audio_coding/neteq/neteq_impl_unittest.cc",
      "audio_coding/neteq/neteq_network_stats_unittest.cc",
      "audio_coding/neteq/neteq_stereo_unittest.cc",
      "audio_coding/neteq/neteq_unittest.cc",
      "audio_coding/neteq/normal_unittest.cc",
      "audio_coding/neteq/packet_buffer_unittest.cc",
      "audio_coding/neteq/payload_splitter_unittest.cc",
      "audio_coding/neteq/post_decode_vad_unittest.cc",
      "audio_coding/neteq/random_vector_unittest.cc",
      "audio_coding/neteq/sync_buffer_unittest.cc",
      "audio_coding/neteq/tick_timer_unittest.cc",
      "audio_coding/neteq/time_stretch_unittest.cc",
      "audio_coding/neteq/timestamp_scaler_unittest.cc",
      "audio_coding/neteq/tools/input_audio_file_unittest.cc",
      "audio_coding/neteq/tools/packet_unittest.cc",
      "audio_conference_mixer/test/audio_conference_mixer_unittest.cc",
      "audio_device/fine_audio_buffer_unittest.cc",
      "audio_mixer/test/audio_mixer_unittest.cc",
      "audio_processing/aec/echo_cancellation_unittest.cc",
      "audio_processing/aec/system_delay_unittest.cc",
      "audio_processing/agc/agc_manager_direct_unittest.cc",
      "audio_processing/agc/loudness_histogram_unittest.cc",
      "audio_processing/agc/mock_agc.h",
      "audio_processing/audio_buffer_unittest.cc",
      "audio_processing/beamformer/array_util_unittest.cc",
      "audio_processing/beamformer/complex_matrix_unittest.cc",
      "audio_processing/beamformer/covariance_matrix_generator_unittest.cc",
      "audio_processing/beamformer/matrix_unittest.cc",
      "audio_processing/beamformer/mock_nonlinear_beamformer.h",
      "audio_processing/beamformer/nonlinear_beamformer_unittest.cc",
      "audio_processing/config_unittest.cc",
      "audio_processing/echo_cancellation_impl_unittest.cc",
      "audio_processing/splitting_filter_unittest.cc",
      "audio_processing/transient/dyadic_decimator_unittest.cc",
      "audio_processing/transient/file_utils.cc",
      "audio_processing/transient/file_utils.h",
      "audio_processing/transient/file_utils_unittest.cc",
      "audio_processing/transient/moving_moments_unittest.cc",
      "audio_processing/transient/transient_detector_unittest.cc",
      "audio_processing/transient/transient_suppressor_unittest.cc",
      "audio_processing/transient/wpd_node_unittest.cc",
      "audio_processing/transient/wpd_tree_unittest.cc",
      "audio_processing/utility/block_mean_calculator_unittest.cc",
      "audio_processing/utility/delay_estimator_unittest.cc",
      "audio_processing/vad/gmm_unittest.cc",
      "audio_processing/vad/pitch_based_vad_unittest.cc",
      "audio_processing/vad/pitch_internal_unittest.cc",
      "audio_processing/vad/pole_zero_filter_unittest.cc",
      "audio_processing/vad/standalone_vad_unittest.cc",
      "audio_processing/vad/vad_audio_proc_unittest.cc",
      "audio_processing/vad/vad_circular_buffer_unittest.cc",
      "audio_processing/vad/voice_activity_detector_unittest.cc",
      "bitrate_controller/bitrate_controller_unittest.cc",
      "bitrate_controller/send_side_bandwidth_estimation_unittest.cc",
      "congestion_controller/congestion_controller_unittest.cc",
      "congestion_controller/delay_based_bwe_unittest.cc",
      "congestion_controller/delay_based_bwe_unittest_helper.cc",
      "congestion_controller/delay_based_bwe_unittest_helper.h",
      "congestion_controller/probe_bitrate_estimator_unittest.cc",
      "congestion_controller/probe_controller_unittest.cc",
      "media_file/media_file_unittest.cc",
      "module_common_types_unittest.cc",
      "pacing/bitrate_prober_unittest.cc",
      "pacing/paced_sender_unittest.cc",
      "pacing/packet_router_unittest.cc",
      "remote_bitrate_estimator/bwe_simulations.cc",
      "remote_bitrate_estimator/include/mock/mock_remote_bitrate_estimator.h",
      "remote_bitrate_estimator/include/mock/mock_remote_bitrate_observer.h",
      "remote_bitrate_estimator/inter_arrival_unittest.cc",
      "remote_bitrate_estimator/overuse_detector_unittest.cc",
      "remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc",
      "remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc",
      "remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.cc",
      "remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h",
      "remote_bitrate_estimator/remote_estimator_proxy_unittest.cc",
      "remote_bitrate_estimator/send_time_history_unittest.cc",
      "remote_bitrate_estimator/test/bwe_test_framework_unittest.cc",
      "remote_bitrate_estimator/test/bwe_unittest.cc",
      "remote_bitrate_estimator/test/estimators/nada_unittest.cc",
      "remote_bitrate_estimator/test/metric_recorder_unittest.cc",
      "remote_bitrate_estimator/transport_feedback_adapter_unittest.cc",
      "rtp_rtcp/source/byte_io_unittest.cc",
      "rtp_rtcp/source/fec_receiver_unittest.cc",
      "rtp_rtcp/source/fec_test_helper.cc",
      "rtp_rtcp/source/fec_test_helper.h",
      "rtp_rtcp/source/mock/mock_rtp_payload_strategy.h",
      "rtp_rtcp/source/nack_rtx_unittest.cc",
      "rtp_rtcp/source/packet_loss_stats_unittest.cc",
      "rtp_rtcp/source/playout_delay_oracle_unittest.cc",
      "rtp_rtcp/source/producer_fec_unittest.cc",
      "rtp_rtcp/source/receive_statistics_unittest.cc",
      "rtp_rtcp/source/remote_ntp_time_estimator_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/app_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/bye_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/common_header_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/dlrr_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/extended_jitter_report_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/extended_reports_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/fir_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/nack_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/pli_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/rapid_resync_request_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/receiver_report_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/remb_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/report_block_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/rpsi_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/rrtr_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/sdes_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/sender_report_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/sli_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/tmmbn_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/tmmbr_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/transport_feedback_unittest.cc",
      "rtp_rtcp/source/rtcp_packet/voip_metric_unittest.cc",
      "rtp_rtcp/source/rtcp_packet_unittest.cc",
      "rtp_rtcp/source/rtcp_receiver_unittest.cc",
      "rtp_rtcp/source/rtcp_sender_unittest.cc",
      "rtp_rtcp/source/rtcp_utility_unittest.cc",
      "rtp_rtcp/source/rtp_fec_unittest.cc",
      "rtp_rtcp/source/rtp_format_h264_unittest.cc",
      "rtp_rtcp/source/rtp_format_vp8_test_helper.cc",
      "rtp_rtcp/source/rtp_format_vp8_test_helper.h",
      "rtp_rtcp/source/rtp_format_vp8_unittest.cc",
      "rtp_rtcp/source/rtp_format_vp9_unittest.cc",
      "rtp_rtcp/source/rtp_header_extension_unittest.cc",
      "rtp_rtcp/source/rtp_packet_history_unittest.cc",
      "rtp_rtcp/source/rtp_packet_unittest.cc",
      "rtp_rtcp/source/rtp_payload_registry_unittest.cc",
      "rtp_rtcp/source/rtp_rtcp_impl_unittest.cc",
      "rtp_rtcp/source/rtp_sender_unittest.cc",
      "rtp_rtcp/source/time_util_unittest.cc",
      "rtp_rtcp/source/vp8_partition_aggregator_unittest.cc",
      "rtp_rtcp/test/testAPI/test_api.cc",
      "rtp_rtcp/test/testAPI/test_api.h",
      "rtp_rtcp/test/testAPI/test_api_audio.cc",
      "rtp_rtcp/test/testAPI/test_api_rtcp.cc",
      "rtp_rtcp/test/testAPI/test_api_video.cc",
      "utility/source/audio_frame_operations_unittest.cc",
      "utility/source/file_player_unittests.cc",
      "utility/source/process_thread_impl_unittest.cc",
      "video_coding/codecs/test/packet_manipulator_unittest.cc",
      "video_coding/codecs/test/stats_unittest.cc",
      "video_coding/codecs/test/videoprocessor_unittest.cc",
      "video_coding/codecs/vp8/default_temporal_layers_unittest.cc",
      "video_coding/codecs/vp8/reference_picture_selection_unittest.cc",
      "video_coding/codecs/vp8/screenshare_layers_unittest.cc",
      "video_coding/codecs/vp8/simulcast_encoder_adapter_unittest.cc",
      "video_coding/codecs/vp8/simulcast_unittest.cc",
      "video_coding/codecs/vp8/simulcast_unittest.h",
      "video_coding/decoding_state_unittest.cc",
      "video_coding/frame_buffer2_unittest.cc",
      "video_coding/histogram_unittest.cc",
      "video_coding/include/mock/mock_vcm_callbacks.h",
      "video_coding/jitter_buffer_unittest.cc",
      "video_coding/jitter_estimator_tests.cc",
      "video_coding/nack_module_unittest.cc",
      "video_coding/percentile_filter_unittest.cc",
      "video_coding/protection_bitrate_calculator_unittest.cc",
      "video_coding/receiver_unittest.cc",
      "video_coding/rtp_frame_reference_finder_unittest.cc",
      "video_coding/sequence_number_util_unittest.cc",
      "video_coding/session_info_unittest.cc",
      "video_coding/test/stream_generator.cc",
      "video_coding/test/stream_generator.h",
      "video_coding/timing_unittest.cc",
      "video_coding/utility/frame_dropper_unittest.cc",
      "video_coding/utility/h264_bitstream_parser_unittest.cc",
      "video_coding/utility/ivf_file_writer_unittest.cc",
      "video_coding/utility/moving_average_unittest.cc",
      "video_coding/utility/quality_scaler_unittest.cc",
      "video_coding/utility/simulcast_rate_allocator_unittest.cc",
      "video_coding/video_coding_robustness_unittest.cc",
      "video_coding/video_packet_buffer_unittest.cc",
      "video_coding/video_receiver_unittest.cc",
      "video_coding/video_sender_unittest.cc",
      "video_processing/test/denoiser_test.cc",
      "video_processing/test/video_processing_unittest.cc",
      "video_processing/test/video_processing_unittest.h",
    ]

    if (apm_debug_dump) {
      defines += [ "WEBRTC_APM_DEBUG_DUMP=1" ]
    } else {
      defines += [ "WEBRTC_APM_DEBUG_DUMP=0" ]
    }

    if (rtc_enable_intelligibility_enhancer) {
      defines += [ "WEBRTC_INTELLIGIBILITY_ENHANCER=1" ]
      sources += [
        "audio_processing/intelligibility/intelligibility_enhancer_unittest.cc",
        "audio_processing/intelligibility/intelligibility_utils_unittest.cc",
      ]
    } else {
      defines += [ "WEBRTC_INTELLIGIBILITY_ENHANCER=0" ]
    }

    if (rtc_libvpx_build_vp9) {
      sources +=
          [ "video_coding/codecs/vp9/vp9_screenshare_layers_unittest.cc" ]
    }

    if (rtc_desktop_capture_supported || is_android) {
      deps += [ "desktop_capture" ]
      sources += [
        "desktop_capture/desktop_region_unittest.cc",
        "desktop_capture/differ_block_unittest.cc",
        "desktop_capture/differ_unittest.cc",
      ]
    }

    if (rtc_desktop_capture_supported) {
      deps += [ "desktop_capture" ]
      sources += [
        "desktop_capture/desktop_and_cursor_composer_unittest.cc",
        "desktop_capture/desktop_frame_generator.cc",
        "desktop_capture/desktop_frame_generator.h",
        "desktop_capture/fake_desktop_capturer.h",
        "desktop_capture/fake_screen_capturer.cc",
        "desktop_capture/fake_screen_capturer.h",
        "desktop_capture/mouse_cursor_monitor_unittest.cc",
        "desktop_capture/rgba_color.cc",
        "desktop_capture/rgba_color.h",
        "desktop_capture/screen_capturer_differ_wrapper_unittest.cc",
        "desktop_capture/screen_capturer_helper_unittest.cc",
        "desktop_capture/screen_capturer_mac_unittest.cc",
        "desktop_capture/screen_capturer_mock_objects.h",
        "desktop_capture/screen_capturer_unittest.cc",
        "desktop_capture/screen_drawer.h",
        "desktop_capture/screen_drawer_linux.cc",
        "desktop_capture/screen_drawer_mac.cc",
        "desktop_capture/screen_drawer_unittest.cc",
        "desktop_capture/screen_drawer_win.cc",
        "desktop_capture/win/cursor_unittest.cc",
        "desktop_capture/win/cursor_unittest_resources.h",
        "desktop_capture/win/cursor_unittest_resources.rc",
        "desktop_capture/window_capturer_unittest.cc",
      ]
    }

    if (rtc_prefer_fixed_point) {
      defines += [ "WEBRTC_AUDIOPROC_FIXED_PROFILE" ]
    } else {
      defines += [ "WEBRTC_AUDIOPROC_FLOAT_PROFILE" ]
    }

    if (rtc_enable_protobuf) {
      defines += [
        "WEBRTC_AUDIOPROC_DEBUG_DUMP",
        "WEBRTC_NETEQ_UNITTEST_BITEXACT",
      ]
      deps += [
        "audio_coding:neteq_unittest_proto",
        "audio_processing:audioproc_protobuf_utils",
        "audio_processing:audioproc_unittest_proto",
      ]
      sources += [
        "audio_processing/audio_processing_impl_locking_unittest.cc",
        "audio_processing/audio_processing_impl_unittest.cc",
        "audio_processing/audio_processing_unittest.cc",
        "audio_processing/echo_cancellation_bit_exact_unittest.cc",
        "audio_processing/echo_control_mobile_unittest.cc",
        "audio_processing/gain_control_unittest.cc",
        "audio_processing/high_pass_filter_unittest.cc",
        "audio_processing/level_controller/level_controller_unittest.cc",
        "audio_processing/level_estimator_unittest.cc",
        "audio_processing/noise_suppression_unittest.cc",
        "audio_processing/test/bitexactness_tools.cc",
        "audio_processing/test/bitexactness_tools.h",
        "audio_processing/test/debug_dump_replayer.cc",
        "audio_processing/test/debug_dump_replayer.h",
        "audio_processing/test/debug_dump_test.cc",
        "audio_processing/test/test_utils.h",
        "audio_processing/voice_detection_unittest.cc",
      ]
    }

    if (rtc_build_libvpx) {
      deps += [ rtc_libvpx_dir ]
    }

    # TODO(jschuh): bugs.webrtc.org/1348: fix this warning.
    configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

    if (is_clang) {
      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
    }

    if (is_win) {
      cflags = [
        # TODO(kjellander): bugs.webrtc.org/261: Fix this warning.
        "/wd4373",  # virtual function override.
      ]
    }

    deps += [
      ":audio_network_adaptor_unittests",
      "..:webrtc_common",
      "../base:rtc_base",  # TODO(kjellander): Cleanup in bugs.webrtc.org/3806.
      "../common_audio",
      "../common_video",
      "../system_wrappers:system_wrappers",
      "../test:rtp_test_utils",
      "../test:test_common",
      "../test:test_support_main",
      "../test:test_support_main",
      "../test:video_test_common",
      "audio_coding",
      "audio_coding:acm_receive_test",
      "audio_coding:acm_send_test",
      "audio_coding:builtin_audio_decoder_factory",
      "audio_coding:cng",
      "audio_coding:isac_fix",
      "audio_coding:neteq",
      "audio_coding:neteq_test_support",
      "audio_coding:neteq_unittest_tools",
      "audio_coding:pcm16b",
      "audio_coding:red",
      "audio_coding:webrtc_opus",
      "audio_conference_mixer",
      "audio_device",
      "audio_mixer",
      "audio_processing",
      "audio_processing:audioproc_test_utils",
      "bitrate_controller",
      "media_file",
      "pacing",
      "remote_bitrate_estimator",
      "remote_bitrate_estimator:bwe_simulator",
      "rtp_rtcp",
      "utility",
      "video_capture",
      "video_coding",
      "video_coding:video_codecs_test_framework",
      "video_coding:webrtc_vp8",
      "video_coding:webrtc_vp9",
      "video_processing",
      "//testing/gmock",
      "//testing/gtest",
      "//third_party/gflags",
    ]

    data = modules_unittests_resources

    if (is_android) {
      deps += [
        "//testing/android/native_test:native_test_support",
        "//webrtc/api:libjingle_peerconnection_java",
      ]

      # Need to disable error due to the line in
      # base/android/jni_android.h triggering it:
      # const BASE_EXPORT jobject GetApplicationContext()
      # error: type qualifiers ignored on function return type
      cflags = [ "-Wno-ignored-qualifiers" ]
      sources += [
        "audio_device/android/audio_device_unittest.cc",
        "audio_device/android/audio_manager_unittest.cc",
        "audio_device/android/ensure_initialized.cc",
        "audio_device/android/ensure_initialized.h",
      ]
      shard_timeout = 900
    }
    if (is_ios) {
      deps += [ ":modules_unittests_bundle_data" ]
      configs += [
        "..:common_objc",
        "//build/config/compiler:enable_arc",
      ]

      sources += [
        "audio_device/ios/audio_device_unittest_ios.cc",
        "audio_device/ios/objc/RTCAudioSessionTest.mm",
        "video_coding/codecs/h264/h264_video_toolbox_nalu_unittest.cc",
      ]

      ldflags = [ "-ObjC" ]
    }
  }
}
