diff options
Diffstat (limited to 'base/message_loop/message_loop_unittest.cc')
-rw-r--r-- | base/message_loop/message_loop_unittest.cc | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc index 14fe1ee391..9d771d5ecb 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) { + java_thread = + android::JavaHandlerThreadForTesting::CreateJavaFirst(&test_done_event); + } else { + java_thread = android::JavaHandlerThreadForTesting::Create( + "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) |