Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: base/message_loop/message_loop_unittest.cc

Issue 2103333006: Remove calls to deprecated MessageLoop methods in base. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/bind_helpers.h" 11 #include "base/bind_helpers.h"
12 #include "base/compiler_specific.h" 12 #include "base/compiler_specific.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "base/memory/ref_counted.h" 15 #include "base/memory/ref_counted.h"
16 #include "base/message_loop/message_loop.h" 16 #include "base/message_loop/message_loop.h"
17 #include "base/message_loop/message_loop_test.h" 17 #include "base/message_loop/message_loop_test.h"
18 #include "base/pending_task.h" 18 #include "base/pending_task.h"
19 #include "base/posix/eintr_wrapper.h" 19 #include "base/posix/eintr_wrapper.h"
20 #include "base/run_loop.h" 20 #include "base/run_loop.h"
21 #include "base/single_thread_task_runner.h"
21 #include "base/synchronization/waitable_event.h" 22 #include "base/synchronization/waitable_event.h"
22 #include "base/test/test_simple_task_runner.h" 23 #include "base/test/test_simple_task_runner.h"
23 #include "base/threading/platform_thread.h" 24 #include "base/threading/platform_thread.h"
24 #include "base/threading/thread.h" 25 #include "base/threading/thread.h"
25 #include "base/threading/thread_task_runner_handle.h" 26 #include "base/threading/thread_task_runner_handle.h"
26 #include "build/build_config.h" 27 #include "build/build_config.h"
27 #include "testing/gtest/include/gtest/gtest.h" 28 #include "testing/gtest/include/gtest/gtest.h"
28 29
29 #if defined(OS_WIN) 30 #if defined(OS_WIN)
30 #include "base/message_loop/message_pump_win.h" 31 #include "base/message_loop/message_pump_win.h"
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 EXPECT_EQ(order.Get(14), TaskItem(RECURSIVE, 1, true)); 410 EXPECT_EQ(order.Get(14), TaskItem(RECURSIVE, 1, true));
410 EXPECT_EQ(order.Get(15), TaskItem(RECURSIVE, 1, false)); 411 EXPECT_EQ(order.Get(15), TaskItem(RECURSIVE, 1, false));
411 EXPECT_EQ(order.Get(16), TaskItem(RECURSIVE, 3, true)); 412 EXPECT_EQ(order.Get(16), TaskItem(RECURSIVE, 3, true));
412 EXPECT_EQ(order.Get(17), TaskItem(RECURSIVE, 3, false)); 413 EXPECT_EQ(order.Get(17), TaskItem(RECURSIVE, 3, false));
413 } 414 }
414 415
415 #endif // defined(OS_WIN) 416 #endif // defined(OS_WIN)
416 417
417 void PostNTasksThenQuit(int posts_remaining) { 418 void PostNTasksThenQuit(int posts_remaining) {
418 if (posts_remaining > 1) { 419 if (posts_remaining > 1) {
419 MessageLoop::current()->PostTask( 420 MessageLoop::current()->task_runner()->PostTask(
420 FROM_HERE, 421 FROM_HERE, Bind(&PostNTasksThenQuit, posts_remaining - 1));
421 Bind(&PostNTasksThenQuit, posts_remaining - 1));
422 } else { 422 } else {
423 MessageLoop::current()->QuitWhenIdle(); 423 MessageLoop::current()->QuitWhenIdle();
424 } 424 }
425 } 425 }
426 426
427 #if defined(OS_WIN) 427 #if defined(OS_WIN)
428 428
429 class TestIOHandler : public MessageLoopForIO::IOHandler { 429 class TestIOHandler : public MessageLoopForIO::IOHandler {
430 public: 430 public:
431 TestIOHandler(const wchar_t* name, HANDLE signal, bool wait); 431 TestIOHandler(const wchar_t* name, HANDLE signal, bool wait);
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
632 632
633 DISALLOW_COPY_AND_ASSIGN(DummyTaskObserver); 633 DISALLOW_COPY_AND_ASSIGN(DummyTaskObserver);
634 }; 634 };
635 635
636 TEST(MessageLoopTest, TaskObserver) { 636 TEST(MessageLoopTest, TaskObserver) {
637 const int kNumPosts = 6; 637 const int kNumPosts = 6;
638 DummyTaskObserver observer(kNumPosts); 638 DummyTaskObserver observer(kNumPosts);
639 639
640 MessageLoop loop; 640 MessageLoop loop;
641 loop.AddTaskObserver(&observer); 641 loop.AddTaskObserver(&observer);
642 loop.PostTask(FROM_HERE, Bind(&PostNTasksThenQuit, kNumPosts)); 642 loop.task_runner()->PostTask(FROM_HERE, Bind(&PostNTasksThenQuit, kNumPosts));
643 loop.Run(); 643 RunLoop().Run();
644 loop.RemoveTaskObserver(&observer); 644 loop.RemoveTaskObserver(&observer);
645 645
646 EXPECT_EQ(kNumPosts, observer.num_tasks_started()); 646 EXPECT_EQ(kNumPosts, observer.num_tasks_started());
647 EXPECT_EQ(kNumPosts, observer.num_tasks_processed()); 647 EXPECT_EQ(kNumPosts, observer.num_tasks_processed());
648 } 648 }
649 649
650 #if defined(OS_WIN) 650 #if defined(OS_WIN)
651 TEST(MessageLoopTest, IOHandler) { 651 TEST(MessageLoopTest, IOHandler) {
652 RunTest_IOHandler(); 652 RunTest_IOHandler();
653 } 653 }
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 // Verify that the destruction observer gets called at the very end (after 808 // Verify that the destruction observer gets called at the very end (after
809 // all the pending tasks have been destroyed). 809 // all the pending tasks have been destroyed).
810 MessageLoop* loop = new MessageLoop; 810 MessageLoop* loop = new MessageLoop;
811 const TimeDelta kDelay = TimeDelta::FromMilliseconds(100); 811 const TimeDelta kDelay = TimeDelta::FromMilliseconds(100);
812 812
813 bool task_destroyed = false; 813 bool task_destroyed = false;
814 bool destruction_observer_called = false; 814 bool destruction_observer_called = false;
815 815
816 MLDestructionObserver observer(&task_destroyed, &destruction_observer_called); 816 MLDestructionObserver observer(&task_destroyed, &destruction_observer_called);
817 loop->AddDestructionObserver(&observer); 817 loop->AddDestructionObserver(&observer);
818 loop->PostDelayedTask( 818 loop->task_runner()->PostDelayedTask(
819 FROM_HERE, 819 FROM_HERE, Bind(&DestructionObserverProbe::Run,
820 Bind(&DestructionObserverProbe::Run, 820 new DestructionObserverProbe(
821 new DestructionObserverProbe(&task_destroyed, 821 &task_destroyed, &destruction_observer_called)),
822 &destruction_observer_called)),
823 kDelay); 822 kDelay);
824 delete loop; 823 delete loop;
825 EXPECT_TRUE(observer.task_destroyed_before_message_loop()); 824 EXPECT_TRUE(observer.task_destroyed_before_message_loop());
826 // The task should have been destroyed when we deleted the loop. 825 // The task should have been destroyed when we deleted the loop.
827 EXPECT_TRUE(task_destroyed); 826 EXPECT_TRUE(task_destroyed);
828 EXPECT_TRUE(destruction_observer_called); 827 EXPECT_TRUE(destruction_observer_called);
829 } 828 }
830 829
831 830
832 // Verify that MessageLoop sets ThreadMainTaskRunner::current() and it 831 // Verify that MessageLoop sets ThreadMainTaskRunner::current() and it
833 // posts tasks on that message loop. 832 // posts tasks on that message loop.
834 TEST(MessageLoopTest, ThreadMainTaskRunner) { 833 TEST(MessageLoopTest, ThreadMainTaskRunner) {
835 MessageLoop loop; 834 MessageLoop loop;
836 835
837 scoped_refptr<Foo> foo(new Foo()); 836 scoped_refptr<Foo> foo(new Foo());
838 std::string a("a"); 837 std::string a("a");
839 ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind( 838 ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, Bind(
840 &Foo::Test1ConstRef, foo.get(), a)); 839 &Foo::Test1ConstRef, foo.get(), a));
841 840
842 // Post quit task; 841 // Post quit task;
843 MessageLoop::current()->PostTask( 842 MessageLoop::current()->task_runner()->PostTask(
844 FROM_HERE, 843 FROM_HERE,
845 Bind(&MessageLoop::QuitWhenIdle, Unretained(MessageLoop::current()))); 844 Bind(&MessageLoop::QuitWhenIdle, Unretained(MessageLoop::current())));
846 845
847 // Now kick things off 846 // Now kick things off
848 MessageLoop::current()->Run(); 847 RunLoop().Run();
849 848
850 EXPECT_EQ(foo->test_count(), 1); 849 EXPECT_EQ(foo->test_count(), 1);
851 EXPECT_EQ(foo->result(), "a"); 850 EXPECT_EQ(foo->result(), "a");
852 } 851 }
853 852
854 TEST(MessageLoopTest, IsType) { 853 TEST(MessageLoopTest, IsType) {
855 MessageLoop loop(MessageLoop::TYPE_UI); 854 MessageLoop loop(MessageLoop::TYPE_UI);
856 EXPECT_TRUE(loop.IsType(MessageLoop::TYPE_UI)); 855 EXPECT_TRUE(loop.IsType(MessageLoop::TYPE_UI));
857 EXPECT_FALSE(loop.IsType(MessageLoop::TYPE_IO)); 856 EXPECT_FALSE(loop.IsType(MessageLoop::TYPE_IO));
858 EXPECT_FALSE(loop.IsType(MessageLoop::TYPE_DEFAULT)); 857 EXPECT_FALSE(loop.IsType(MessageLoop::TYPE_DEFAULT));
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 956
958 TEST(MessageLoopTest, OriginalRunnerWorks) { 957 TEST(MessageLoopTest, OriginalRunnerWorks) {
959 MessageLoop loop; 958 MessageLoop loop;
960 scoped_refptr<SingleThreadTaskRunner> new_runner(new TestSimpleTaskRunner()); 959 scoped_refptr<SingleThreadTaskRunner> new_runner(new TestSimpleTaskRunner());
961 scoped_refptr<SingleThreadTaskRunner> original_runner(loop.task_runner()); 960 scoped_refptr<SingleThreadTaskRunner> original_runner(loop.task_runner());
962 loop.SetTaskRunner(new_runner); 961 loop.SetTaskRunner(new_runner);
963 962
964 scoped_refptr<Foo> foo(new Foo()); 963 scoped_refptr<Foo> foo(new Foo());
965 original_runner->PostTask(FROM_HERE, 964 original_runner->PostTask(FROM_HERE,
966 Bind(&Foo::Test1ConstRef, foo.get(), "a")); 965 Bind(&Foo::Test1ConstRef, foo.get(), "a"));
967 loop.RunUntilIdle(); 966 RunLoop().RunUntilIdle();
968 EXPECT_EQ(1, foo->test_count()); 967 EXPECT_EQ(1, foo->test_count());
969 } 968 }
970 969
971 TEST(MessageLoopTest, DeleteUnboundLoop) { 970 TEST(MessageLoopTest, DeleteUnboundLoop) {
972 // It should be possible to delete an unbound message loop on a thread which 971 // It should be possible to delete an unbound message loop on a thread which
973 // already has another active loop. This happens when thread creation fails. 972 // already has another active loop. This happens when thread creation fails.
974 MessageLoop loop; 973 MessageLoop loop;
975 std::unique_ptr<MessageLoop> unbound_loop(MessageLoop::CreateUnbound( 974 std::unique_ptr<MessageLoop> unbound_loop(MessageLoop::CreateUnbound(
976 MessageLoop::TYPE_DEFAULT, MessageLoop::MessagePumpFactoryCallback())); 975 MessageLoop::TYPE_DEFAULT, MessageLoop::MessagePumpFactoryCallback()));
977 unbound_loop.reset(); 976 unbound_loop.reset();
(...skipping 11 matching lines...) Expand all
989 988
990 { 989 {
991 std::string kThreadName("bar"); 990 std::string kThreadName("bar");
992 base::Thread thread(kThreadName); 991 base::Thread thread(kThreadName);
993 ASSERT_TRUE(thread.StartAndWaitForTesting()); 992 ASSERT_TRUE(thread.StartAndWaitForTesting());
994 EXPECT_EQ(kThreadName, thread.message_loop()->GetThreadName()); 993 EXPECT_EQ(kThreadName, thread.message_loop()->GetThreadName());
995 } 994 }
996 } 995 }
997 996
998 } // namespace base 997 } // namespace base
OLDNEW
« no previous file with comments | « base/message_loop/message_loop_test.cc ('k') | base/message_loop/message_pump_libevent_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698