summaryrefslogtreecommitdiff
path: root/chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc')
-rw-r--r--chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc49
1 files changed, 30 insertions, 19 deletions
diff --git a/chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc b/chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc
index a468f14f8ef..a3ad2e198dc 100644
--- a/chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc
+++ b/chromium/components/crash/content/browser/crash_dump_manager_android_unittest.cc
@@ -39,18 +39,15 @@ class CrashDumpManagerTest : public testing::Test {
// TODO(csharrison): This test harness is not robust enough. Namely, it does
// not support actually processing a non-empty crash dump, due to JNI calls.
static void CreateAndProcessEmptyMinidump(
- int process_host_id,
- content::ProcessType process_type,
- base::TerminationStatus status,
- base::android::ApplicationState app_state) {
+ const CrashDumpObserver::TerminationInfo& info) {
base::ScopedFD fd =
CrashDumpManager::GetInstance()->CreateMinidumpFileForChild(
- process_host_id);
+ info.process_host_id);
EXPECT_TRUE(fd.is_valid());
base::ScopedTempDir dump_dir;
EXPECT_TRUE(dump_dir.CreateUniqueTempDir());
CrashDumpManager::GetInstance()->ProcessMinidumpFileFromChild(
- dump_dir.GetPath(), process_host_id, process_type, status, app_state);
+ dump_dir.GetPath(), info);
}
private:
@@ -95,20 +92,27 @@ TEST_F(CrashDumpManagerTest, SimpleOOM) {
CrashDumpManagerObserver crash_dump_observer;
manager->AddObserver(&crash_dump_observer);
- int process_host_id = 1;
+ CrashDumpObserver::TerminationInfo termination_info;
+ termination_info.process_host_id = 1;
+ termination_info.pid = base::kNullProcessHandle;
+ termination_info.process_type = content::PROCESS_TYPE_RENDERER;
+ termination_info.app_state =
+ base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES;
+ termination_info.normal_termination = false;
+ termination_info.has_oom_protection_bindings = true;
+ termination_info.was_killed_intentionally_by_browser = false;
+ termination_info.was_oom_protected_status = true;
base::PostTaskWithTraits(
FROM_HERE, {base::MayBlock(), base::TaskPriority::BACKGROUND},
base::Bind(&CrashDumpManagerTest::CreateAndProcessEmptyMinidump,
- process_host_id, content::PROCESS_TYPE_RENDERER,
- base::TERMINATION_STATUS_OOM_PROTECTED,
- base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES));
+ termination_info));
crash_dump_observer.WaitForProcessed();
const CrashDumpManager::CrashDumpDetails& details =
crash_dump_observer.last_details();
- EXPECT_EQ(process_host_id, details.process_host_id);
+ EXPECT_EQ(termination_info.process_host_id, details.process_host_id);
EXPECT_EQ(content::PROCESS_TYPE_RENDERER, details.process_type);
- EXPECT_EQ(base::TERMINATION_STATUS_OOM_PROTECTED, details.termination_status);
+ EXPECT_TRUE(details.was_oom_protected_status);
EXPECT_EQ(base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES,
details.app_state);
EXPECT_EQ(0, details.file_size);
@@ -126,21 +130,28 @@ TEST_F(CrashDumpManagerTest, NoDumpCreated) {
CrashDumpManagerObserver crash_dump_observer;
manager->AddObserver(&crash_dump_observer);
- int process_host_id = 1;
+ CrashDumpObserver::TerminationInfo termination_info;
+ termination_info.process_host_id = 1;
+ termination_info.pid = base::kNullProcessHandle;
+ termination_info.process_type = content::PROCESS_TYPE_RENDERER;
+ termination_info.app_state =
+ base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES;
+ termination_info.normal_termination = false;
+ termination_info.has_oom_protection_bindings = true;
+ termination_info.was_killed_intentionally_by_browser = false;
+ termination_info.was_oom_protected_status = true;
base::PostTaskWithTraits(
FROM_HERE, {base::MayBlock(), base::TaskPriority::BACKGROUND},
base::Bind(&CrashDumpManager::ProcessMinidumpFileFromChild,
- base::Unretained(manager), base::FilePath(), process_host_id,
- content::PROCESS_TYPE_RENDERER,
- base::TERMINATION_STATUS_OOM_PROTECTED,
- base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES));
+ base::Unretained(manager), base::FilePath(),
+ termination_info));
crash_dump_observer.WaitForProcessed();
const CrashDumpManager::CrashDumpDetails& details =
crash_dump_observer.last_details();
- EXPECT_EQ(process_host_id, details.process_host_id);
+ EXPECT_EQ(termination_info.process_host_id, details.process_host_id);
EXPECT_EQ(content::PROCESS_TYPE_RENDERER, details.process_type);
- EXPECT_EQ(base::TERMINATION_STATUS_OOM_PROTECTED, details.termination_status);
+ EXPECT_TRUE(details.was_oom_protected_status);
EXPECT_EQ(base::android::APPLICATION_STATE_HAS_RUNNING_ACTIVITIES,
details.app_state);
EXPECT_EQ(0, details.file_size);