OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 TEST(TaskQueueTest, PostFromQueue) { | 84 TEST(TaskQueueTest, PostFromQueue) { |
85 static const char kQueueName[] = "PostFromQueue"; | 85 static const char kQueueName[] = "PostFromQueue"; |
86 TaskQueue queue(kQueueName); | 86 TaskQueue queue(kQueueName); |
87 | 87 |
88 Event event(false, false); | 88 Event event(false, false); |
89 queue.PostTask( | 89 queue.PostTask( |
90 [&event, &queue]() { queue.PostTask([&event]() { event.Set(); }); }); | 90 [&event, &queue]() { queue.PostTask([&event]() { event.Set(); }); }); |
91 EXPECT_TRUE(event.Wait(1000)); | 91 EXPECT_TRUE(event.Wait(1000)); |
92 } | 92 } |
93 | 93 |
94 // Currently flaky on Windows. See issue 6610. | 94 TEST(TaskQueueTest, PostDelayed) { |
95 #if defined(WEBRTC_WIN) | |
96 #define MAYBE_PostDelayed DISABLED_PostDelayed | |
97 #else | |
98 #define MAYBE_PostDelayed PostDelayed | |
99 #endif | |
100 TEST(TaskQueueTest, MAYBE_PostDelayed) { | |
101 static const char kQueueName[] = "PostDelayed"; | 95 static const char kQueueName[] = "PostDelayed"; |
102 TaskQueue queue(kQueueName); | 96 TaskQueue queue(kQueueName); |
103 | 97 |
104 Event event(false, false); | 98 Event event(false, false); |
105 uint32_t start = Time(); | 99 uint32_t start = Time(); |
106 queue.PostDelayedTask(Bind(&CheckCurrent, kQueueName, &event, &queue), 100); | 100 queue.PostDelayedTask(Bind(&CheckCurrent, kQueueName, &event, &queue), 100); |
107 EXPECT_TRUE(event.Wait(1000)); | 101 EXPECT_TRUE(event.Wait(1000)); |
108 uint32_t end = Time(); | 102 uint32_t end = Time(); |
109 EXPECT_GE(end - start, 100u); | 103 // These tests are a little relaxed due to how "powerful" our test bots can |
110 EXPECT_NEAR(end - start, 200u, 100u); // Accept 100-300. | 104 // be. Most recently we've seen windows bots fire the callback after 99ms, |
| 105 // which is why we have a little bit of leeway backwards as well. |
| 106 EXPECT_GE(end - start, 95u); |
| 107 EXPECT_NEAR(end - start, 195u, 100u); // Accept 95-295. |
111 } | 108 } |
112 | 109 |
113 TEST(TaskQueueTest, PostMultipleDelayed) { | 110 TEST(TaskQueueTest, PostMultipleDelayed) { |
114 static const char kQueueName[] = "PostMultipleDelayed"; | 111 static const char kQueueName[] = "PostMultipleDelayed"; |
115 TaskQueue queue(kQueueName); | 112 TaskQueue queue(kQueueName); |
116 | 113 |
117 std::vector<std::unique_ptr<Event>> events; | 114 std::vector<std::unique_ptr<Event>> events; |
118 for (int i = 0; i < 10; ++i) { | 115 for (int i = 0; i < 10; ++i) { |
119 events.push_back(std::unique_ptr<Event>(new Event(false, false))); | 116 events.push_back(std::unique_ptr<Event>(new Event(false, false))); |
120 queue.PostDelayedTask( | 117 queue.PostDelayedTask( |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 queue.PostTask(NewClosure([&tasks_executed]() { ++tasks_executed; }, | 252 queue.PostTask(NewClosure([&tasks_executed]() { ++tasks_executed; }, |
256 [&tasks_cleaned_up]() { ++tasks_cleaned_up; })); | 253 [&tasks_cleaned_up]() { ++tasks_cleaned_up; })); |
257 event.Set(); // Unblock the first task. | 254 event.Set(); // Unblock the first task. |
258 } | 255 } |
259 | 256 |
260 EXPECT_GE(tasks_cleaned_up, tasks_executed); | 257 EXPECT_GE(tasks_cleaned_up, tasks_executed); |
261 EXPECT_EQ(kTaskCount, tasks_cleaned_up); | 258 EXPECT_EQ(kTaskCount, tasks_cleaned_up); |
262 } | 259 } |
263 | 260 |
264 } // namespace rtc | 261 } // namespace rtc |
OLD | NEW |