| 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 |