blob: 4c0432af049c935f9f3b2f01aacce7c48e4c9856 [file] [log] [blame]
henrike@webrtc.orgf0488722014-05-13 18:00:26 +00001/*
2 * Copyright 2009 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/base/gunit.h"
12#include "webrtc/base/scoped_ptr.h"
13#include "webrtc/base/socket_unittest.h"
14#include "webrtc/base/thread.h"
15#include "webrtc/base/macsocketserver.h"
16
17namespace rtc {
18
19class WakeThread : public Thread {
20 public:
21 WakeThread(SocketServer* ss) : ss_(ss) {
22 }
23 virtual ~WakeThread() {
24 Stop();
25 }
26 void Run() {
27 ss_->WakeUp();
28 }
29 private:
30 SocketServer* ss_;
31};
32
33#ifndef CARBON_DEPRECATED
34
35// Test that MacCFSocketServer::Wait works as expected.
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +000036TEST(MacCFSocketServerTest, DISABLED_TestWait) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000037 MacCFSocketServer server;
38 uint32 start = Time();
39 server.Wait(1000, true);
40 EXPECT_GE(TimeSince(start), 1000);
41}
42
43// Test that MacCFSocketServer::Wakeup works as expected.
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +000044TEST(MacCFSocketServerTest, DISABLED_TestWakeup) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000045 MacCFSocketServer server;
46 WakeThread thread(&server);
47 uint32 start = Time();
48 thread.Start();
49 server.Wait(10000, true);
50 EXPECT_LT(TimeSince(start), 10000);
51}
52
53// Test that MacCarbonSocketServer::Wait works as expected.
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +000054TEST(MacCarbonSocketServerTest, DISABLED_TestWait) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000055 MacCarbonSocketServer server;
56 uint32 start = Time();
57 server.Wait(1000, true);
58 EXPECT_GE(TimeSince(start), 1000);
59}
60
61// Test that MacCarbonSocketServer::Wakeup works as expected.
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +000062TEST(MacCarbonSocketServerTest, DISABLED_TestWakeup) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000063 MacCarbonSocketServer server;
64 WakeThread thread(&server);
65 uint32 start = Time();
66 thread.Start();
67 server.Wait(10000, true);
68 EXPECT_LT(TimeSince(start), 10000);
69}
70
71// Test that MacCarbonAppSocketServer::Wait works as expected.
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +000072TEST(MacCarbonAppSocketServerTest, DISABLED_TestWait) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000073 MacCarbonAppSocketServer server;
74 uint32 start = Time();
75 server.Wait(1000, true);
76 EXPECT_GE(TimeSince(start), 1000);
77}
78
79// Test that MacCarbonAppSocketServer::Wakeup works as expected.
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +000080TEST(MacCarbonAppSocketServerTest, DISABLED_TestWakeup) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +000081 MacCarbonAppSocketServer server;
82 WakeThread thread(&server);
83 uint32 start = Time();
84 thread.Start();
85 server.Wait(10000, true);
86 EXPECT_LT(TimeSince(start), 10000);
87}
88
89#endif
90
91// Test that MacAsyncSocket passes all the generic Socket tests.
92class MacAsyncSocketTest : public SocketTest {
93 protected:
94 MacAsyncSocketTest()
95 : server_(CreateSocketServer()),
96 scope_(server_.get()) {}
97 // Override for other implementations of MacBaseSocketServer.
98 virtual MacBaseSocketServer* CreateSocketServer() {
99 return new MacCFSocketServer();
100 };
101 rtc::scoped_ptr<MacBaseSocketServer> server_;
102 SocketServerScope scope_;
103};
104
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000105TEST_F(MacAsyncSocketTest, DISABLED_TestConnectIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000106 SocketTest::TestConnectIPv4();
107}
108
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000109TEST_F(MacAsyncSocketTest, DISABLED_TestConnectIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000110 SocketTest::TestConnectIPv6();
111}
112
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000113TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000114 SocketTest::TestConnectWithDnsLookupIPv4();
115}
116
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000117TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000118 SocketTest::TestConnectWithDnsLookupIPv6();
119}
120
121// BUG=https://code.google.com/p/webrtc/issues/detail?id=2272
122TEST_F(MacAsyncSocketTest, DISABLED_TestConnectFailIPv4) {
123 SocketTest::TestConnectFailIPv4();
124}
125
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000126TEST_F(MacAsyncSocketTest, DISABLED_TestConnectFailIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000127 SocketTest::TestConnectFailIPv6();
128}
129
130// Reenable once we have mac async dns
131TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupFailIPv4) {
132 SocketTest::TestConnectWithDnsLookupFailIPv4();
133}
134
135TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithDnsLookupFailIPv6) {
136 SocketTest::TestConnectWithDnsLookupFailIPv6();
137}
138
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000139TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithClosedSocketIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000140 SocketTest::TestConnectWithClosedSocketIPv4();
141}
142
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000143TEST_F(MacAsyncSocketTest, DISABLED_TestConnectWithClosedSocketIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000144 SocketTest::TestConnectWithClosedSocketIPv6();
145}
146
147// Flaky at the moment (10% failure rate). Seems the client doesn't get
148// signalled in a timely manner...
149TEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseDuringConnectIPv4) {
150 SocketTest::TestServerCloseDuringConnectIPv4();
151}
152
153TEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseDuringConnectIPv6) {
154 SocketTest::TestServerCloseDuringConnectIPv6();
155}
156// Flaky at the moment (0.5% failure rate). Seems the client doesn't get
157// signalled in a timely manner...
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000158TEST_F(MacAsyncSocketTest, DISABLED_TestClientCloseDuringConnectIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000159 SocketTest::TestClientCloseDuringConnectIPv4();
160}
161
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000162TEST_F(MacAsyncSocketTest, DISABLED_TestClientCloseDuringConnectIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000163 SocketTest::TestClientCloseDuringConnectIPv6();
164}
165
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000166TEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000167 SocketTest::TestServerCloseIPv4();
168}
169
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000170TEST_F(MacAsyncSocketTest, DISABLED_TestServerCloseIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000171 SocketTest::TestServerCloseIPv6();
172}
173
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000174TEST_F(MacAsyncSocketTest, DISABLED_TestCloseInClosedCallbackIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000175 SocketTest::TestCloseInClosedCallbackIPv4();
176}
177
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000178TEST_F(MacAsyncSocketTest, DISABLED_TestCloseInClosedCallbackIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000179 SocketTest::TestCloseInClosedCallbackIPv6();
180}
181
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000182TEST_F(MacAsyncSocketTest, DISABLED_TestSocketServerWaitIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000183 SocketTest::TestSocketServerWaitIPv4();
184}
185
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000186TEST_F(MacAsyncSocketTest, DISABLED_TestSocketServerWaitIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000187 SocketTest::TestSocketServerWaitIPv6();
188}
189
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000190TEST_F(MacAsyncSocketTest, DISABLED_TestTcpIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000191 SocketTest::TestTcpIPv4();
192}
193
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000194TEST_F(MacAsyncSocketTest, DISABLED_TestTcpIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000195 SocketTest::TestTcpIPv6();
196}
197
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000198TEST_F(MacAsyncSocketTest, DISABLED_TestSingleFlowControlCallbackIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000199 SocketTest::TestSingleFlowControlCallbackIPv4();
200}
201
henrike@webrtc.orgfded02c2014-09-19 13:10:10 +0000202TEST_F(MacAsyncSocketTest, DISABLED_TestSingleFlowControlCallbackIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000203 SocketTest::TestSingleFlowControlCallbackIPv6();
204}
205
206TEST_F(MacAsyncSocketTest, DISABLED_TestUdpIPv4) {
207 SocketTest::TestUdpIPv4();
208}
209
210TEST_F(MacAsyncSocketTest, DISABLED_TestUdpIPv6) {
211 SocketTest::TestUdpIPv6();
212}
213
214TEST_F(MacAsyncSocketTest, DISABLED_TestGetSetOptionsIPv4) {
215 SocketTest::TestGetSetOptionsIPv4();
216}
217
218TEST_F(MacAsyncSocketTest, DISABLED_TestGetSetOptionsIPv6) {
219 SocketTest::TestGetSetOptionsIPv6();
220}
221
222#ifndef CARBON_DEPRECATED
223class MacCarbonAppAsyncSocketTest : public MacAsyncSocketTest {
224 virtual MacBaseSocketServer* CreateSocketServer() {
225 return new MacCarbonAppSocketServer();
226 };
227};
228
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +0000229TEST_F(MacCarbonAppAsyncSocketTest, DISABLED_TestSocketServerWaitIPv4) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000230 SocketTest::TestSocketServerWaitIPv4();
231}
232
kjellander@webrtc.org34ac7762014-09-19 13:47:47 +0000233TEST_F(MacCarbonAppAsyncSocketTest, DISABLED_TestSocketServerWaitIPv6) {
henrike@webrtc.orgf0488722014-05-13 18:00:26 +0000234 SocketTest::TestSocketServerWaitIPv6();
235}
236#endif
237} // namespace rtc