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

Unified Diff: tools/telemetry/telemetry/internal/browser/tab_unittest.py

Issue 1257693002: [telemetry] Add support for requesting memory dumps via extension API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 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: tools/telemetry/telemetry/internal/browser/tab_unittest.py
diff --git a/tools/telemetry/telemetry/internal/browser/tab_unittest.py b/tools/telemetry/telemetry/internal/browser/tab_unittest.py
index d6d3d63f375eb209eb58923a9e18a4a64e2df674..85f01eeb602cc90a686006741ce9c0ee2e190c02 100644
--- a/tools/telemetry/telemetry/internal/browser/tab_unittest.py
+++ b/tools/telemetry/telemetry/internal/browser/tab_unittest.py
@@ -177,6 +177,53 @@ class TabTest(tab_test_case.TabTestCase):
self.assertFalse(self._tab.IsAlive())
+class MemoryTabTest(tab_test_case.TabTestCase):
+
+ # Number of consecutively requested memory dumps.
+ _REQUESTED_DUMP_COUNT = 3
+
+ @classmethod
+ def CustomizeBrowserOptions(cls, options):
+ options.AppendExtraBrowserArgs([
+ '--no-sandbox',
+ '--enable-memory-benchmarking'
+ ])
+
+ # This test will be enabled once the
+ # chrome.memoryBenchmarking.requestMemoryDump API is added to Chrome. See
+ # crbug.com/505826
+ @decorators.Disabled
+ def testDumpMemory(self):
+ options = tracing_options.TracingOptions()
+ options.enable_chrome_trace = True
+ self._browser.platform.tracing_controller.Start(
+ options, tracing_category_filter.TracingCategoryFilter(
+ 'disabled-by-default-memory-infra'))
+
+ # Request several memory dumps in a row and test that they were all
+ # succesfully created.
+ dump_ids = set()
+ for _ in xrange(self._REQUESTED_DUMP_COUNT):
+ dump_id = self._tab.DumpMemory()
+ self.assertIsNotNone(dump_id)
+ dump_ids.add(dump_id)
+
+ # Check that the returned dump IDs were all unique.
+ self.assertEquals(self._REQUESTED_DUMP_COUNT, len(dump_ids))
+
+ trace_data = self._browser.platform.tracing_controller.Stop()
+
+ # Test that trace data is parsable.
+ timeline_model = model.TimelineModel(trace_data)
+ self.assertGreater(len(timeline_model.processes), 0)
+
+ # Test that the resulting model contains the requested memory dumps.
+ # TODO(petrcermak): Check that there are no extra memory dumps once
+ # periodic dumps can be disabled.
+ self.assertGreaterEqual(
+ {d.dump_id for d in timeline_model.IterGlobalMemoryDumps()}, dump_ids)
+
+
class GpuTabTest(tab_test_case.TabTestCase):
@classmethod
def CustomizeBrowserOptions(cls, options):

Powered by Google App Engine
This is Rietveld 408576698