| Index: webrtc/base/BUILD.gn | 
| diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn | 
| index a3ee03f4ba0f30783e87ef7111fb5894d7dbb09c..2a17d923ad1b90bf4f8af339b9aa0ba592c3dbf3 100644 | 
| --- a/webrtc/base/BUILD.gn | 
| +++ b/webrtc/base/BUILD.gn | 
| @@ -92,6 +92,10 @@ source_set("protobuf_utils") { | 
|  | 
| # The subset of rtc_base approved for use outside of libjingle. | 
| rtc_static_library("rtc_base_approved") { | 
| +  # TODO(kjellander): Remove (bugs.webrtc.org/7480) | 
| +  # Enabling GN check triggers a cyclic dependency caused by rate_limiter.cc: | 
| +  #   :rtc_base_approved -> //webrtc/system_wrappers -> :rtc_base_approved | 
| +  check_includes = false | 
| defines = [] | 
| libs = [] | 
| deps = [] | 
| @@ -136,8 +140,6 @@ rtc_static_library("rtc_base_approved") { | 
| "location.h", | 
| "md5.cc", | 
| "md5.h", | 
| -    "md5digest.cc", | 
| -    "md5digest.h", | 
| "mod_ops.h", | 
| "onetimeevent.h", | 
| "optional.cc", | 
| @@ -172,6 +174,7 @@ rtc_static_library("rtc_base_approved") { | 
| "string_to_number.h", | 
| "stringencode.cc", | 
| "stringencode.h", | 
| +    "stringize_macros.h", | 
| "stringutils.cc", | 
| "stringutils.h", | 
| "swap_queue.h", | 
| @@ -655,78 +658,84 @@ rtc_source_set("gtest_prod") { | 
| ] | 
| } | 
|  | 
| -if (rtc_include_tests) { | 
| -  config("rtc_base_tests_utils_exported_config") { | 
| -    defines = [ "GTEST_RELATIVE_PATH" ] | 
| -  } | 
| +config("rtc_base_tests_utils_exported_config") { | 
| +  defines = [ "GTEST_RELATIVE_PATH" ] | 
| +} | 
|  | 
| -  config("rtc_base_tests_utils_warnings_config") { | 
| -    if (is_win && is_clang) { | 
| -      cflags = [ | 
| -        # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270 | 
| -        "-Wno-reorder", | 
| -        "-Wno-sign-compare", | 
| -      ] | 
| -    } | 
| +config("rtc_base_tests_utils_warnings_config") { | 
| +  if (is_win && is_clang) { | 
| +    cflags = [ | 
| +      # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270 | 
| +      "-Wno-reorder", | 
| +      "-Wno-sign-compare", | 
| +    ] | 
| } | 
| +} | 
|  | 
| -  rtc_source_set("rtc_base_tests_main") { | 
| -    testonly = true | 
| -    sources = [ | 
| -      "unittest_main.cc", | 
| -    ] | 
| -    public_configs = [ ":rtc_base_tests_utils_exported_config" ] | 
| -    deps = [ | 
| -      ":rtc_base_tests_utils", | 
| -    ] | 
| -    public_deps = [ | 
| -      "//testing/gmock", | 
| -      "//testing/gtest", | 
| -    ] | 
| +rtc_source_set("rtc_base_tests_utils") { | 
| +  testonly = true | 
| +  sources = [ | 
| +    # Also use this as a convenient dumping ground for misc files that are | 
| +    # included by multiple targets below. | 
| +    "cpu_time.cc", | 
| +    "cpu_time.h", | 
| +    "fakeclock.cc", | 
| +    "fakeclock.h", | 
| +    "fakenetwork.h", | 
| +    "fakesslidentity.h", | 
| +    "firewallsocketserver.cc", | 
| +    "firewallsocketserver.h", | 
| +    "gunit.h", | 
| +    "httpserver.cc", | 
| +    "httpserver.h", | 
| +    "md5digest.cc", | 
| +    "md5digest.h", | 
| +    "memory_usage.cc", | 
| +    "memory_usage.h", | 
| +    "natserver.cc", | 
| +    "natserver.h", | 
| +    "natsocketfactory.cc", | 
| +    "natsocketfactory.h", | 
| +    "nattypes.cc", | 
| +    "nattypes.h", | 
| +    "proxyserver.cc", | 
| +    "proxyserver.h", | 
| +    "sigslottester.h", | 
| +    "sigslottester.h.pump", | 
| +    "testbase64.h", | 
| +    "testechoserver.h", | 
| +    "testutils.h", | 
| +    "timedelta.h", | 
| +  ] | 
| +  configs += [ ":rtc_base_tests_utils_warnings_config" ] | 
| +  public_configs = [ ":rtc_base_tests_utils_exported_config" ] | 
| +  deps = [ | 
| +    ":rtc_base", | 
| +    "../test:field_trial", | 
| +    "../test:test_support", | 
| +  ] | 
| +  public_deps = [ | 
| +    "//testing/gmock", | 
| +    "//testing/gtest", | 
| +  ] | 
|  | 
| -    if (!build_with_chromium && is_clang) { | 
| -      # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
| -      suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
| -    } | 
| +  if (!build_with_chromium && is_clang) { | 
| +    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
| +    suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] | 
| } | 
| +} | 
|  | 
| -  rtc_source_set("rtc_base_tests_utils") { | 
| +if (rtc_include_tests) { | 
| +  rtc_source_set("rtc_base_tests_main") { | 
| testonly = true | 
| sources = [ | 
| -      # Also use this as a convenient dumping ground for misc files that are | 
| -      # included by multiple targets below. | 
| -      "cpu_time.cc", | 
| -      "cpu_time.h", | 
| -      "fakeclock.cc", | 
| -      "fakeclock.h", | 
| -      "fakenetwork.h", | 
| -      "fakesslidentity.h", | 
| -      "firewallsocketserver.cc", | 
| -      "firewallsocketserver.h", | 
| -      "gunit.h", | 
| -      "httpserver.cc", | 
| -      "httpserver.h", | 
| -      "memory_usage.cc", | 
| -      "memory_usage.h", | 
| -      "natserver.cc", | 
| -      "natserver.h", | 
| -      "natsocketfactory.cc", | 
| -      "natsocketfactory.h", | 
| -      "nattypes.cc", | 
| -      "nattypes.h", | 
| -      "proxyserver.cc", | 
| -      "proxyserver.h", | 
| -      "sigslottester.h", | 
| -      "sigslottester.h.pump", | 
| -      "testbase64.h", | 
| -      "testechoserver.h", | 
| -      "testutils.h", | 
| -      "timedelta.h", | 
| +      "unittest_main.cc", | 
| ] | 
| -    configs += [ ":rtc_base_tests_utils_warnings_config" ] | 
| public_configs = [ ":rtc_base_tests_utils_exported_config" ] | 
| deps = [ | 
| ":rtc_base", | 
| +      ":rtc_base_approved", | 
| +      ":rtc_base_tests_utils", | 
| "../test:field_trial", | 
| "../test:test_support", | 
| ] | 
| @@ -763,6 +772,9 @@ if (rtc_include_tests) { | 
| deps = [ | 
| ":rtc_base", | 
| ":rtc_base_tests_main", | 
| +      ":rtc_base_tests_utils", | 
| +      "../system_wrappers:system_wrappers", | 
| +      "../test:test_support", | 
| "//testing/gtest", | 
| ] | 
| if (is_win) { | 
| @@ -817,6 +829,7 @@ if (rtc_include_tests) { | 
| "safe_minmax_unittest.cc", | 
| "string_to_number_unittest.cc", | 
| "stringencode_unittest.cc", | 
| +      "stringize_macros_unittest.cc", | 
| "stringutils_unittest.cc", | 
| "swap_queue_unittest.cc", | 
| "thread_annotations_unittest.cc", | 
| @@ -825,8 +838,13 @@ if (rtc_include_tests) { | 
| "timeutils_unittest.cc", | 
| ] | 
| deps = [ | 
| +      ":rtc_base", | 
| ":rtc_base_approved", | 
| ":rtc_base_tests_main", | 
| +      ":rtc_base_tests_utils", | 
| +      ":rtc_task_queue", | 
| +      "../system_wrappers:system_wrappers", | 
| +      "../test:test_support", | 
| ] | 
| if (!build_with_chromium && is_clang) { | 
| # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
| @@ -850,7 +868,9 @@ if (rtc_include_tests) { | 
| ] | 
| deps = [ | 
| ":rtc_base_tests_main", | 
| +      ":rtc_base_tests_utils", | 
| ":rtc_task_queue", | 
| +      "../test:test_support", | 
| ] | 
| if (!build_with_chromium && is_clang) { | 
| # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). | 
| @@ -872,8 +892,10 @@ if (rtc_include_tests) { | 
| "numerics/percentile_filter_unittest.cc", | 
| ] | 
| deps = [ | 
| +      ":rtc_base_approved", | 
| ":rtc_base_tests_main", | 
| ":rtc_numerics", | 
| +      "../test:test_support", | 
| ] | 
| } | 
|  | 
| @@ -939,6 +961,8 @@ if (rtc_include_tests) { | 
| } | 
| deps = [ | 
| ":rtc_base_tests_main", | 
| +      ":rtc_base_tests_utils", | 
| +      "../test:test_support", | 
| ] | 
| public_deps = [ | 
| ":rtc_base", | 
|  |