Chromium Code Reviews| Index: base/trace_event/heap_profiler_heap_dump_writer_unittest.cc |
| diff --git a/base/trace_event/heap_profiler_heap_dump_writer_unittest.cc b/base/trace_event/heap_profiler_heap_dump_writer_unittest.cc |
| index 8faa5cf2f91a1be164bf5973f6b17c0466766f80..a0b0eee8bbb3d6236a37ed977f45613ca149ee96 100644 |
| --- a/base/trace_event/heap_profiler_heap_dump_writer_unittest.cc |
| +++ b/base/trace_event/heap_profiler_heap_dump_writer_unittest.cc |
| @@ -16,6 +16,7 @@ |
| #include "base/trace_event/heap_profiler_allocation_context.h" |
| #include "base/trace_event/heap_profiler_stack_frame_deduplicator.h" |
| #include "base/trace_event/heap_profiler_type_name_deduplicator.h" |
| +#include "base/trace_event/memory_dump_session_state.h" |
| #include "base/trace_event/trace_event_argument.h" |
| #include "base/values.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -213,22 +214,23 @@ TEST(HeapDumpWriterTest, BacktraceTypeNameTable) { |
| // +--------+--------------------+-----------------+-------------+ |
| // | Sum | 28 23 | 49 34 | 77 57 | |
| - auto sf_deduplicator = WrapUnique(new StackFrameDeduplicator); |
| - auto tn_deduplicator = WrapUnique(new TypeNameDeduplicator); |
| - HeapDumpWriter writer(sf_deduplicator.get(), tn_deduplicator.get()); |
| + auto session = new MemoryDumpSessionState(); |
|
Primiano Tucci (use gerrit)
2016/04/22 14:18:28
This is leaking the SessionState now, there is no
Maria
2016/04/25 18:37:23
Acknowledged.
|
| + session->SetStackFrameDeduplicator(WrapUnique(new StackFrameDeduplicator)); |
| + session->SetTypeNameDeduplicator(WrapUnique(new TypeNameDeduplicator)); |
| + HeapDumpWriter writer(*session); |
|
Primiano Tucci (use gerrit)
2016/04/22 14:18:29
anyways, following my suggestions above, since thi
Maria
2016/04/25 18:37:23
Done.
|
| const std::set<Entry>& dump = writer.Summarize(metrics_by_context); |
| // Get the indices of the backtraces and types by adding them again to the |
| // deduplicator. Because they were added before, the same number is returned. |
| StackFrame bt0[] = {kRendererMain, kInitialize}; |
| StackFrame bt1[] = {kBrowserMain, kCreateWidget}; |
| - int bt_renderer_main = sf_deduplicator->Insert(bt0, bt0 + 1); |
| - int bt_browser_main = sf_deduplicator->Insert(bt1, bt1 + 1); |
| - int bt_renderer_main_initialize = sf_deduplicator->Insert(bt0, bt0 + 2); |
| - int bt_browser_main_create_widget = sf_deduplicator->Insert(bt1, bt1 + 2); |
| - int type_id_int = tn_deduplicator->Insert(kInt); |
| - int type_id_bool = tn_deduplicator->Insert(kBool); |
| - int type_id_string = tn_deduplicator->Insert(kString); |
| + int bt_renderer_main = session->stack_frame_deduplicator()->Insert(bt0, bt0 + 1); |
| + int bt_browser_main = session->stack_frame_deduplicator()->Insert(bt1, bt1 + 1); |
| + int bt_renderer_main_initialize = session->stack_frame_deduplicator()->Insert(bt0, bt0 + 2); |
| + int bt_browser_main_create_widget = session->stack_frame_deduplicator()->Insert(bt1, bt1 + 2); |
| + int type_id_int = session->type_name_deduplicator()->Insert(kInt); |
| + int type_id_bool = session->type_name_deduplicator()->Insert(kBool); |
| + int type_id_string = session->type_name_deduplicator()->Insert(kString); |
| // Full heap should have size 77. |
| AssertSizeAndCountEq(dump, -1, -1, {77, 57}); |
| @@ -282,19 +284,20 @@ TEST(HeapDumpWriterTest, InsignificantValuesNotDumped) { |
| ctx.backtrace.frames[2] = kInitialize; |
| metrics_by_context[ctx] = {512, 1}; |
| - auto sf_deduplicator = WrapUnique(new StackFrameDeduplicator); |
| - auto tn_deduplicator = WrapUnique(new TypeNameDeduplicator); |
| - HeapDumpWriter writer(sf_deduplicator.get(), tn_deduplicator.get()); |
| + auto session = new MemoryDumpSessionState(); |
|
Primiano Tucci (use gerrit)
2016/04/22 14:18:29
ditto about leaking, and ditto about might not be
Maria
2016/04/25 18:37:23
Acknowledged.
|
| + session->SetStackFrameDeduplicator(WrapUnique(new StackFrameDeduplicator)); |
| + session->SetTypeNameDeduplicator(WrapUnique(new TypeNameDeduplicator)); |
| + HeapDumpWriter writer(*session); |
| const std::set<Entry>& dump = writer.Summarize(metrics_by_context); |
| // Get the indices of the backtraces and types by adding them again to the |
| // deduplicator. Because they were added before, the same number is returned. |
| StackFrame bt0[] = {kBrowserMain, kCreateWidget, kGetBitmap}; |
| StackFrame bt1[] = {kBrowserMain, kCreateWidget, kInitialize}; |
| - int bt_browser_main = sf_deduplicator->Insert(bt0, bt0 + 1); |
| - int bt_create_widget = sf_deduplicator->Insert(bt0, bt0 + 2); |
| - int bt_get_bitmap = sf_deduplicator->Insert(bt0, bt0 + 3); |
| - int bt_initialize = sf_deduplicator->Insert(bt1, bt1 + 3); |
| + int bt_browser_main = session->stack_frame_deduplicator()->Insert(bt0, bt0 + 1); |
| + int bt_create_widget = session->stack_frame_deduplicator()->Insert(bt0, bt0 + 2); |
| + int bt_get_bitmap = session->stack_frame_deduplicator()->Insert(bt0, bt0 + 3); |
| + int bt_initialize = session->stack_frame_deduplicator()->Insert(bt1, bt1 + 3); |
| // Full heap should have size of 1 MiB + 1 KiB and 3 chunks. |
| AssertSizeAndCountEq(dump, -1, -1 /* No type specified */, |