# Copyright (c) 2013 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.

# This is the root build file for GN. GN will start processing by loading this
# file, and recursively load all dependencies until all dependencies are either
# resolved or known not to exist (which will cause the build to fail). So if
# you add a new build file, there must be some path of dependencies from this
# file to your new one or GN won't know about it.

import("//build/config/features.gni")
import("//build/config/ui.gni")

if (is_android) {
  import("//build/config/android/config.gni")
}

declare_args() {
  # A list of extra dependencies to add to the root target. This allows a
  # checkout to add additional targets without explicitly changing any checked-
  # in files.
  root_extra_deps = []
}

# The "gn_all" target should list every root target (target that
# nothing else depends on) built by both GN and GYP. One should
# be able to run 'ninja gn_all gn_only gn_groups' and then run
# 'ninja' a second time and have the second ninja invocation do nothing.
#
# In addition, the "gn_all" target serves to pull in all of the other
# build files needed for the build.
#
# TODO(GYP): make sure that the above is true and there are scripts run
# on the bots that enforce this.

group("gn_all") {
  testonly = true

  deps = [
    "//base:base_unittests",
    "//cc:cc_unittests",
    "//chrome",
    "//chrome/test:browser_tests",
    "//chrome/test:interactive_ui_tests",
    "//chrome/test:sync_integration_tests",
    "//chrome/test:unit_tests",
    "//chrome/test/chromedriver:chromedriver_unittests",
    "//components:components_unittests",
    "//content/shell:content_shell",
    "//content/test:content_browsertests",
    "//content/test:content_perftests",
    "//content/test:content_unittests",
    "//crypto:crypto_unittests",
    "//extensions:extensions_browsertests",
    "//extensions:extensions_unittests",
    "//google_apis/gcm:gcm_unit_tests",
    "//gpu:gpu_unittests",
    "//ipc:ipc_tests",
    "//ipc/mojo:ipc_mojo_unittests",
    "//jingle:jingle_unittests",
    "//media:media_unittests",
    "//media/cast:cast_unittests",
    "//mojo",
    "//mojo/common:mojo_common_unittests",
    "//net:hpack_example_generator",
    "//net:hpack_fuzz_mutator",
    "//net:hpack_fuzz_wrapper",
    "//net:net_perftests",
    "//net:net_unittests",
    "//ppapi:ppapi_unittests",
    "//ppapi/examples",  # TODO(GYP): What's the GYP equivalent?
    "//printing:printing_unittests",
    "//skia:skia_unittests",
    "//sql:sql_unittests",
    "//sync:sync_unit_tests",
    "//third_party/WebKit/public:blink_tests",
    "//third_party/cacheinvalidation:cacheinvalidation_unittests",
    "//third_party/codesighs",
    "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",
    "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",
    "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",
    "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",
    "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
    "//third_party/pdfium/samples:pdfium_test",
    "//third_party/smhasher:pmurhash",
    "//tools/imagediff($host_toolchain)",
    "//tools/gn",
    "//tools/gn:gn_unittests",
    "//tools/telemetry:bitmaptools($host_toolchain)",
    "//ui/accessibility:accessibility_unittests",
    "//ui/app_list:app_list_unittests",
    "//ui/base:ui_base_unittests",
    "//ui/display:display_unittests",
    "//ui/events:events_unittests",
    "//ui/gfx:gfx_unittests",
    "//ui/touch_selection:ui_touch_selection_unittests",
    "//url:url_unittests",
  ]

  deps += root_extra_deps

  # TODO(GYP): Get this working on the mac?
  if (enable_extensions && !is_mac) {
    deps += [ "//extensions/shell:app_shell_unittests" ]
  }

  if (!is_android) {
    deps += [ "//remoting:remoting_unittests" ]
  }

  if (!is_win) {
    deps += [ "//breakpad:symupload" ]
  }

  if (use_x11) {
    deps += [ "//tools/xdisplaycheck" ]
  }

  if (toolkit_views) {
    deps += [ "//ui/views:views_unittests" ]
  }

  if (use_aura) {
    deps += [ "//ui/wm:wm_unittests" ]
  }

  if (use_ozone) {
    deps += [ "//ui/ozone" ]
  }

  if (enable_media_router) {
    deps += [
      "//chrome/browser/media/router/",
      "//chrome/browser/media/router:unit_tests",
    ]
  }

  if (is_win || is_mac || is_chromeos) {
    # RLZ works on these platforms.
    # TODO(GYP): Is this target needed, or pulled in automatically?
    deps += [ "//rlz:rlz_lib" ]
  }

  if (is_android) {
    deps += [
      "//base/android/linker:chromium_android_linker",
      "//build/android/gyp/test:hello_world",
      "//build/android/rezip",
      "//chrome/android:chrome_shell_apk",
      "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
      "//tools/imagediff($host_toolchain)",

      # TODO(GYP): Remove these when the components_unittests work.
      "//components/history/core/test:test",
      "//components/policy:policy_component_test_support",
      "//components/policy:test_support",
      "//components/rappor:test_support",
      "//components/signin/core/browser:test_support",
      "//components/sync_driver:test_support",
      "//components/user_manager",
      "//components/wallpaper",
      "//content/shell/android:content_shell_apk",

      # TODO(GYP): Are these needed, or will they be pulled in automatically?
      "//third_party/android_tools:android_gcm_java",
      "//third_party/android_tools:uiautomator_java",
      "//third_party/android_tools:android_support_v13_java",
      "//third_party/android_tools:android_support_v7_appcompat_java",
      "//third_party/android_tools:android_support_v7_mediarouter_java",
      "//third_party/mesa",
      "//third_party/mockito:mockito_java",
      "//third_party/openmax_dl/dl",
      "//third_party/speex",
      "//ui/android:ui_java",

      # TODO(GYP): Are these needed?
      "//chrome/test:test_support_unit",
      "//third_party/smhasher:murmurhash3",
      "//ui/message_center:test_support",
    ]
    deps -= [
      "//breakpad:symupload",  # TODO(GYP) ??
      "//chrome",  # TODO(GYP) ??
      "//chrome/test:browser_tests",  # TODO(GYP) ??
      "//chrome/test:interactive_ui_tests",  # TODO(GYP) ??
      "//chrome/test:sync_integration_tests",  # TODO(GYP) ??
      "//chrome/test:unit_tests",  # TODO(GYP)

      # Chromedriver shouldn't be compiled on Android.
      "//chrome/test/chromedriver:chromedriver_unittests",
      "//extensions:extensions_browsertests",
      "//extensions:extensions_unittests",
      "//google_apis/gcm:gcm_unit_tests",
      "//ipc:ipc_tests",  # TODO(GYP) ??
      "//jingle:jingle_unittests",  # TODO(GYP) ??
      "//net:hpack_example_generator",
      "//net:hpack_fuzz_mutator",
      "//net:hpack_fuzz_wrapper",
      "//net:net_perftests",
      "//net:net_unittests",
      "//ppapi/examples",
      "//third_party/pdfium/samples:pdfium_test",
      "//tools/gn",
      "//tools/gn:gn_unittests",
      "//ui/app_list:app_list_unittests",
      "//url:url_unittests",
    ]

    if (has_chrome_android_internal) {
      deps += [ "//clank" ]  # TODO(GYP) ??
    }
  }

  if (is_linux) {
    # The following are definitely linux-only.
    deps += [
      "//breakpad:breakpad_unittests",
      "//breakpad:generate_test_dump",
      "//dbus:dbus_test_server",
      "//dbus:dbus_unittests",
      "//net:disk_cache_memory_test",
      "//net:flip_in_mem_edsm_server",
      "//net:flip_in_mem_edsm_server_unittests",
      "//net:quic_client",
      "//net:quic_server",
      "//sandbox/linux:chrome_sandbox",
      "//sandbox/linux:sandbox_linux_unittests",
      "//sandbox/linux:sandbox_linux_jni_unittests",
    ]

    if (is_chromeos || use_ash) {
      deps += [ "//components/session_manager/core" ]
    }
  }

  if (is_linux && !is_chromeos) {
    deps += [
      # TODO(GYP): Figure out which of these should (and can) build
      # under which other conditions.
      "//base:base_perftests",
      "//base:base_i18n_perftests",
      "//base:check_example",
      "//base:protect_file_posix",
      "//base:build_utf8_validator_tables",
      "//breakpad:core-2-minidump",
      "//breakpad:minidump-2-core",
      "//build/sanitizers:copy_llvm_symbolizer",
      "//cc/blink:cc_blink_unittests",
      "//cc:cc_perftests",
      "//chrome/test:chrome_app_unittests",
      "//chrome/test:load_library_perf_tests",
      "//chrome/test:sync_performance_tests",
      "//chrome/test/chromedriver:chromedriver",
      "//chrome/test/chromedriver:chromedriver_tests",
      "//chrome/tools/profile_reset:jtl_compiler",
      "//components:components_perftests",
      "//components/network_hints/browser",
      "//components/webui_generator",
      "//content/public/app:browser",
      "//content/public/app:child",
      "//content/test:content_gl_tests",
      "//content/test:content_gl_benchmark",
      "//courgette:courgette",
      "//courgette:courgette_fuzz",
      "//courgette:courgette_minimal_tool",
      "//courgette:courgette_unittests",
      "//device:device_unittests",
      "//gin:gin_shell",
      "//gin:gin_v8_snapshot_fingerprint",
      "//gin:gin_unittests",
      "//google_apis:google_apis_unittests",
      "//google_apis/gcm:mcs_probe",
      "//gpu:angle_unittests",
      "//gpu:gl_tests",

      # TODO(GYP): Remove this when the gles2 tests work
      "//gpu/command_buffer/client:gles2_implementation_no_check",

      "//gpu:gpu_perftests",
      "//ipc:ipc_perftests",
      "//media:ffmpeg_regression_tests",  # TODO(GYP) this should be conditional on media_use_ffmpeg
      "//media:media_perftests",
      "//media/cast:cast_benchmarks",
      "//media/cast:generate_barcode_video",
      "//media/cast:generate_timecode_audio",
      "//media/cast:tap_proxy",
      "//mojo/application",
      "//net:crash_cache",
      "//net:crl_set_dump",
      "//net:dns_fuzz_stub",
      "//net:gdig",
      "//net:get_server_time",

      #"//net:hpack_example_generator",  # TODO(GYP) rockot in progress
      #"//net:hpack_fuzz_mutator",  # TODO(GYP) rockot in progress
      #"//net:hpack_fuzz_wrapper",  # TODO(GYP) rockot in progress
      #"//net:net_perftests",  # TODO(GYP) rockot in progress
      "//net:net_watcher",  # TODO(GYP): This should be conditional on use_v8_in_net
      "//net:stress_cache",
      "//net:tld_cleanup",
      "//net:run_testserver",
      "//net:dump_cache",

      # "//ppapi:pepper_hash_for_uma",  # TODO(GYP): Implement me.
      "//ppapi:ppapi_perftests",  # TODO(GYP): Are there other ppapi_* test targets?
      "//skia:filter_fuzz_stub",
      "//skia:image_operations_bench",
      "//sync:run_sync_testserver",
      "//sync:sync_endtoend_tests",
      "//sync/tools:sync_client",
      "//sync/tools:sync_listen_notifications",
      "//testing/gmock:gmock_main",
      "//third_party/codesighs:maptsvdifftool",
      "//third_party/libphonenumber:libphonenumber_unittests",
      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_perftests",
      "//tools/gn:generate_test_gn_data",
      "//tools/perf/clear_system_cache",
      "//ui/keyboard:keyboard_unittests",
      "//ui/message_center:message_center_unittests",
      "//ui/snapshot:snapshot_unittests",
      "//ui/views/examples:views_examples_with_content_exe",

      # "//v8:v8_snapshot",  # TODO(GYP): visibility?
      # "//v8:postmortem-metadata",  # TODO(GYP): visibility?

      "//third_party/codesighs:nm2tsv",
      "//third_party/leveldatabase:env_chromium_unittests",
      "//third_party/libaddressinput:libaddressinput_unittests",
      "//third_party/sqlite:sqlite_shell",
      "//ui/compositor:compositor_unittests",
    ]

    if (current_toolchain == host_toolchain) {
      # Do not build the breakpad utilities in cross-compiles.
      deps += [
        "//breakpad:dump_syms",
        "//breakpad:microdump_stackwalk",
        "//breakpad:minidump_dump",
        "//breakpad:minidump_stackwalk",
      ]
    }

    if (enable_extensions) {
      deps += [ "//extensions/shell:app_shell" ]
    }

    if (enable_nacl) {
      deps += [ "//components/nacl:nacl_loader_unittests" ]
    }

    if (!is_debug && !is_component_build) {
      deps += [ "//chrome/tools/service_discovery_sniffer" ]
    }

    if (toolkit_views) {
      deps += [ "//ui/app_list:app_list_demo" ]
    }

    if (use_ash) {
      deps += [
        "//ash:ash_shell",
        "//ash:ash_shell_unittests",
        "//ash:ash_unittests",
      ]
    }

    if (use_aura) {
      deps += [
        "//ui/aura:aura_unittests",
        "//ui/aura:bench",
        "//ui/aura:demo",
      ]
    }

    if (use_x11) {
      deps += [ "//media:player_x11" ]
      if (target_cpu != "arm") {
        deps += [ "//gpu:compositor_model_bench" ]
      }
    }
  }

  if (is_mac) {
    deps += [
      "//breakpad:crash_inspector",
      "//breakpad:dump_syms",
      "//breakpad:symupload",
      "//third_party/apple_sample_code",
      "//third_party/molokocacao",
    ]

    # TODO(GYP): Remove these when the targets below work and these
    # are pulled in automatically.
    deps += [
      "//cc/blink",
      "//components/ui/zoom:ui_zoom",
      "//content",
      "//content/test:test_support",
      "//device/battery",
      "//device/bluetooth",
      "//device/nfc",
      "//device/usb",
      "//device/vibration",
      "//media/blink",
      "//pdf",
      "//storage/browser",
      "//third_party/brotli",
      "//third_party/flac",
      "//third_party/hunspell",
      "//third_party/iccjpeg",
      "//third_party/libphonenumber",
      "//third_party/ots",
      "//third_party/qcms",
      "//third_party/smhasher:murmurhash3",
      "//third_party/speex",
      "//third_party/webrtc/system_wrappers",
      "//ui/native_theme",
      "//ui/snapshot",
      "//ui/surface",
    ]

    # TODO(dpranke): These are as-yet untriaged but need at least the above.
    deps -= [
      "//chrome",  # TODO(GYP)
      "//chrome/test:browser_tests",  # TODO(GYP)
      "//chrome/test:interactive_ui_tests",  # TODO(GYP)
      "//chrome/test:sync_integration_tests",  # TODO(GYP)
      "//chrome/test:unit_tests",  # TODO(GYP)
      "//components:components_unittests",  # TODO(GYP)
      "//content/test:content_browsertests",  # TODO(GYP)
      "//content/test:content_perftests",  # TODO(GYP)
      "//content/test:content_unittests",  # TODO(GYP)
      "//extensions:extensions_browsertests",  # TODO(GYP)
      "//extensions:extensions_unittests",  # TODO(GYP)
      "//net:net_unittests",  # TODO(GYP)
      "//ui/app_list:app_list_unittests",  # TODO(GYP)
      "//ui/gfx:gfx_unittests",  # TODO(GYP)
    ]
  } else if (is_win) {
    deps += [ "//ui/metro_viewer" ]
    deps -= [
      "//crypto:crypto_unittests",  # TODO(GYP)
      "//net:net_unittests",  # TODO(GYP)
    ]
  }
}

group("gn_only") {
  testonly = true

  if (is_linux && !is_chromeos) {
    # TODO(GYP): Figure out if any of these should be in gn_all
    # and figure out how cross-platform they are
    deps = [
      ":gn_mojo_targets",
      "//chrome/browser/resources:extension_resource_demo",
      "//chrome/installer/util:strings",
      "//chrome:main_dll",
      "//chrome/test:load_library_perf_tests",
      "//chrome/tools/convert_dict",
      "//components/constrained_window:unit_tests",
      "//components/enhanced_bookmarks:test_support",
      "//components/password_manager/content/renderer:browser_tests",
      "//components/metrics:serialization",
      "//components/proximity_auth:proximity_auth_unittests",
      "//components/rappor:unit_tests",
      "//components/sessions:unit_tests",
      "//media/blink:media_blink_unittests",
      "//media/base:base_for_cast_ios",
      "//media/cast:udp_proxy",
      "//native_client/src/trusted/platform_qualify:vcpuid",
      "//native_client/src/trusted/debug_stub:gdb_rsp_unittest",
      "//storage/browser:dump_file_system",
      "//third_party/angle:libANGLE",
      "//third_party/angle:libEGL",
      "//third_party/angle:libGLESv2",
      "//third_party/cld_2:cld_2_dynamic_data_tool",
      "//third_party/leveldatabase:leveldb_arena_test",
      "//third_party/leveldatabase:leveldb_bloom_test",
      "//third_party/leveldatabase:leveldb_db_test",
      "//third_party/leveldatabase:leveldb_crc32c_test",
      "//third_party/leveldatabase:leveldb_cache_test",
      "//third_party/leveldatabase:leveldb_env_test",
      "//third_party/leveldatabase:leveldb_write_batch_test",
      "//third_party/leveldatabase:leveldb_filter_block_test",
      "//third_party/leveldatabase:leveldb_version_edit_test",
      "//third_party/leveldatabase:leveldb_db_bench",
      "//third_party/leveldatabase:leveldb_log_test",
      "//third_party/leveldatabase:leveldb_corruption_test",
      "//third_party/leveldatabase:leveldb_table_test",
      "//third_party/leveldatabase:leveldb_skiplist_test",
      "//third_party/leveldatabase:leveldb_filename_test",
      "//third_party/leveldatabase:leveldb_dbformat_test",
      "//third_party/pdfium/third_party:freetype",
      "//third_party/libjingle:peerconnnection_server",
      "//third_party/libjpeg_turbo:simd",
      "//third_party/libjpeg_turbo:simd_asm",
      "//third_party/libsrtp:replay_driver",
      "//third_party/libsrtp:roc_driver",
      "//third_party/libsrtp:rtpw",
      "//third_party/libsrtp:rdbx_driver",
      "//third_party/libsrtp:srtp_driver",
      "//third_party/libsrtp:srtp_driver",
      "//third_party/libsrtp:srtp_test_kernel_driver",
      "//third_party/libsrtp:srtp_test_cipher_driver",
      "//third_party/libsrtp:srtp_test_datatypes_driver",
      "//third_party/libsrtp:srtp_test_aes_calc",
      "//third_party/libsrtp:srtp_test_env",
      "//third_party/libsrtp:srtp_test_rand_gen",
      "//third_party/libsrtp:srtp_test_sha1_driver",
      "//third_party/libsrtp:srtp_test_stat_driver",
      "//third_party/opus:opus_compare",
      "//third_party/opus:opus_demo",
      "//third_party/opus:test_opus_decode",
      "//third_party/opus:test_opus_encode",
      "//third_party/opus:test_opus_api",
      "//third_party/opus:test_opus_padding",
      "//third_party/webrtc/system_wrappers:field_trial_default",
      "//third_party/webrtc/system_wrappers:metrics_default",
      "//ui/display/types",
      "//ui/shell_dialogs:shell_dialogs_unittests",
      "//ui/views/examples:views_examples_exe",
    ]
    if (enable_nacl) {
      deps += [ "//native_client/src/trusted/service_runtime:sel_ldr" ]
    }
    if (use_ozone) {
      deps += [ "//ui/ozone/demo" ]
    }
    if (is_android) {
      deps += [ "//build/android/gyp/test:hello_world" ]
    }

    if (is_linux && current_toolchain == host_toolchain) {
      deps += [ "//v8:d8" ]
    }
  }
}

group("gn_mojo_targets") {
  testonly = true
  if (is_linux && !is_chromeos) {
    # TODO(GYP): Figure out if any of these should be in gn_all
    # and figure out how cross-platform they are
    deps = [
      "//chrome/browser/ui/webui/omnibox:mojo_bindings_python",
      "//chrome/browser/ui/webui/omnibox:mojo_bindings_dart",
      "//content/public/common:mojo_bindings_dart",
      "//content/public/common:mojo_bindings_python",
      "//content/common:mojo_bindings_dart",
      "//content/common:mojo_bindings_python",
      "//content/test:web_ui_test_mojo_bindings_dart",
      "//content/test:web_ui_test_mojo_bindings_python",
      "//device/battery:mojo_bindings_python",
      "//device/battery:mojo_bindings_dart",
      "//device/vibration:mojo_bindings_dart",
      "//device/vibration:mojo_bindings_python",
      "//ipc/mojo:ipc_mojo_perftests",
      "//ipc/mojo:client_channel_dart",
      "//ipc/mojo:client_channel_python",
      "//media/mojo/interfaces:interfaces_dart",
      "//media/mojo/interfaces:interfaces_python",
      "//media/mojo/services:cdm_service",
      "//media/mojo:tests",
      "//net/interfaces:interfaces_dart",
      "//net/interfaces:interfaces_python",
      "//third_party/mojo/src/mojo/edk/js/test:js_integration_tests",
      "//third_party/mojo/src/mojo/edk/js/tests:js_to_cpp_bindings_dart",
      "//third_party/mojo/src/mojo/edk/js/tests:js_to_cpp_bindings_python",
      "//third_party/mojo/src/mojo/public/python:packaged_application",
      "//third_party/mojo/src/mojo/public/python:packaged_bindings",
      "//third_party/mojo/src/mojo/public/cpp/application:test_support_standalone",
      "//third_party/mojo_services/src/accessibility/public/interfaces:interfaces_dart",
      "//third_party/mojo_services/src/accessibility/public/interfaces:interfaces_python",
      "//third_party/mojo_services/src/window_manager/public/interfaces:interfaces_dart",
      "//third_party/mojo_services/src/window_manager/public/interfaces:interfaces_python",
    ]

    if (!is_debug) {
      deps += [
        "//mojo/services/html_viewer:tests",
        "//mojo/services/network:apptests",
      ]
    }
  }
}

group("gn_visibility") {
  deps = [
    # "//build/config/sanitizers:options_sources",
    # "//third_party/pdfium:pdfium_embeddertests",  # TODO(GYP): visibility?
    # "//third_party/pdfium:pdfium_unittests",  # TODO(GYP): visibility?
    # "//ui/resources:repack_ui_test_mac_locale_pack",
    # "//v8:v8_snapshot",  # TODO(GYP): visibility?
    # "//v8:postmortem-metadata",  # TODO(GYP): visibility?
  ]
}

if (is_linux) {
  # This group corresponds to the list of tests run on the waterfall for
  # desktop Linux GYP builds from testing/buildbot/chromium.linux.json. It's
  # here to help track GYP -> GN conversion progress.
  group("linux_default_tests") {
    testonly = true
    deps = [
      # components_browsertests  TODO(GYP)
      # nacl_loader_unittests  TODO(GYP)

      "//base:base_unittests",  # PASSES (*) 2/25/2015
      "//cc:cc_unittests",  # PASSES 2/25/2015
      "//chrome/test:browser_tests",
      "//chrome/test:interactive_ui_tests",
      "//chrome/test:sync_integration_tests",  # Crashes for brettw in GN and GYP.
      "//chrome/test:unit_tests",  # PASSES 2/25/2015
      "//chrome/test/chromedriver:chromedriver_unittests",  # PASSES 2/25/2015
      "//components:components_unittests",  # PASSES 2/27/2015
      "//content/test:content_browsertests",
      "//content/test:content_unittests",  # PASSES 2/25/2015
      "//crypto:crypto_unittests",  # PASSES 2/25/2015
      "//dbus:dbus_unittests",  # PASSES 2/25/2015
      "//device:device_unittests",  # PASSES 3/07/2015
      "//extensions:extensions_browsertests",  # PASSES 2/25/2015
      "//extensions:extensions_unittests",  # PASSES 2/25/2015
      "//extensions/shell:app_shell_unittests",  # PASSES 2/25/2015
      "//google_apis/gcm:gcm_unit_tests",  # PASSES 2/25/2015
      "//google_apis:google_apis_unittests",  # PASSES 2/25/2015
      "//gpu:gpu_unittests",  # PASSES 2/25/2015
      "//ipc:ipc_tests",  # PASSES 2/25/2015
      "//ipc/mojo:ipc_mojo_unittests",  # PASSES 2/25/2015
      "//jingle:jingle_unittests",  # PASSES 2/25/2015
      "//media/cast:cast_unittests",  # PASSES 2/25/2015
      "//media:media_unittests",  # PASSES 3/3/2015
      "//mojo/common:mojo_common_unittests",  # PASSES 2/25/2015
      "//net:net_unittests",  # PASSES 2/25/2015
      "//ppapi:ppapi_unittests",  # PASSES 2/26/2015
      "//printing:printing_unittests",  # PASSES 2/25/2015
      "//remoting:remoting_unittests",  # Some crashes.
      "//sandbox/linux:sandbox_linux_unittests",  # PASSES 2/25/2015
      "//skia:skia_unittests",  # PASSES 2/25/2015
      "//sql:sql_unittests",  # PASSES 2/25/2015
      "//sync:sync_unit_tests",  # PASSES 2/25/2015
      "//third_party/cacheinvalidation:cacheinvalidation_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",  # PASSES 2/25/2015
      "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",  # PASSES 2/25/2015
      "//ui/accessibility:accessibility_unittests",  # PASSES 2/25/2015
      "//ui/app_list:app_list_unittests",  # PASSES 2/25/2015
      "//ui/aura:aura_unittests",  # PASSES 2/25/2015
      "//ui/base:ui_base_unittests",  # TODO(GYP) ResourceBundleTest.* fails.
      "//ui/compositor:compositor_unittests",  # PASSES 2/25/2015
      "//ui/display:display_unittests",  # PASSES 2/25/2015
      "//ui/events:events_unittests",  # PASSES 2/25/2015
      "//ui/gfx:gfx_unittests",  # PASSES 2/25/2015
      "//ui/touch_selection:ui_touch_selection_unittests",  # PASSES 2/25/2015
      "//ui/views:views_unittests",  # PASSES (*) 2/25/2015
      "//ui/wm:wm_unittests",  # PASSES 2/25/2015
      "//url:url_unittests",  # PASSES 2/25/2015

      # Note:
      # (*) Fails but failures match GYP build at time of testing.
    ]
  }
}
