OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. | 2 * Copyright 2004 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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 // There's no easy way to verify the name was set properly at this time. | 236 // There's no easy way to verify the name was set properly at this time. |
237 TEST(ThreadTest, Names) { | 237 TEST(ThreadTest, Names) { |
238 // Default name | 238 // Default name |
239 Thread *thread; | 239 Thread *thread; |
240 thread = new Thread(); | 240 thread = new Thread(); |
241 EXPECT_TRUE(thread->Start()); | 241 EXPECT_TRUE(thread->Start()); |
242 thread->Stop(); | 242 thread->Stop(); |
243 delete thread; | 243 delete thread; |
244 thread = new Thread(); | 244 thread = new Thread(); |
245 // Name with no object parameter | 245 // Name with no object parameter |
246 EXPECT_TRUE(thread->SetName("No object", NULL)); | 246 EXPECT_TRUE(thread->SetName("No object", nullptr)); |
247 EXPECT_TRUE(thread->Start()); | 247 EXPECT_TRUE(thread->Start()); |
248 thread->Stop(); | 248 thread->Stop(); |
249 delete thread; | 249 delete thread; |
250 // Really long name | 250 // Really long name |
251 thread = new Thread(); | 251 thread = new Thread(); |
252 EXPECT_TRUE(thread->SetName("Abcdefghijklmnopqrstuvwxyz1234567890", this)); | 252 EXPECT_TRUE(thread->SetName("Abcdefghijklmnopqrstuvwxyz1234567890", this)); |
253 EXPECT_TRUE(thread->Start()); | 253 EXPECT_TRUE(thread->Start()); |
254 thread->Stop(); | 254 thread->Stop(); |
255 delete thread; | 255 delete thread; |
256 } | 256 } |
(...skipping 28 matching lines...) Expand all Loading... |
285 }; | 285 }; |
286 EXPECT_EQ(999, thread.Invoke<int>(RTC_FROM_HERE, &LocalFuncs::Func1)); | 286 EXPECT_EQ(999, thread.Invoke<int>(RTC_FROM_HERE, &LocalFuncs::Func1)); |
287 thread.Invoke<void>(RTC_FROM_HERE, &LocalFuncs::Func2); | 287 thread.Invoke<void>(RTC_FROM_HERE, &LocalFuncs::Func2); |
288 } | 288 } |
289 | 289 |
290 // Verifies that two threads calling Invoke on each other at the same time does | 290 // Verifies that two threads calling Invoke on each other at the same time does |
291 // not deadlock. | 291 // not deadlock. |
292 TEST(ThreadTest, TwoThreadsInvokeNoDeadlock) { | 292 TEST(ThreadTest, TwoThreadsInvokeNoDeadlock) { |
293 AutoThread thread; | 293 AutoThread thread; |
294 Thread* current_thread = Thread::Current(); | 294 Thread* current_thread = Thread::Current(); |
295 ASSERT_TRUE(current_thread != NULL); | 295 ASSERT_TRUE(current_thread != nullptr); |
296 | 296 |
297 Thread other_thread; | 297 Thread other_thread; |
298 other_thread.Start(); | 298 other_thread.Start(); |
299 | 299 |
300 struct LocalFuncs { | 300 struct LocalFuncs { |
301 static void Set(bool* out) { *out = true; } | 301 static void Set(bool* out) { *out = true; } |
302 static void InvokeSet(Thread* thread, bool* out) { | 302 static void InvokeSet(Thread* thread, bool* out) { |
303 thread->Invoke<void>(RTC_FROM_HERE, Bind(&Set, out)); | 303 thread->Invoke<void>(RTC_FROM_HERE, Bind(&Set, out)); |
304 } | 304 } |
305 }; | 305 }; |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 } | 434 } |
435 void SetExpectedThreadForIntCallback(Thread* thread) { | 435 void SetExpectedThreadForIntCallback(Thread* thread) { |
436 expected_thread_ = thread; | 436 expected_thread_ = thread; |
437 } | 437 } |
438 | 438 |
439 protected: | 439 protected: |
440 enum { kWaitTimeout = 1000 }; | 440 enum { kWaitTimeout = 1000 }; |
441 AsyncInvokeTest() | 441 AsyncInvokeTest() |
442 : int_value_(0), | 442 : int_value_(0), |
443 invoke_started_(true, false), | 443 invoke_started_(true, false), |
444 expected_thread_(NULL) {} | 444 expected_thread_(nullptr) {} |
445 | 445 |
446 int int_value_; | 446 int int_value_; |
447 Event invoke_started_; | 447 Event invoke_started_; |
448 Thread* expected_thread_; | 448 Thread* expected_thread_; |
449 }; | 449 }; |
450 | 450 |
451 TEST_F(AsyncInvokeTest, FireAndForget) { | 451 TEST_F(AsyncInvokeTest, FireAndForget) { |
452 AsyncInvoker invoker; | 452 AsyncInvoker invoker; |
453 // Create and start the thread. | 453 // Create and start the thread. |
454 Thread thread; | 454 Thread thread; |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
744 EXPECT_FALSE(flag1.get()); | 744 EXPECT_FALSE(flag1.get()); |
745 EXPECT_TRUE(flag2.get()); | 745 EXPECT_TRUE(flag2.get()); |
746 } | 746 } |
747 | 747 |
748 #if defined(WEBRTC_WIN) | 748 #if defined(WEBRTC_WIN) |
749 class ComThreadTest : public testing::Test, public MessageHandler { | 749 class ComThreadTest : public testing::Test, public MessageHandler { |
750 public: | 750 public: |
751 ComThreadTest() : done_(false) {} | 751 ComThreadTest() : done_(false) {} |
752 protected: | 752 protected: |
753 virtual void OnMessage(Message* message) { | 753 virtual void OnMessage(Message* message) { |
754 HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); | 754 HRESULT hr = CoInitializeEx(nullptr, COINIT_MULTITHREADED); |
755 // S_FALSE means the thread was already inited for a multithread apartment. | 755 // S_FALSE means the thread was already inited for a multithread apartment. |
756 EXPECT_EQ(S_FALSE, hr); | 756 EXPECT_EQ(S_FALSE, hr); |
757 if (SUCCEEDED(hr)) { | 757 if (SUCCEEDED(hr)) { |
758 CoUninitialize(); | 758 CoUninitialize(); |
759 } | 759 } |
760 done_ = true; | 760 done_ = true; |
761 } | 761 } |
762 bool done_; | 762 bool done_; |
763 }; | 763 }; |
764 | 764 |
765 TEST_F(ComThreadTest, ComInited) { | 765 TEST_F(ComThreadTest, ComInited) { |
766 Thread* thread = new ComThread(); | 766 Thread* thread = new ComThread(); |
767 EXPECT_TRUE(thread->Start()); | 767 EXPECT_TRUE(thread->Start()); |
768 thread->Post(RTC_FROM_HERE, this, 0); | 768 thread->Post(RTC_FROM_HERE, this, 0); |
769 EXPECT_TRUE_WAIT(done_, 1000); | 769 EXPECT_TRUE_WAIT(done_, 1000); |
770 delete thread; | 770 delete thread; |
771 } | 771 } |
772 #endif | 772 #endif |
OLD | NEW |