# 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.

# gn_isolate_map.pyl - A mapping of Ninja build target names to GN labels and
# test type classifications for the tests that are run on the bots.
#
# This file is based on testing/buildbot/gn_isolate_map.pyl for Chromium, but
# is covering WebRTC stand-alone tests instead.
# See https://cs.chromium.org/chromium/src/testing/buildbot/gn_isolate_map.pyl
# for more detailed documentation.

{
  "All": {
    "label": "//:All",
    "type": "additional_compile_target",
  },
  "AppRTCMobile_test_apk": {
    "label": "//examples:AppRTCMobile_test_apk",
    "type": "additional_compile_target",
  },
  "AppRTCMobile_stubbed_video_io_test_apk": {
    "label": "//examples:AppRTCMobile_stubbed_video_io_test_apk",
    "type": "additional_compile_target",
  },
  "android_junit_tests": {
    "label": "//:android_junit_tests",
    "type": "junit_test",
  },
  "audio_decoder_unittests": {
    "label": "//modules/audio_coding:audio_decoder_unittests",
    "type": "console_test_launcher",
  },
  "bwe_simulations_tests": {
    "label": "//modules/remote_bitrate_estimator:bwe_simulations_tests",
    "type": "console_test_launcher",
  },
  "common_audio_unittests": {
    "label": "//common_audio:common_audio_unittests",
    "type": "console_test_launcher",
  },
  "common_video_unittests": {
    "label": "//common_video:common_video_unittests",
    "type": "console_test_launcher",
  },
  "isac_fix_test": {
    "label": "//modules/audio_coding:isac_fix_test",
    "type": "console_test_launcher",
    "args": [
      "32000", "../../resources/speech_and_misc_wb.pcm",
      "isac_speech_and_misc_wb.pcm",
    ]
  },
  "android_instrumentation_test_apk": {
    "label": "//sdk/android:android_instrumentation_test_apk",
    "type": "additional_compile_target",
  },
  "low_bandwidth_audio_test": {
    "label": "//audio:low_bandwidth_audio_test",
    "type": "console_test_launcher",
    "args": [
      "--quick",
    ],
  },
  "low_bandwidth_audio_perf_test": {
    "label": "//audio:low_bandwidth_audio_perf_test",
    "type": "script",
    "script": "//audio/test/low_bandwidth_audio_test.py",
    "args": [
      ".", "--remove",
    ],
  },
  "modules_tests": {
    "label": "//modules:modules_tests",
    "type": "console_test_launcher",
  },
  "modules_unittests": {
    "label": "//modules:modules_unittests",
    "type": "windowed_test_launcher",
  },
  "peerconnection_unittests": {
    "label": "//pc:peerconnection_unittests",
    "type": "console_test_launcher",
  },
  "rtc_media_unittests": {
    "label": "//media:rtc_media_unittests",
    "type": "console_test_launcher",
  },
  "rtc_pc_unittests": {
    "label": "//pc:rtc_pc_unittests",
    "type": "console_test_launcher",
  },
  "rtc_stats_unittests": {
    "label": "//stats:rtc_stats_unittests",
    "type": "console_test_launcher",
  },
  "rtc_unittests": {
    "label": "//:rtc_unittests",
    "type": "console_test_launcher",
  },
  "slow_tests": {
    "label": "//:slow_tests",
    "type": "console_test_launcher",
  },
  "system_wrappers_unittests": {
    "label": "//system_wrappers:system_wrappers_unittests",
    "type": "console_test_launcher",
  },
  "test_support_unittests": {
    "label": "//test:test_support_unittests",
    "type": "console_test_launcher",
  },
  "tools_unittests": {
    "label": "//rtc_tools:tools_unittests",
    "type": "console_test_launcher",
  },
  "video_capture_tests": {
    "label": "//modules/video_capture:video_capture_tests",
    "type": "non_parallel_console_test_launcher",
    # TODO(bugs.webrtc.org/9292): remove use_webcam and the ensure script.
    "use_webcam": True,
  },
  "video_engine_tests": {
    "label": "//:video_engine_tests",
    "type": "console_test_launcher",
  },
  "video_quality_loopback_test": {
    "label": "//examples:video_quality_loopback_test",
    "type": "script",
    "script": "//examples/androidtests/video_quality_loopback_test.py",
    "args": ["."],
  },
  "webrtc_nonparallel_tests": {
    "label": "//:webrtc_nonparallel_tests",
    "type": "non_parallel_console_test_launcher",
  },
  "webrtc_perf_tests": {
    "label": "//:webrtc_perf_tests",
    "timeout": 3600,  # 1 hour
    "type": "raw",
  },
}
