15976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org/*
25976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * libjingle
35976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * Copyright 2009, Google Inc.
45976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *
55976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * Redistribution and use in source and binary forms, with or without
65976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * modification, are permitted provided that the following conditions are met:
75976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *
85976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *  1. Redistributions of source code must retain the above copyright notice,
95976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *     this list of conditions and the following disclaimer.
105976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *  2. Redistributions in binary form must reproduce the above copyright notice,
115976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *     this list of conditions and the following disclaimer in the documentation
125976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *     and/or other materials provided with the distribution.
135976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *  3. The name of the author may not be used to endorse or promote products
145976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *     derived from this software without specific prior written permission.
155976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org *
165976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
175976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
185976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
195976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
205976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
215976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
225976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
235976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
245976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
255976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
265976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org */
275976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
285976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/base/gunit.h"
295976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/base/scoped_ptr.h"
305976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/base/socket_unittest.h"
315976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/base/thread.h"
325976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#include "talk/base/macsocketserver.h"
335976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
345976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgnamespace talk_base {
355976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
365976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgclass WakeThread : public Thread {
375976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org public:
385976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  WakeThread(SocketServer* ss) : ss_(ss) {
395976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  }
40825bc636653d2e1144e20618ed2e2da1f451ccfabjornv@webrtc.org  virtual ~WakeThread() {
41825bc636653d2e1144e20618ed2e2da1f451ccfabjornv@webrtc.org    Stop();
42825bc636653d2e1144e20618ed2e2da1f451ccfabjornv@webrtc.org  }
435976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  void Run() {
445976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org    ss_->WakeUp();
455976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  }
465976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org private:
475976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketServer* ss_;
485976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org};
495976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
505976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#ifndef CARBON_DEPRECATED
515976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
525976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacCFSocketServer::Wait works as expected.
535976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(MacCFSocketServerTest, TestWait) {
545976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacCFSocketServer server;
555976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  uint32 start = Time();
565976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  server.Wait(1000, true);
575976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_GE(TimeSince(start), 1000);
585976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
595976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
605976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacCFSocketServer::Wakeup works as expected.
615976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(MacCFSocketServerTest, TestWakeup) {
625976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacCFSocketServer server;
635976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  WakeThread thread(&server);
645976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  uint32 start = Time();
655976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  thread.Start();
665976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  server.Wait(10000, true);
675976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_LT(TimeSince(start), 10000);
685976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
695976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
705976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacCarbonSocketServer::Wait works as expected.
715976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(MacCarbonSocketServerTest, TestWait) {
725976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacCarbonSocketServer server;
735976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  uint32 start = Time();
745976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  server.Wait(1000, true);
755976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_GE(TimeSince(start), 1000);
765976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
775976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
785976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacCarbonSocketServer::Wakeup works as expected.
795976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(MacCarbonSocketServerTest, TestWakeup) {
805976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacCarbonSocketServer server;
815976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  WakeThread thread(&server);
825976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  uint32 start = Time();
835976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  thread.Start();
845976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  server.Wait(10000, true);
855976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_LT(TimeSince(start), 10000);
865976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
875976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
885976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacCarbonAppSocketServer::Wait works as expected.
895976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(MacCarbonAppSocketServerTest, TestWait) {
905976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacCarbonAppSocketServer server;
915976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  uint32 start = Time();
925976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  server.Wait(1000, true);
935976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_GE(TimeSince(start), 1000);
945976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
955976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
965976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacCarbonAppSocketServer::Wakeup works as expected.
975976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST(MacCarbonAppSocketServerTest, TestWakeup) {
985976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacCarbonAppSocketServer server;
995976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  WakeThread thread(&server);
1005976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  uint32 start = Time();
1015976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  thread.Start();
1025976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  server.Wait(10000, true);
1035976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  EXPECT_LT(TimeSince(start), 10000);
1045976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1055976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1065976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#endif
1075976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1085976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Test that MacAsyncSocket passes all the generic Socket tests.
1095976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgclass MacAsyncSocketTest : public SocketTest {
1105976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org protected:
1115976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  MacAsyncSocketTest()
1125976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org      : server_(CreateSocketServer()),
1135976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org        scope_(server_.get()) {}
1145976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  // Override for other implementations of MacBaseSocketServer.
1155976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  virtual MacBaseSocketServer* CreateSocketServer() {
1165976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org    return new MacCFSocketServer();
1175976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  };
1185976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  talk_base::scoped_ptr<MacBaseSocketServer> server_;
1195976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketServerScope scope_;
1205976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org};
1215976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1225976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectIPv4) {
1235976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectIPv4();
1245976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1255976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1265976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectIPv6) {
1275976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectIPv6();
1285976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1295976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1305976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectWithDnsLookupIPv4) {
1315976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectWithDnsLookupIPv4();
1325976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1335976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1345976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectWithDnsLookupIPv6) {
1355976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectWithDnsLookupIPv6();
1365976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1375976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1383009c167e8b156618784610f0755fac079fb2162sergeyu@chromium.org// BUG=https://code.google.com/p/webrtc/issues/detail?id=2272
139b17e4d000599d5caf286d9599cc5244410e1f313sergeyu@chromium.orgTEST_F(MacAsyncSocketTest, DISABLED_TestConnectFailIPv4) {
1405976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectFailIPv4();
1415976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1425976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1435976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectFailIPv6) {
1445976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectFailIPv6();
1455976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1465976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1475976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Reenable once we have mac async dns
1485976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupFailIPv4) {
1495976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectWithDnsLookupFailIPv4();
1505976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1515976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1525976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupFailIPv6) {
1535976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectWithDnsLookupFailIPv6();
1545976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1555976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1565976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectWithClosedSocketIPv4) {
1575976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectWithClosedSocketIPv4();
1585976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1595976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1605976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestConnectWithClosedSocketIPv6) {
1615976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestConnectWithClosedSocketIPv6();
1625976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1635976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1645976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Flaky at the moment (10% failure rate).  Seems the client doesn't get
1655976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// signalled in a timely manner...
1665976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseDuringConnectIPv4) {
1675976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestServerCloseDuringConnectIPv4();
1685976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1695976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1705976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseDuringConnectIPv6) {
1715976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestServerCloseDuringConnectIPv6();
1725976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1735976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// Flaky at the moment (0.5% failure rate).  Seems the client doesn't get
1745976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org// signalled in a timely manner...
1755976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestClientCloseDuringConnectIPv4) {
1765976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestClientCloseDuringConnectIPv4();
1775976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1785976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1795976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestClientCloseDuringConnectIPv6) {
1805976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestClientCloseDuringConnectIPv6();
1815976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1825976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1835976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestServerCloseIPv4) {
1845976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestServerCloseIPv4();
1855976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1865976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1875976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestServerCloseIPv6) {
1885976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestServerCloseIPv6();
1895976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1905976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1915976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestCloseInClosedCallbackIPv4) {
1925976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestCloseInClosedCallbackIPv4();
1935976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1945976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1955976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestCloseInClosedCallbackIPv6) {
1965976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestCloseInClosedCallbackIPv6();
1975976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
1985976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
1995976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestSocketServerWaitIPv4) {
2005976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestSocketServerWaitIPv4();
2015976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2025976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2035976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestSocketServerWaitIPv6) {
2045976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestSocketServerWaitIPv6();
2055976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2065976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2075976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestTcpIPv4) {
2085976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestTcpIPv4();
2095976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2105976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2115976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestTcpIPv6) {
2125976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestTcpIPv6();
2135976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2145976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2155976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestSingleFlowControlCallbackIPv4) {
2165976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestSingleFlowControlCallbackIPv4();
2175976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2185976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2195976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, TestSingleFlowControlCallbackIPv6) {
2205976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestSingleFlowControlCallbackIPv6();
2215976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2225976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2235976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestUdpIPv4) {
2245976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestUdpIPv4();
2255976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2265976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2275976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestUdpIPv6) {
2285976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestUdpIPv6();
2295976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2305976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2315976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestGetSetOptionsIPv4) {
2325976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestGetSetOptionsIPv4();
2335976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2345976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2355976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacAsyncSocketTest, DISABLED_TestGetSetOptionsIPv6) {
2365976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestGetSetOptionsIPv6();
2375976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2385976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2395976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#ifndef CARBON_DEPRECATED
2405976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgclass MacCarbonAppAsyncSocketTest : public MacAsyncSocketTest {
2415976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  virtual MacBaseSocketServer* CreateSocketServer() {
2425976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org    return new MacCarbonAppSocketServer();
2435976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  };
2445976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org};
2455976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2465976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacCarbonAppAsyncSocketTest, TestSocketServerWaitIPv4) {
2475976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestSocketServerWaitIPv4();
2485976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2495976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org
2505976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.orgTEST_F(MacCarbonAppAsyncSocketTest, TestSocketServerWaitIPv6) {
2515976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org  SocketTest::TestSocketServerWaitIPv6();
2525976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}
2535976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org#endif
2545976650443d68ccfadf1dea24999ee459dd2819mflodman@webrtc.org}  // namespace talk_base
255