# 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",
  },
  "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",
    ],
  },
  "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",
  },
  "voice_engine_unittests": {
    "label": "//voice_engine:voice_engine_unittests",
    "type": "console_test_launcher",
  },
  "webrtc_nonparallel_tests": {
    "label": "//:webrtc_nonparallel_tests",
    "type": "non_parallel_console_test_launcher",
  },
  "webrtc_perf_tests": {
    "label": "//:webrtc_perf_tests",
    "type": "non_parallel_console_test_launcher",
  },
}
