# 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",
  },
  "AppRTCMobileTest": {
    "label": "//examples:AppRTCMobileTest",
    "type": "additional_compile_target",
  },
  "AppRTCMobileTestStubbedVideoIO": {
    "label": "//examples:AppRTCMobileTestStubbedVideoIO",
    "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",
    ]
  },
  "libjingle_peerconnection_android_unittest": {
    "label": "//sdk/android:libjingle_peerconnection_android_unittest",
    "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_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",
  },
  "ortc_unittests": {
    "label": "//ortc:ortc_unittests",
    "type": "console_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",
  },
  "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_engine_tests": {
    "label": "//:video_engine_tests",
    "type": "console_test_launcher",
  },
  "video_quality_loopback_test": {
    "label": "//examples:AppRTCMobileTestStubbedVideoIO",
    "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",
  },
}
