OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2012 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/nullsocketserver.h" | |
13 | |
14 namespace rtc { | |
15 | |
16 static const uint32_t kTimeout = 5000U; | |
17 | |
18 class NullSocketServerTest | |
19 : public testing::Test, | |
20 public MessageHandler { | |
21 public: | |
22 NullSocketServerTest() {} | |
23 protected: | |
24 virtual void OnMessage(Message* message) { | |
25 ss_.WakeUp(); | |
26 } | |
27 NullSocketServer ss_; | |
28 }; | |
29 | |
30 TEST_F(NullSocketServerTest, WaitAndSet) { | |
31 Thread thread; | |
32 EXPECT_TRUE(thread.Start()); | |
33 thread.Post(RTC_FROM_HERE, this, 0); | |
34 // The process_io will be ignored. | |
35 const bool process_io = true; | |
36 EXPECT_TRUE_WAIT(ss_.Wait(SocketServer::kForever, process_io), kTimeout); | |
37 } | |
38 | |
39 TEST_F(NullSocketServerTest, TestWait) { | |
40 int64_t start = TimeMillis(); | |
41 ss_.Wait(200, true); | |
42 // The actual wait time is dependent on the resolution of the timer used by | |
43 // the Event class. Allow for the event to signal ~20ms early. | |
44 EXPECT_GE(TimeSince(start), 180); | |
45 } | |
46 | |
47 } // namespace rtc | |
OLD | NEW |