Chromium Code Reviews| Index: base/message_loop/message_loop_unittest.cc |
| diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc |
| index 14fe1ee391ccc5c3c87778c6ab6b83d83edefee6..a19bf5a82706f3baca1bf822a3435888977e0a12 100644 |
| --- a/base/message_loop/message_loop_unittest.cc |
| +++ b/base/message_loop/message_loop_unittest.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/compiler_specific.h" |
| #include "base/logging.h" |
| #include "base/macros.h" |
| +#include "base/memory/ptr_util.h" |
| #include "base/memory/ref_counted.h" |
| #include "base/message_loop/message_loop.h" |
| #include "base/message_loop/message_loop_test.h" |
| @@ -93,16 +94,19 @@ void AbortMessagePump() { |
| static_cast<base::MessageLoopForUI*>(base::MessageLoop::current())->Abort(); |
| } |
| -void RunTest_AbortDontRunMoreTasks(bool delayed) { |
| - MessageLoop loop(MessageLoop::TYPE_JAVA); |
| - |
| +void RunTest_AbortDontRunMoreTasks(bool delayed, bool init_java_first) { |
| WaitableEvent test_done_event(WaitableEvent::ResetPolicy::MANUAL, |
| WaitableEvent::InitialState::NOT_SIGNALED); |
| - std::unique_ptr<android::JavaHandlerThreadForTesting> java_thread; |
| - java_thread.reset(new android::JavaHandlerThreadForTesting( |
| - "JavaHandlerThreadForTesting from AbortDontRunMoreTasks", |
| - &test_done_event)); |
| + std::unique_ptr<android::JavaHandlerThread> java_thread; |
| + if (init_java_first) { |
|
gab
2017/03/29 17:19:53
I'm not clear on difference? The "JavaHandlerThrea
boliu
2017/03/29 18:02:39
It calls a different constructor, which constructs
gab
2017/03/29 18:14:04
Ah I see, yeah two constructors doing different th
|
| + java_thread.reset( |
| + new android::JavaHandlerThreadForTesting(&test_done_event)); |
| + } else { |
| + java_thread.reset(new android::JavaHandlerThreadForTesting( |
| + "JavaHandlerThreadForTesting from AbortDontRunMoreTasks", |
| + &test_done_event)); |
| + } |
| java_thread->Start(); |
| if (delayed) { |
| @@ -121,10 +125,19 @@ void RunTest_AbortDontRunMoreTasks(bool delayed) { |
| } |
| TEST(MessageLoopTest, JavaExceptionAbort) { |
| - RunTest_AbortDontRunMoreTasks(false); |
| + constexpr bool delayed = false; |
| + constexpr bool init_java_first = false; |
| + RunTest_AbortDontRunMoreTasks(delayed, init_java_first); |
| } |
| TEST(MessageLoopTest, DelayedJavaExceptionAbort) { |
| - RunTest_AbortDontRunMoreTasks(true); |
| + constexpr bool delayed = true; |
| + constexpr bool init_java_first = false; |
| + RunTest_AbortDontRunMoreTasks(delayed, init_java_first); |
| +} |
| +TEST(MessageLoopTest, JavaExceptionAbortInitJavaFirst) { |
| + constexpr bool delayed = false; |
| + constexpr bool init_java_first = true; |
| + RunTest_AbortDontRunMoreTasks(delayed, init_java_first); |
| } |
| #endif // defined(OS_ANDROID) |