Index: tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py |
diff --git a/tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py b/tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py |
index f69960b9c6b90533d3d87c5995f1087acda50101..267c88d4f160dd3b87ad4d79bb6b99a8116363b7 100644 |
--- a/tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py |
+++ b/tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py |
@@ -1059,23 +1059,64 @@ class TraceEventTimelineImporterTest(unittest.TestCase): |
'id': '1234ABCD'}, |
{'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134, |
'id': '1234ABCD'}, |
+ {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 134, |
+ 'id': '1234ABCD'}, |
{'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245, |
'id': '1234ABDF'}, |
{'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 256, |
'id': '1234ABDF'}, |
+ {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 256, |
+ 'id': '1234ABDF'}, |
] |
+ processes = set([52, 54]) |
petrcermak
2016/01/07 18:59:29
nit: expected_processes
|
expected = [['1234ABCD', 0, 11], ['1234ABDF', 122, 11]] |
petrcermak
2016/01/07 18:59:29
nit: expected_WHAT?
|
trace_data = trace_data_module.TraceData(events) |
m = timeline_model.TimelineModel(trace_data) |
+ assert set(p.pid for p in m.GetAllProcesses()) == processes |
+ |
memory_dumps = list(m.IterGlobalMemoryDumps()) |
self.assertEqual(len(expected), len(memory_dumps)) |
for memory_dump, test_values in zip(memory_dumps, expected): |
+ assert len(list(memory_dump.IterProcessMemoryDumps())) == len(processes) |
dump_id, start, duration = test_values |
self.assertEquals(dump_id, memory_dump.dump_id) |
self.assertAlmostEqual(start / 1000.0, memory_dump.start) |
self.assertAlmostEqual(duration / 1000.0, memory_dump.duration) |
+ def testImportComposableMemoryDumpEvents(self): |
+ events = [ |
+ {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 123, 'id': '123', |
+ 'args': {'dumps': {'allocators': {'v8': {'attrs': {'size': |
petrcermak
2016/01/07 18:59:29
again, please break lines and indent consistently:
|
+ {'units': 'bytes', |
+ 'value': '0xa'}}}}}}}, |
+ {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134, 'id': '123', |
+ 'args': {'dumps': |
+ {'allocators': {'v8': {'attrs': {'size': {'units': 'bytes', |
+ 'value': '0xc'}}}}, |
+ 'process_mmaps': {'vm_regions': [{'mf': '', |
+ 'bs': {'pss': '0xd'}}]}}}}, |
+ {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 134, 'id': '123', |
+ 'args': {'dumps': {'process_mmaps': {'vm_regions': [{'mf': '', |
+ 'bs': {'pss': |
+ '0xb'}}]}}}} |
+ ] |
+ |
+ expected = [[10, 11], [12, 13]] |
petrcermak
2016/01/07 18:59:29
nit: expected_WHAT?
ssid
2016/01/07 20:46:09
Leaving this consistent with the rest of the file.
|
+ trace_data = trace_data_module.TraceData(events) |
+ m = timeline_model.TimelineModel(trace_data) |
+ memory_dump = m.IterGlobalMemoryDumps() |
petrcermak
2016/01/07 18:59:29
the next(...) call should be on this line already
|
+ process_dumps = list(next(memory_dump).IterProcessMemoryDumps()) |
+ assert len(process_dumps) == len(expected) |
+ for process_dump, test_values in zip(process_dumps, expected): |
+ v8_size, heap_size = test_values |
+ assert process_dump.has_mmaps |
+ assert process_dump.GetMemoryBucket('/Native heap').GetValue( |
+ 'proportional_resident') == heap_size |
+ assert process_dump.GetMemoryUsage()['allocator_v8'] == v8_size |
+ assert not next(memory_dump, None) |
+ |
petrcermak
2016/01/07 18:59:29
nit: There should only be one blank line here
|
+ |
def testImportOutOfOrderMemoryDumpEvents(self): |
events = [ |
{'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245, |