/* * Copyright 2009 The WebRTC Project Authors. All rights reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #include #include "webrtc/base/gunit.h" #include "webrtc/base/socket_unittest.h" #include "webrtc/base/thread.h" #include "webrtc/base/macsocketserver.h" namespace rtc { class WakeThread : public Thread { public: WakeThread(SocketServer* ss) : ss_(ss) { } virtual ~WakeThread() { Stop(); } void Run() { ss_->WakeUp(); } private: SocketServer* ss_; }; // Test that MacAsyncSocket passes all the generic Socket tests. class MacAsyncSocketTest : public SocketTest { protected: MacAsyncSocketTest() : server_(CreateSocketServer()), scope_(server_.get()) {} // Override for other implementations of MacBaseSocketServer. virtual MacBaseSocketServer* CreateSocketServer() { return new MacCFSocketServer(); }; std::unique_ptr server_; SocketServerScope scope_; }; TEST_F(MacAsyncSocketTest, TestConnectIPv4) { SocketTest::TestConnectIPv4(); } TEST_F(MacAsyncSocketTest, TestConnectIPv6) { SocketTest::TestConnectIPv6(); } TEST_F(MacAsyncSocketTest, TestConnectWithDnsLookupIPv4) { SocketTest::TestConnectWithDnsLookupIPv4(); } TEST_F(MacAsyncSocketTest, TestConnectWithDnsLookupIPv6) { SocketTest::TestConnectWithDnsLookupIPv6(); } // BUG=https://code.google.com/p/webrtc/issues/detail?id=2272 TEST_F(MacAsyncSocketTest, DISABLED_TestConnectFailIPv4) { SocketTest::TestConnectFailIPv4(); } // Flaky. See webrtc:4738. TEST_F(MacAsyncSocketTest, DISABLED_TestConnectFailIPv6) { SocketTest::TestConnectFailIPv6(); } // Reenable once we have mac async dns TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupFailIPv4) { SocketTest::TestConnectWithDnsLookupFailIPv4(); } TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupFailIPv6) { SocketTest::TestConnectWithDnsLookupFailIPv6(); } TEST_F(MacAsyncSocketTest, TestConnectWithClosedSocketIPv4) { SocketTest::TestConnectWithClosedSocketIPv4(); } TEST_F(MacAsyncSocketTest, TestConnectWithClosedSocketIPv6) { SocketTest::TestConnectWithClosedSocketIPv6(); } // Flaky at the moment (10% failure rate). Seems the client doesn't get // signalled in a timely manner... TEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseDuringConnectIPv4) { SocketTest::TestServerCloseDuringConnectIPv4(); } TEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseDuringConnectIPv6) { SocketTest::TestServerCloseDuringConnectIPv6(); } // Flaky at the moment (0.5% failure rate). Seems the client doesn't get // signalled in a timely manner... TEST_F(MacAsyncSocketTest, TestClientCloseDuringConnectIPv4) { SocketTest::TestClientCloseDuringConnectIPv4(); } TEST_F(MacAsyncSocketTest, TestClientCloseDuringConnectIPv6) { SocketTest::TestClientCloseDuringConnectIPv6(); } TEST_F(MacAsyncSocketTest, TestServerCloseIPv4) { SocketTest::TestServerCloseIPv4(); } TEST_F(MacAsyncSocketTest, TestServerCloseIPv6) { SocketTest::TestServerCloseIPv6(); } TEST_F(MacAsyncSocketTest, TestCloseInClosedCallbackIPv4) { SocketTest::TestCloseInClosedCallbackIPv4(); } TEST_F(MacAsyncSocketTest, TestCloseInClosedCallbackIPv6) { SocketTest::TestCloseInClosedCallbackIPv6(); } TEST_F(MacAsyncSocketTest, TestSocketServerWaitIPv4) { SocketTest::TestSocketServerWaitIPv4(); } TEST_F(MacAsyncSocketTest, TestSocketServerWaitIPv6) { SocketTest::TestSocketServerWaitIPv6(); } TEST_F(MacAsyncSocketTest, TestTcpIPv4) { SocketTest::TestTcpIPv4(); } TEST_F(MacAsyncSocketTest, TestTcpIPv6) { SocketTest::TestTcpIPv6(); } TEST_F(MacAsyncSocketTest, TestSingleFlowControlCallbackIPv4) { SocketTest::TestSingleFlowControlCallbackIPv4(); } TEST_F(MacAsyncSocketTest, TestSingleFlowControlCallbackIPv6) { SocketTest::TestSingleFlowControlCallbackIPv6(); } TEST_F(MacAsyncSocketTest, DISABLED_TestUdpIPv4) { SocketTest::TestUdpIPv4(); } TEST_F(MacAsyncSocketTest, DISABLED_TestUdpIPv6) { SocketTest::TestUdpIPv6(); } TEST_F(MacAsyncSocketTest, DISABLED_TestGetSetOptionsIPv4) { SocketTest::TestGetSetOptionsIPv4(); } TEST_F(MacAsyncSocketTest, DISABLED_TestGetSetOptionsIPv6) { SocketTest::TestGetSetOptionsIPv6(); } } // namespace rtc