# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# ninja_to_gn - A mapping of Ninja build target names to GN labels for
# the tests run on the bots.
#
# This mapping is used by MB so that we can uniformly refer to test binaries
# by their Ninja target names in the recipes and not need to worry about how
# they are referred to in GN or GYP specifically (the GYP target name is pretty
# much always the same as the Ninja target name, since GYP target names are not
# hierarchical).

{
  "base_unittests":                    "//base:base_unittests",
  "accessibility_unittests":           "//ui/accessibility:accessibility_unittests",
  "angle_unittests":                   "//gpu:angle_unittests",
  "app_list_unittests":                "//ui/app_list:app_list_unittests",
  "app_shell_unittests":               "//extensions/shell:app_shell_unittests",
  "ash_unittests":                     "//ash:ash_unittests",
  "aura_unittests":                    "//ui/aura:aura_unittests",
  "blink_heap_unittests":              "//third_party/WebKit/public:blink_heap_unittests",
  "blink_platform_unittests":          "//third_party/WebKit/public:blink_platform_unittests",
  "browser_tests":                     "//chrome/test:browser_tests",
  "cacheinvalidation_unittests":       "//third_party/cacheinvalidation:cacheinvalidation_unittests",
  "cast_base_unittests":               "//chromecast/base:cast_base_unittests",
  "cast_crash_unittests":              "//chromecast/crash:cast_crash_unittests",
  "cast_media_unittests":              "//chromecast/media:cast_media_unittests",
  "cast_shell_unittests":              "//chromecast/app:cast_shell_unittests",
  "cast_unittests":                    "//media/cast:cast_unittests",
  "cc_unittests":                      "//cc:cc_unittests",
  "chromedriver_unittests":            "//chrome/test/chromedriver:chromedriver_unittests",
  "chrome_elf_unittests":              "//chrome_elf:chrome_elf_unittests",
  "chromeos_unittests":                "//chromeos:chromeos_unittests",
  "components_browsertests":           "//components:components_browsertests",
  "components_unittests":              "//components:components_unittests",
  "compositor_unittests":              "//ui/compositor:compositor_unittests",
  "content_browsertests":              "//content/test:content_browsertests",
  "content_unittests":                 "//content/test:content_unittests",
  "courgette_unittests":               "//courgette:courgette_unittests",
  "crypto_unittests":                  "//crypto:crypto_unittests",
  "dbus_unittests":                    "//dbus:dbus_unittests",
  "device_unittests":                  "//device:device_unittests",
  "display_unittests":                 "//ui/display:display_unittests",
  "events_unittests":                  "//ui/events:events_unittests",
  "extensions_browsertests":           "//extensions:extensions_browsertests",
  "extensions_unittests":              "//extensions:extensions_unittests",
  "gcm_unit_tests":                    "//google_apis/gcm:gcm_unit_tests",
  "gfx_unittests":                     "//ui/gfx:gfx_unittests",
  "gl_unittests":                      "//ui/gl:gl_unittests",
  "gn_unittests":                      "//tools/gn:gn_unittests",
  "google_apis_unittests":             "//google_apis:google_apis_unittests",
  "gpu_unittests":                     "//gpu:gpu_unittests",
  "html_viewer_unittests":             "//components/html_viewer:html_viewer_unittests",
  "installer_util_unittests":          "//chrome/installer/util:installer_util_unittests",
  "interactive_ui_tests":              "//chrome/test:interactive_ui_tests",
  "ipc_mojo_unittests":                "//ipc/mojo:ipc_mojo_unittests",
  "ipc_tests":                         "//ipc:ipc_tests",
  "jingle_unittests":                  "//jingle:jingle_unittests",
  "keyboard_unittests":                "//ui/keyboard:keyboard_unittests",
  "media_unittests":                   "//media:media_unittests",
  "midi_unittests":                    "//media:midi_unittests",
  "mojo_common_unittests":             "//mojo/common:mojo_common_unittests",
  "mojo_public_application_unittests": "//third_party/mojo/src/mojo/edk/test:mojo_public_applicaiton_unittests",
  "mojo_public_bindings_unittests":    "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",
  "mojo_public_environment_unittests": "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",
  "mojo_public_system_unittests":      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",
  "mojo_public_utility_unittests":     "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
  "mojo_runner_unittests":             "//mojo/runner:mojo_runner_unittests",
  "mojo_shell_unittests":              "//mojo/shell:mojo_shell_unittests",
  "mojo_surfaces_lib_unittests":       "//mojo/converters/surfaces/tests:mojo_surfaces_lib_unittests",
  "mojo_system_unittests":             "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",
  "mojo_view_manager_lib_unittests":   "//components/view_manager/public/cpp/tests:mojo_view_manager_lib_unittests",
  "message_center_unittests":          "//ui/message_center:message_center_unittests",
  "nacl_loader_unittests":             "//components/nacl:nacl_loader_unittests",
  "net_unittests":                     "//net:net_unittests",
  "ozone_unittests":                   "//ui/ozone:ozone_unittests",
  "ppapi_unittests":                   "//ppapi:ppapi_unittests",
  "printing_unittests":                "//printing:printing_unittests",
  "remoting_unittests":                "//remoting:remoting_unittests",
  "resource_provider_unittests":       "//components/resource_provider:resource_provider_unittests",
  "sandbox_linux_unittests":           "//sandbox/linux:sandbox_linux_unittests",
  "sandbox_mac_unittests":             "//sandbox/mac:sandbox_mac_unittests",
  "sbox_integration_tests":            "//sandbox/win:sbox_integration_tests",
  "sbox_unittests":                    "//sandbox/win:sbox_unittests",
  "sbox_validation_tests":             "//sandbox/win:sbox_validation_tests",
  "setup_unittests":                   "//chrome/installer/setup:setup_unittests",
  "skia_unittests":                    "//skia:skia_unittests",
  "sql_unittests":                     "//sql:sql_unittests",
  "sync_integration_tests":            "//sync:sync_integration_tests",
  "sync_unit_tests":                   "//sync:sync_unit_tests",
  "ui_base_unittests":                 "//ui/base:ui_base_unittests",
  "ui_chromeos_unittests":             "//ui/chromeos:ui_chromeos_unittests",
  "ui_touch_selection_unittests":      "//ui/touch_selection:ui_touch_selection_unittests",
  "unit_tests":                        "//chrome/test:unit_tests",
  "url_unittests":                     "//url:url_unittests",
  "view_manager_unittests":            "//components/view_manager:view_manager_unittests",
  "views_unittests":                   "//ui/views:views_unittests",
  "webkit_unit_tests":                 "//third_party/WebKit/public:webkit_unit_tests",
  "wm_unittests":                      "//ui/wm:wm_unittests",
  "wtf_unittests":                     "//third_party/WebKit/public:wtf_unittests",
}
