Get tests working on systems that only support IPv6.

For every failing test, the solution was either to do a "has IPv4" check
before the test is run, or avoid depending on real network interfaces
altogether.

This specifically fixes rtc_unittests, peerconnection_unittests, and
webrtc_nonparallel_tests.

BUG=None

Review-Url: https://codereview.webrtc.org/2881973002
Cr-Commit-Position: refs/heads/master@{#18155}
diff --git a/webrtc/base/physicalsocketserver_unittest.cc b/webrtc/base/physicalsocketserver_unittest.cc
index e2f05e9..20e66ce 100644
--- a/webrtc/base/physicalsocketserver_unittest.cc
+++ b/webrtc/base/physicalsocketserver_unittest.cc
@@ -22,6 +22,12 @@
 
 namespace rtc {
 
+#define MAYBE_SKIP_IPV4                    \
+  if (!HasIPv4Enabled()) {                 \
+    LOG(LS_INFO) << "No IPv4... skipping"; \
+    return;                                \
+  }
+
 #define MAYBE_SKIP_IPV6                    \
   if (!HasIPv6Enabled()) {                 \
     LOG(LS_INFO) << "No IPv6... skipping"; \
@@ -164,6 +170,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestConnectIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestConnectIPv4();
 }
 
@@ -172,6 +179,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestConnectWithDnsLookupIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestConnectWithDnsLookupIPv4();
 }
 
@@ -180,6 +188,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestConnectFailIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestConnectFailIPv4();
 }
 
@@ -258,6 +267,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestConnectAcceptErrorIPv4) {
+  MAYBE_SKIP_IPV4;
   ConnectInternalAcceptError(kIPv4Loopback);
 }
 
@@ -284,6 +294,7 @@
 #define MAYBE_TestWritableAfterPartialWriteIPv4 TestWritableAfterPartialWriteIPv4
 #endif
 TEST_F(PhysicalSocketTest, MAYBE_TestWritableAfterPartialWriteIPv4) {
+  MAYBE_SKIP_IPV4;
   WritableAfterPartialWrite(kIPv4Loopback);
 }
 
@@ -303,6 +314,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestConnectWithDnsLookupFailIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestConnectWithDnsLookupFailIPv4();
 }
 
@@ -312,6 +324,7 @@
 
 
 TEST_F(PhysicalSocketTest, TestConnectWithClosedSocketIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestConnectWithClosedSocketIPv4();
 }
 
@@ -320,6 +333,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestConnectWhileNotClosedIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestConnectWhileNotClosedIPv4();
 }
 
@@ -328,6 +342,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestServerCloseDuringConnectIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestServerCloseDuringConnectIPv4();
 }
 
@@ -336,6 +351,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestClientCloseDuringConnectIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestClientCloseDuringConnectIPv4();
 }
 
@@ -344,6 +360,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestServerCloseIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestServerCloseIPv4();
 }
 
@@ -352,6 +369,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestCloseInClosedCallbackIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestCloseInClosedCallbackIPv4();
 }
 
@@ -360,6 +378,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestSocketServerWaitIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestSocketServerWaitIPv4();
 }
 
@@ -368,6 +387,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestTcpIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestTcpIPv4();
 }
 
@@ -376,6 +396,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestUdpIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestUdpIPv4();
 }
 
@@ -399,6 +420,7 @@
 #define MAYBE_TestUdpReadyToSendIPv4 TestUdpReadyToSendIPv4
 #endif
 TEST_F(PhysicalSocketTest, MAYBE_TestUdpReadyToSendIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestUdpReadyToSendIPv4();
 }
 
@@ -413,6 +435,7 @@
 }
 
 TEST_F(PhysicalSocketTest, TestGetSetOptionsIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestGetSetOptionsIPv4();
 }
 
@@ -425,6 +448,7 @@
 // We don't get recv timestamps on Mac.
 #if !defined(WEBRTC_MAC)
 TEST_F(PhysicalSocketTest, TestSocketRecvTimestampIPv4) {
+  MAYBE_SKIP_IPV4;
   SocketTest::TestSocketRecvTimestampIPv4();
 }
 
@@ -437,6 +461,7 @@
 // (not loopback), Bind will return an error.
 TEST_F(PhysicalSocketTest,
        BindFailsIfNetworkBinderFailsForNonLoopbackInterface) {
+  MAYBE_SKIP_IPV4;
   FakeNetworkBinder fake_network_binder;
   server_->set_network_binder(&fake_network_binder);
   std::unique_ptr<AsyncSocket> socket(
@@ -449,6 +474,7 @@
 // Network binder shouldn't be used if the socket is bound to the "any" IP.
 TEST_F(PhysicalSocketTest,
        NetworkBinderIsNotUsedForAnyIp) {
+  MAYBE_SKIP_IPV4;
   FakeNetworkBinder fake_network_binder;
   server_->set_network_binder(&fake_network_binder);
   std::unique_ptr<AsyncSocket> socket(
@@ -462,6 +488,7 @@
 // tolerated.
 TEST_F(PhysicalSocketTest,
        BindSucceedsIfNetworkBinderFailsForLoopbackInterface) {
+  MAYBE_SKIP_IPV4;
   FakeNetworkBinder fake_network_binder;
   server_->set_network_binder(&fake_network_binder);
   std::unique_ptr<AsyncSocket> socket(