blob: 932b4a14f59efc4f7a2efeb04f641f879b6167ce [file] [log] [blame]
henrike@webrtc.orgf7795df2014-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/thread.h"
14#include "webrtc/base/maccocoasocketserver.h"
15
16namespace rtc {
17
18class WakeThread : public Thread {
19 public:
20 WakeThread(SocketServer* ss) : ss_(ss) {
21 }
22 virtual ~WakeThread() {
23 Stop();
24 }
25 void Run() {
26 ss_->WakeUp();
27 }
28 private:
29 SocketServer* ss_;
30};
31
32// Test that MacCocoaSocketServer::Wait works as expected.
33TEST(MacCocoaSocketServer, TestWait) {
34 MacCocoaSocketServer server;
35 uint32 start = Time();
36 server.Wait(1000, true);
37 EXPECT_GE(TimeSince(start), 1000);
38}
39
40// Test that MacCocoaSocketServer::Wakeup works as expected.
41TEST(MacCocoaSocketServer, TestWakeup) {
42 MacCFSocketServer server;
43 WakeThread thread(&server);
44 uint32 start = Time();
45 thread.Start();
46 server.Wait(10000, true);
47 EXPECT_LT(TimeSince(start), 10000);
48}
49
50} // namespace rtc