| 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..9d771d5ecbd2493126f00085e8194b7eb32e699e 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)
|
|
|
|
|