OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
86 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 86 MessageLoop::current()->PostTask(FROM_HERE, Bind( |
87 &Foo::Test0, foo.get())); | 87 &Foo::Test0, foo.get())); |
88 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 88 MessageLoop::current()->PostTask(FROM_HERE, Bind( |
89 &Foo::Test1ConstRef, foo.get(), a)); | 89 &Foo::Test1ConstRef, foo.get(), a)); |
90 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 90 MessageLoop::current()->PostTask(FROM_HERE, Bind( |
91 &Foo::Test1Ptr, foo.get(), &b)); | 91 &Foo::Test1Ptr, foo.get(), &b)); |
92 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 92 MessageLoop::current()->PostTask(FROM_HERE, Bind( |
93 &Foo::Test1Int, foo.get(), 100)); | 93 &Foo::Test1Int, foo.get(), 100)); |
94 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 94 MessageLoop::current()->PostTask(FROM_HERE, Bind( |
95 &Foo::Test2Ptr, foo.get(), &a, &c)); | 95 &Foo::Test2Ptr, foo.get(), &a, &c)); |
96 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 96 |
97 &Foo::Test2Mixed, foo.get(), a, &d)); | 97 EXPECT_TRUE(MessageLoop::current()->TryPostTask(FROM_HERE, Bind( |
jar (doing other things)
2013/04/26 21:59:43
You should probably add a test that holds the lock
| |
98 &Foo::Test2Mixed, foo.get(), a, &d))); | |
98 | 99 |
99 // After all tests, post a message that will shut down the message loop | 100 // After all tests, post a message that will shut down the message loop |
100 MessageLoop::current()->PostTask(FROM_HERE, Bind( | 101 MessageLoop::current()->PostTask(FROM_HERE, Bind( |
101 &MessageLoop::Quit, Unretained(MessageLoop::current()))); | 102 &MessageLoop::Quit, Unretained(MessageLoop::current()))); |
102 | 103 |
103 // Now kick things off | 104 // Now kick things off |
104 MessageLoop::current()->Run(); | 105 MessageLoop::current()->Run(); |
105 | 106 |
106 EXPECT_EQ(foo->test_count(), 105); | 107 EXPECT_EQ(foo->test_count(), 105); |
107 EXPECT_EQ(foo->result(), "abacad"); | 108 EXPECT_EQ(foo->result(), "abacad"); |
(...skipping 1965 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2073 // On Linux, the pipe buffer size is 64KiB by default. The bug caused one | 2074 // On Linux, the pipe buffer size is 64KiB by default. The bug caused one |
2074 // byte accumulated in the pipe per two posts, so we should repeat 128K | 2075 // byte accumulated in the pipe per two posts, so we should repeat 128K |
2075 // times to reproduce the bug. | 2076 // times to reproduce the bug. |
2076 const int kNumTimes = 1 << 17; | 2077 const int kNumTimes = 1 << 17; |
2077 RunTest_RecursivePosts(MessageLoop::TYPE_DEFAULT, kNumTimes); | 2078 RunTest_RecursivePosts(MessageLoop::TYPE_DEFAULT, kNumTimes); |
2078 RunTest_RecursivePosts(MessageLoop::TYPE_UI, kNumTimes); | 2079 RunTest_RecursivePosts(MessageLoop::TYPE_UI, kNumTimes); |
2079 RunTest_RecursivePosts(MessageLoop::TYPE_IO, kNumTimes); | 2080 RunTest_RecursivePosts(MessageLoop::TYPE_IO, kNumTimes); |
2080 } | 2081 } |
2081 | 2082 |
2082 } // namespace base | 2083 } // namespace base |
OLD | NEW |