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) |