Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(621)

Unified Diff: base/trace_event/heap_profiler_heap_dump_writer_unittest.cc

Issue 1911643002: Add configurable limit to allocations in heap profiler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moving to use session state Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 */,

Powered by Google App Engine
This is Rietveld 408576698