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 571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 invoke_started_(true, false), | 582 invoke_started_(true, false), |
583 expected_thread_(nullptr) {} | 583 expected_thread_(nullptr) {} |
584 | 584 |
585 int int_value_; | 585 int int_value_; |
586 Event invoke_started_; | 586 Event invoke_started_; |
587 Thread* expected_thread_; | 587 Thread* expected_thread_; |
588 }; | 588 }; |
589 | 589 |
590 // Functor for creating an invoker. | 590 // Functor for creating an invoker. |
591 struct CreateInvoker { | 591 struct CreateInvoker { |
592 CreateInvoker(scoped_ptr<GuardedAsyncInvoker>* invoker) : invoker_(invoker) {} | 592 CreateInvoker(std::unique_ptr<GuardedAsyncInvoker>* invoker) |
| 593 : invoker_(invoker) {} |
593 void operator()() { invoker_->reset(new GuardedAsyncInvoker()); } | 594 void operator()() { invoker_->reset(new GuardedAsyncInvoker()); } |
594 scoped_ptr<GuardedAsyncInvoker>* invoker_; | 595 std::unique_ptr<GuardedAsyncInvoker>* invoker_; |
595 }; | 596 }; |
596 | 597 |
597 // Test that we can call AsyncInvoke<void>() after the thread died. | 598 // Test that we can call AsyncInvoke<void>() after the thread died. |
598 TEST_F(GuardedAsyncInvokeTest, KillThreadFireAndForget) { | 599 TEST_F(GuardedAsyncInvokeTest, KillThreadFireAndForget) { |
599 // Create and start the thread. | 600 // Create and start the thread. |
600 scoped_ptr<Thread> thread(new Thread()); | 601 std::unique_ptr<Thread> thread(new Thread()); |
601 thread->Start(); | 602 thread->Start(); |
602 scoped_ptr<GuardedAsyncInvoker> invoker; | 603 std::unique_ptr<GuardedAsyncInvoker> invoker; |
603 // Create the invoker on |thread|. | 604 // Create the invoker on |thread|. |
604 thread->Invoke<void>(CreateInvoker(&invoker)); | 605 thread->Invoke<void>(CreateInvoker(&invoker)); |
605 // Kill |thread|. | 606 // Kill |thread|. |
606 thread = nullptr; | 607 thread = nullptr; |
607 // Try calling functor. | 608 // Try calling functor. |
608 AtomicBool called; | 609 AtomicBool called; |
609 EXPECT_FALSE(invoker->AsyncInvoke<void>(FunctorB(&called))); | 610 EXPECT_FALSE(invoker->AsyncInvoke<void>(FunctorB(&called))); |
610 // With thread gone, nothing should happen. | 611 // With thread gone, nothing should happen. |
611 WAIT(called.get(), kWaitTimeout); | 612 WAIT(called.get(), kWaitTimeout); |
612 EXPECT_FALSE(called.get()); | 613 EXPECT_FALSE(called.get()); |
613 } | 614 } |
614 | 615 |
615 // Test that we can call AsyncInvoke with callback after the thread died. | 616 // Test that we can call AsyncInvoke with callback after the thread died. |
616 TEST_F(GuardedAsyncInvokeTest, KillThreadWithCallback) { | 617 TEST_F(GuardedAsyncInvokeTest, KillThreadWithCallback) { |
617 // Create and start the thread. | 618 // Create and start the thread. |
618 scoped_ptr<Thread> thread(new Thread()); | 619 std::unique_ptr<Thread> thread(new Thread()); |
619 thread->Start(); | 620 thread->Start(); |
620 scoped_ptr<GuardedAsyncInvoker> invoker; | 621 std::unique_ptr<GuardedAsyncInvoker> invoker; |
621 // Create the invoker on |thread|. | 622 // Create the invoker on |thread|. |
622 thread->Invoke<void>(CreateInvoker(&invoker)); | 623 thread->Invoke<void>(CreateInvoker(&invoker)); |
623 // Kill |thread|. | 624 // Kill |thread|. |
624 thread = nullptr; | 625 thread = nullptr; |
625 // Try calling functor. | 626 // Try calling functor. |
626 EXPECT_FALSE( | 627 EXPECT_FALSE( |
627 invoker->AsyncInvoke(FunctorC(), &GuardedAsyncInvokeTest::IntCallback, | 628 invoker->AsyncInvoke(FunctorC(), &GuardedAsyncInvokeTest::IntCallback, |
628 static_cast<GuardedAsyncInvokeTest*>(this))); | 629 static_cast<GuardedAsyncInvokeTest*>(this))); |
629 // With thread gone, callback should be cancelled. | 630 // With thread gone, callback should be cancelled. |
630 Thread::Current()->ProcessMessages(kWaitTimeout); | 631 Thread::Current()->ProcessMessages(kWaitTimeout); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
754 }; | 755 }; |
755 | 756 |
756 TEST_F(ComThreadTest, ComInited) { | 757 TEST_F(ComThreadTest, ComInited) { |
757 Thread* thread = new ComThread(); | 758 Thread* thread = new ComThread(); |
758 EXPECT_TRUE(thread->Start()); | 759 EXPECT_TRUE(thread->Start()); |
759 thread->Post(this, 0); | 760 thread->Post(this, 0); |
760 EXPECT_TRUE_WAIT(done_, 1000); | 761 EXPECT_TRUE_WAIT(done_, 1000); |
761 delete thread; | 762 delete thread; |
762 } | 763 } |
763 #endif | 764 #endif |
OLD | NEW |