Index: base/tracked_objects_unittest.cc |
diff --git a/base/tracked_objects_unittest.cc b/base/tracked_objects_unittest.cc |
index 77130912420722fc21e3411f58a26fa5d041beab..5455fef72c1ccdf76020ea047cea92bd626fc8e7 100644 |
--- a/base/tracked_objects_unittest.cc |
+++ b/base/tracked_objects_unittest.cc |
@@ -71,28 +71,37 @@ class TrackedObjectsTest : public testing::Test { |
int count, |
int run_ms, |
int queue_ms) { |
- ASSERT_EQ(1u, process_data.tasks.size()); |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
- EXPECT_EQ(kFile, process_data.tasks[0].birth.location.file_name); |
+ ASSERT_EQ(1u, process_data_phase.tasks.size()); |
+ |
+ EXPECT_EQ(kFile, process_data_phase.tasks[0].birth.location.file_name); |
EXPECT_EQ(function_name, |
- process_data.tasks[0].birth.location.function_name); |
- EXPECT_EQ(kLineNumber, process_data.tasks[0].birth.location.line_number); |
+ process_data_phase.tasks[0].birth.location.function_name); |
+ EXPECT_EQ(kLineNumber, |
+ process_data_phase.tasks[0].birth.location.line_number); |
- EXPECT_EQ(birth_thread, process_data.tasks[0].birth.thread_name); |
+ EXPECT_EQ(birth_thread, process_data_phase.tasks[0].birth.thread_name); |
- EXPECT_EQ(count, process_data.tasks[0].death_data.count); |
+ EXPECT_EQ(count, process_data_phase.tasks[0].death_data.count); |
EXPECT_EQ(count * run_ms, |
- process_data.tasks[0].death_data.run_duration_sum); |
- EXPECT_EQ(run_ms, process_data.tasks[0].death_data.run_duration_max); |
- EXPECT_EQ(run_ms, process_data.tasks[0].death_data.run_duration_sample); |
+ process_data_phase.tasks[0].death_data.run_duration_sum); |
+ EXPECT_EQ(run_ms, process_data_phase.tasks[0].death_data.run_duration_max); |
+ EXPECT_EQ(run_ms, |
+ process_data_phase.tasks[0].death_data.run_duration_sample); |
EXPECT_EQ(count * queue_ms, |
- process_data.tasks[0].death_data.queue_duration_sum); |
- EXPECT_EQ(queue_ms, process_data.tasks[0].death_data.queue_duration_max); |
- EXPECT_EQ(queue_ms, process_data.tasks[0].death_data.queue_duration_sample); |
+ process_data_phase.tasks[0].death_data.queue_duration_sum); |
+ EXPECT_EQ(queue_ms, |
+ process_data_phase.tasks[0].death_data.queue_duration_max); |
+ EXPECT_EQ(queue_ms, |
+ process_data_phase.tasks[0].death_data.queue_duration_sample); |
- EXPECT_EQ(death_thread, process_data.tasks[0].death_thread_name); |
+ EXPECT_EQ(death_thread, process_data_phase.tasks[0].death_thread_name); |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); |
} |
@@ -230,37 +239,49 @@ TEST_F(TrackedObjectsTest, TinyStartupShutdown) { |
ProcessDataSnapshot process_data; |
ThreadData::Snapshot(&process_data); |
- ASSERT_EQ(1u, process_data.tasks.size()); |
- EXPECT_EQ(kFile, process_data.tasks[0].birth.location.file_name); |
- EXPECT_EQ(kFunction, process_data.tasks[0].birth.location.function_name); |
- EXPECT_EQ(kLineNumber, process_data.tasks[0].birth.location.line_number); |
- EXPECT_EQ(kWorkerThreadName, process_data.tasks[0].birth.thread_name); |
- EXPECT_EQ(1, process_data.tasks[0].death_data.count); |
- EXPECT_EQ(time_elapsed, process_data.tasks[0].death_data.run_duration_sum); |
- EXPECT_EQ(time_elapsed, process_data.tasks[0].death_data.run_duration_max); |
- EXPECT_EQ(time_elapsed, process_data.tasks[0].death_data.run_duration_sample); |
- EXPECT_EQ(0, process_data.tasks[0].death_data.queue_duration_sum); |
- EXPECT_EQ(0, process_data.tasks[0].death_data.queue_duration_max); |
- EXPECT_EQ(0, process_data.tasks[0].death_data.queue_duration_sample); |
- EXPECT_EQ(kWorkerThreadName, process_data.tasks[0].death_thread_name); |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
+ ASSERT_EQ(1u, process_data_phase.tasks.size()); |
+ EXPECT_EQ(kFile, process_data_phase.tasks[0].birth.location.file_name); |
+ EXPECT_EQ(kFunction, |
+ process_data_phase.tasks[0].birth.location.function_name); |
+ EXPECT_EQ(kLineNumber, |
+ process_data_phase.tasks[0].birth.location.line_number); |
+ EXPECT_EQ(kWorkerThreadName, process_data_phase.tasks[0].birth.thread_name); |
+ EXPECT_EQ(1, process_data_phase.tasks[0].death_data.count); |
+ EXPECT_EQ(time_elapsed, |
+ process_data_phase.tasks[0].death_data.run_duration_sum); |
+ EXPECT_EQ(time_elapsed, |
+ process_data_phase.tasks[0].death_data.run_duration_max); |
+ EXPECT_EQ(time_elapsed, |
+ process_data_phase.tasks[0].death_data.run_duration_sample); |
+ EXPECT_EQ(0, process_data_phase.tasks[0].death_data.queue_duration_sum); |
+ EXPECT_EQ(0, process_data_phase.tasks[0].death_data.queue_duration_max); |
+ EXPECT_EQ(0, process_data_phase.tasks[0].death_data.queue_duration_sample); |
+ EXPECT_EQ(kWorkerThreadName, process_data_phase.tasks[0].death_thread_name); |
if (ThreadData::TrackingParentChildStatus()) { |
- ASSERT_EQ(1u, process_data.descendants.size()); |
- EXPECT_EQ(kFile, process_data.descendants[0].parent.location.file_name); |
+ ASSERT_EQ(1u, process_data_phase.descendants.size()); |
+ EXPECT_EQ(kFile, |
+ process_data_phase.descendants[0].parent.location.file_name); |
EXPECT_EQ(kFunction, |
- process_data.descendants[0].parent.location.function_name); |
+ process_data_phase.descendants[0].parent.location.function_name); |
EXPECT_EQ(kLineNumber, |
- process_data.descendants[0].parent.location.line_number); |
+ process_data_phase.descendants[0].parent.location.line_number); |
EXPECT_EQ(kWorkerThreadName, |
- process_data.descendants[0].parent.thread_name); |
- EXPECT_EQ(kFile, process_data.descendants[0].child.location.file_name); |
+ process_data_phase.descendants[0].parent.thread_name); |
+ EXPECT_EQ(kFile, |
+ process_data_phase.descendants[0].child.location.file_name); |
EXPECT_EQ(kFunction, |
- process_data.descendants[0].child.location.function_name); |
+ process_data_phase.descendants[0].child.location.function_name); |
EXPECT_EQ(kLineNumber, |
- process_data.descendants[0].child.location.line_number); |
- EXPECT_EQ(kWorkerThreadName, process_data.descendants[0].child.thread_name); |
+ process_data_phase.descendants[0].child.location.line_number); |
+ EXPECT_EQ(kWorkerThreadName, |
+ process_data_phase.descendants[0].child.thread_name); |
} else { |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
} |
} |
@@ -318,8 +339,14 @@ TEST_F(TrackedObjectsTest, DeactivatedBirthOnlyToSnapshotWorkerThread) { |
ProcessDataSnapshot process_data; |
ThreadData::Snapshot(&process_data); |
- EXPECT_EQ(0u, process_data.tasks.size()); |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
+ |
+ EXPECT_EQ(0u, process_data_phase.tasks.size()); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); |
} |
@@ -335,8 +362,14 @@ TEST_F(TrackedObjectsTest, DeactivatedBirthOnlyToSnapshotMainThread) { |
ProcessDataSnapshot process_data; |
ThreadData::Snapshot(&process_data); |
- EXPECT_EQ(0u, process_data.tasks.size()); |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
+ |
+ EXPECT_EQ(0u, process_data_phase.tasks.size()); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); |
} |
@@ -425,8 +458,8 @@ TEST_F(TrackedObjectsTest, LifeCycleMidDeactivatedToSnapshotMainThread) { |
pending_task.time_posted = kTimePosted; // Overwrite implied Now(). |
// Turn off tracking now that we have births. |
- EXPECT_TRUE(ThreadData::InitializeAndSetTrackingStatus( |
- ThreadData::DEACTIVATED)); |
+ EXPECT_TRUE( |
+ ThreadData::InitializeAndSetTrackingStatus(ThreadData::DEACTIVATED)); |
const unsigned int kStartOfRun = 5; |
const unsigned int kEndOfRun = 7; |
@@ -474,8 +507,14 @@ TEST_F(TrackedObjectsTest, LifeCyclePreDeactivatedToSnapshotMainThread) { |
ProcessDataSnapshot process_data; |
ThreadData::Snapshot(&process_data); |
- EXPECT_EQ(0u, process_data.tasks.size()); |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
+ |
+ EXPECT_EQ(0u, process_data_phase.tasks.size()); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); |
} |
@@ -558,34 +597,43 @@ TEST_F(TrackedObjectsTest, DifferentLives) { |
ProcessDataSnapshot process_data; |
ThreadData::Snapshot(&process_data); |
- ASSERT_EQ(2u, process_data.tasks.size()); |
- |
- EXPECT_EQ(kFile, process_data.tasks[0].birth.location.file_name); |
- EXPECT_EQ(kFunction, process_data.tasks[0].birth.location.function_name); |
- EXPECT_EQ(kLineNumber, process_data.tasks[0].birth.location.line_number); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[0].birth.thread_name); |
- EXPECT_EQ(1, process_data.tasks[0].death_data.count); |
- EXPECT_EQ(2, process_data.tasks[0].death_data.run_duration_sum); |
- EXPECT_EQ(2, process_data.tasks[0].death_data.run_duration_max); |
- EXPECT_EQ(2, process_data.tasks[0].death_data.run_duration_sample); |
- EXPECT_EQ(4, process_data.tasks[0].death_data.queue_duration_sum); |
- EXPECT_EQ(4, process_data.tasks[0].death_data.queue_duration_max); |
- EXPECT_EQ(4, process_data.tasks[0].death_data.queue_duration_sample); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[0].death_thread_name); |
- EXPECT_EQ(kFile, process_data.tasks[1].birth.location.file_name); |
- EXPECT_EQ(kFunction, process_data.tasks[1].birth.location.function_name); |
+ |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
+ |
+ ASSERT_EQ(2u, process_data_phase.tasks.size()); |
+ |
+ EXPECT_EQ(kFile, process_data_phase.tasks[0].birth.location.file_name); |
+ EXPECT_EQ(kFunction, |
+ process_data_phase.tasks[0].birth.location.function_name); |
+ EXPECT_EQ(kLineNumber, |
+ process_data_phase.tasks[0].birth.location.line_number); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[0].birth.thread_name); |
+ EXPECT_EQ(1, process_data_phase.tasks[0].death_data.count); |
+ EXPECT_EQ(2, process_data_phase.tasks[0].death_data.run_duration_sum); |
+ EXPECT_EQ(2, process_data_phase.tasks[0].death_data.run_duration_max); |
+ EXPECT_EQ(2, process_data_phase.tasks[0].death_data.run_duration_sample); |
+ EXPECT_EQ(4, process_data_phase.tasks[0].death_data.queue_duration_sum); |
+ EXPECT_EQ(4, process_data_phase.tasks[0].death_data.queue_duration_max); |
+ EXPECT_EQ(4, process_data_phase.tasks[0].death_data.queue_duration_sample); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[0].death_thread_name); |
+ EXPECT_EQ(kFile, process_data_phase.tasks[1].birth.location.file_name); |
+ EXPECT_EQ(kFunction, |
+ process_data_phase.tasks[1].birth.location.function_name); |
EXPECT_EQ(kSecondFakeLineNumber, |
- process_data.tasks[1].birth.location.line_number); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[1].birth.thread_name); |
- EXPECT_EQ(1, process_data.tasks[1].death_data.count); |
- EXPECT_EQ(0, process_data.tasks[1].death_data.run_duration_sum); |
- EXPECT_EQ(0, process_data.tasks[1].death_data.run_duration_max); |
- EXPECT_EQ(0, process_data.tasks[1].death_data.run_duration_sample); |
- EXPECT_EQ(0, process_data.tasks[1].death_data.queue_duration_sum); |
- EXPECT_EQ(0, process_data.tasks[1].death_data.queue_duration_max); |
- EXPECT_EQ(0, process_data.tasks[1].death_data.queue_duration_sample); |
- EXPECT_EQ(kStillAlive, process_data.tasks[1].death_thread_name); |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ process_data_phase.tasks[1].birth.location.line_number); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[1].birth.thread_name); |
+ EXPECT_EQ(1, process_data_phase.tasks[1].death_data.count); |
+ EXPECT_EQ(0, process_data_phase.tasks[1].death_data.run_duration_sum); |
+ EXPECT_EQ(0, process_data_phase.tasks[1].death_data.run_duration_max); |
+ EXPECT_EQ(0, process_data_phase.tasks[1].death_data.run_duration_sample); |
+ EXPECT_EQ(0, process_data_phase.tasks[1].death_data.queue_duration_sum); |
+ EXPECT_EQ(0, process_data_phase.tasks[1].death_data.queue_duration_max); |
+ EXPECT_EQ(0, process_data_phase.tasks[1].death_data.queue_duration_sample); |
+ EXPECT_EQ(kStillAlive, process_data_phase.tasks[1].death_thread_name); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); |
} |
@@ -719,38 +767,48 @@ TEST_F(TrackedObjectsTest, TaskWithNestedExclusionWithNestedTask) { |
ProcessDataSnapshot process_data; |
ThreadData::Snapshot(&process_data); |
+ ASSERT_EQ(1u, process_data.phased_process_data_snapshots.size()); |
+ auto it = process_data.phased_process_data_snapshots.find(0); |
+ ASSERT_TRUE(it != process_data.phased_process_data_snapshots.end()); |
+ const ProcessDataPhaseSnapshot& process_data_phase = it->second; |
+ |
// The order in which the two task follow is platform-dependent. |
- int t0 = (process_data.tasks[0].birth.location.line_number == kLineNumber) ? |
- 0 : 1; |
+ int t0 = |
+ (process_data_phase.tasks[0].birth.location.line_number == kLineNumber) |
+ ? 0 |
+ : 1; |
int t1 = 1 - t0; |
- ASSERT_EQ(2u, process_data.tasks.size()); |
- EXPECT_EQ(kFile, process_data.tasks[t0].birth.location.file_name); |
- EXPECT_EQ(kFunction, process_data.tasks[t0].birth.location.function_name); |
- EXPECT_EQ(kLineNumber, process_data.tasks[t0].birth.location.line_number); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[t0].birth.thread_name); |
- EXPECT_EQ(1, process_data.tasks[t0].death_data.count); |
- EXPECT_EQ(6, process_data.tasks[t0].death_data.run_duration_sum); |
- EXPECT_EQ(6, process_data.tasks[t0].death_data.run_duration_max); |
- EXPECT_EQ(6, process_data.tasks[t0].death_data.run_duration_sample); |
- EXPECT_EQ(4, process_data.tasks[t0].death_data.queue_duration_sum); |
- EXPECT_EQ(4, process_data.tasks[t0].death_data.queue_duration_max); |
- EXPECT_EQ(4, process_data.tasks[t0].death_data.queue_duration_sample); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[t0].death_thread_name); |
- EXPECT_EQ(kFile, process_data.tasks[t1].birth.location.file_name); |
- EXPECT_EQ(kFunction, process_data.tasks[t1].birth.location.function_name); |
+ ASSERT_EQ(2u, process_data_phase.tasks.size()); |
+ EXPECT_EQ(kFile, process_data_phase.tasks[t0].birth.location.file_name); |
+ EXPECT_EQ(kFunction, |
+ process_data_phase.tasks[t0].birth.location.function_name); |
+ EXPECT_EQ(kLineNumber, |
+ process_data_phase.tasks[t0].birth.location.line_number); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[t0].birth.thread_name); |
+ EXPECT_EQ(1, process_data_phase.tasks[t0].death_data.count); |
+ EXPECT_EQ(6, process_data_phase.tasks[t0].death_data.run_duration_sum); |
+ EXPECT_EQ(6, process_data_phase.tasks[t0].death_data.run_duration_max); |
+ EXPECT_EQ(6, process_data_phase.tasks[t0].death_data.run_duration_sample); |
+ EXPECT_EQ(4, process_data_phase.tasks[t0].death_data.queue_duration_sum); |
+ EXPECT_EQ(4, process_data_phase.tasks[t0].death_data.queue_duration_max); |
+ EXPECT_EQ(4, process_data_phase.tasks[t0].death_data.queue_duration_sample); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[t0].death_thread_name); |
+ EXPECT_EQ(kFile, process_data_phase.tasks[t1].birth.location.file_name); |
+ EXPECT_EQ(kFunction, |
+ process_data_phase.tasks[t1].birth.location.function_name); |
EXPECT_EQ(kSecondFakeLineNumber, |
- process_data.tasks[t1].birth.location.line_number); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[t1].birth.thread_name); |
- EXPECT_EQ(1, process_data.tasks[t1].death_data.count); |
- EXPECT_EQ(2, process_data.tasks[t1].death_data.run_duration_sum); |
- EXPECT_EQ(2, process_data.tasks[t1].death_data.run_duration_max); |
- EXPECT_EQ(2, process_data.tasks[t1].death_data.run_duration_sample); |
- EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_sum); |
- EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_max); |
- EXPECT_EQ(1, process_data.tasks[t1].death_data.queue_duration_sample); |
- EXPECT_EQ(kMainThreadName, process_data.tasks[t1].death_thread_name); |
- EXPECT_EQ(0u, process_data.descendants.size()); |
+ process_data_phase.tasks[t1].birth.location.line_number); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[t1].birth.thread_name); |
+ EXPECT_EQ(1, process_data_phase.tasks[t1].death_data.count); |
+ EXPECT_EQ(2, process_data_phase.tasks[t1].death_data.run_duration_sum); |
+ EXPECT_EQ(2, process_data_phase.tasks[t1].death_data.run_duration_max); |
+ EXPECT_EQ(2, process_data_phase.tasks[t1].death_data.run_duration_sample); |
+ EXPECT_EQ(1, process_data_phase.tasks[t1].death_data.queue_duration_sum); |
+ EXPECT_EQ(1, process_data_phase.tasks[t1].death_data.queue_duration_max); |
+ EXPECT_EQ(1, process_data_phase.tasks[t1].death_data.queue_duration_sample); |
+ EXPECT_EQ(kMainThreadName, process_data_phase.tasks[t1].death_thread_name); |
+ EXPECT_EQ(0u, process_data_phase.descendants.size()); |
EXPECT_EQ(base::GetCurrentProcId(), process_data.process_id); |
} |