Create a 'webrtc_nonparallel_tests' target.

Used for tests that cannot be run in parallel due to using non-virtual
resources such as filesystems and sockets. Initially moves socket
unittests from rtc_unittest since
PhysicalSocketTest.TestUdpReadyToSendIPv4 is one of the worst flake
offenders.

Future prospect targets are GTEST_DEATH tests that are flaky on Mac in
parallel for instance.

BUG=chromium:445880
R=kjellander@webrtc.org

Review URL: https://codereview.webrtc.org/1426643003 .

Cr-Commit-Position: refs/heads/master@{#10446}
diff --git a/webrtc/base/base_tests.gyp b/webrtc/base/base_tests.gyp
index 4c3dd3d..ee371f4 100644
--- a/webrtc/base/base_tests.gyp
+++ b/webrtc/base/base_tests.gyp
@@ -78,10 +78,8 @@
           'multipart_unittest.cc',
           'nat_unittest.cc',
           'network_unittest.cc',
-          'nullsocketserver_unittest.cc',
           'optionsfile_unittest.cc',
           'pathutils_unittest.cc',
-          'physicalsocketserver_unittest.cc',
           'profiler_unittest.cc',
           'proxy_unittest.cc',
           'proxydetect_unittest.cc',
@@ -96,9 +94,6 @@
           'sigslot_unittest.cc',
           'sigslottester.h',
           'sigslottester.h.pump',
-          'socket_unittest.cc',
-          'socket_unittest.h',
-          'socketaddress_unittest.cc',
           'stream_unittest.cc',
           'stringencode_unittest.cc',
           'stringutils_unittest.cc',
@@ -111,7 +106,6 @@
           'timeutils_unittest.cc',
           'urlencode_unittest.cc',
           'versionparsing_unittest.cc',
-          'virtualsocket_unittest.cc',
           # TODO(ronghuawu): Reenable this test.
           # 'windowpicker_unittest.cc',
         ],
@@ -128,23 +122,17 @@
             'sources': [
               'win32_unittest.cc',
               'win32regkey_unittest.cc',
-              'win32socketserver_unittest.cc',
               'win32window_unittest.cc',
               'win32windowpicker_unittest.cc',
               'winfirewall_unittest.cc',
             ],
             'sources!': [
-              # TODO(ronghuawu): Fix TestUdpReadyToSendIPv6 on windows bot
-              # then reenable these tests.
-              'physicalsocketserver_unittest.cc',
-              'socket_unittest.cc',
-              'win32socketserver_unittest.cc',
+              # TODO(pbos): Reenable this test.
               'win32windowpicker_unittest.cc',
             ],
           }],
           ['OS=="mac"', {
             'sources': [
-              'macsocketserver_unittest.cc',
               'macutils_unittest.cc',
             ],
           }],
diff --git a/webrtc/build/apk_tests.gyp b/webrtc/build/apk_tests.gyp
index a9481d2..a3833ff 100644
--- a/webrtc/build/apk_tests.gyp
+++ b/webrtc/build/apk_tests.gyp
@@ -202,6 +202,20 @@
       ],
     },
     {
+      'target_name': 'webrtc_nonparallel_tests_apk',
+      'type': 'none',
+      'variables': {
+        'test_suite_name': 'webrtc_nonparallel_tests',
+        'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)webrtc_nonparallel_tests<(SHARED_LIB_SUFFIX)',
+      },
+      'dependencies': [
+        '<(webrtc_root)/webrtc.gyp:webrtc_nonparallel_tests',
+      ],
+      'includes': [
+        '../../build/apk_test.gypi',
+      ],
+    },
+    {
       'target_name': 'audio_codec_speed_tests_apk',
       'type': 'none',
       'variables': {
diff --git a/webrtc/test/test.gyp b/webrtc/test/test.gyp
index 442b087..0d251df 100644
--- a/webrtc/test/test.gyp
+++ b/webrtc/test/test.gyp
@@ -103,6 +103,7 @@
       'dependencies': [
         'field_trial',
         'histogram',
+        'test_support',
         '<(DEPTH)/testing/gtest.gyp:gtest',
         '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
       ],
diff --git a/webrtc/webrtc_tests.gypi b/webrtc/webrtc_tests.gypi
index 0e245c5..547b99b 100644
--- a/webrtc/webrtc_tests.gypi
+++ b/webrtc/webrtc_tests.gypi
@@ -42,6 +42,7 @@
         'video_loopback',
         'video_replay',
         'webrtc_perf_tests',
+        'webrtc_nonparallel_tests',
       ],
     },
     {
@@ -232,6 +233,57 @@
         }],
       ],
     },
+    {
+      'target_name': 'webrtc_nonparallel_tests',
+      'type': '<(gtest_target_type)',
+      'sources': [
+        'base/nullsocketserver_unittest.cc',
+        'base/physicalsocketserver_unittest.cc',
+        'base/socket_unittest.cc',
+        'base/socket_unittest.h',
+        'base/socketaddress_unittest.cc',
+        'base/virtualsocket_unittest.cc',
+      ],
+      'defines': [
+        'GTEST_RELATIVE_PATH',
+      ],
+      'dependencies': [
+        '<(DEPTH)/testing/gtest.gyp:gtest',
+        'base/base.gyp:rtc_base',
+        'test/test.gyp:test_main',
+      ],
+      'conditions': [
+        ['OS=="android"', {
+          'dependencies': [
+            '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code',
+          ],
+        }],
+        ['OS=="win"', {
+          'sources': [
+            'base/win32socketserver_unittest.cc',
+          ],
+          'sources!': [
+            # TODO(ronghuawu): Fix TestUdpReadyToSendIPv6 on windows bot
+            # then reenable these tests.
+            # TODO(pbos): Move test disabling to ifdefs within the test files
+            # instead of here.
+            'base/physicalsocketserver_unittest.cc',
+            'base/socket_unittest.cc',
+            'base/win32socketserver_unittest.cc',
+          ],
+        }],
+        ['OS=="mac"', {
+          'sources': [
+            'base/macsocketserver_unittest.cc',
+          ],
+        }],
+        ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', {
+          'defines': [
+            'CARBON_DEPRECATED=YES',
+          ],
+        }],
+      ],
+    },
   ],
   'conditions': [
     ['OS=="android"', {
@@ -257,6 +309,13 @@
             '<(apk_tests_path):webrtc_perf_tests_apk',
           ],
         },
+        {
+          'target_name': 'webrtc_nonparallel_tests_apk_target',
+          'type': 'none',
+          'dependencies': [
+            '<(apk_tests_path):webrtc_nonparallel_tests_apk',
+          ],
+        },
       ],
     }],
     ['test_isolation_mode != "noop"', {