summaryrefslogtreecommitdiff
path: root/base/message_loop/message_loop_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'base/message_loop/message_loop_unittest.cc')
-rw-r--r--base/message_loop/message_loop_unittest.cc31
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)