Chromium Code Reviews| 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..61ed53881527803db3705c1ec7596587f514ad14 100644 |
| --- a/tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py |
| +++ b/tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py |
| @@ -1059,23 +1059,94 @@ 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'}, |
| ] |
| - expected = [['1234ABCD', 0, 11], ['1234ABDF', 122, 11]] |
| + expected_processes = set([52, 54]) |
| + expected_results = [['1234ABCD', 0, 11], ['1234ABDF', 122, 11]] |
| trace_data = trace_data_module.TraceData(events) |
| m = timeline_model.TimelineModel(trace_data) |
| + assert set(p.pid for p in m.GetAllProcesses()) == expected_processes |
| + |
| memory_dumps = list(m.IterGlobalMemoryDumps()) |
| - self.assertEqual(len(expected), len(memory_dumps)) |
| - for memory_dump, test_values in zip(memory_dumps, expected): |
| + self.assertEqual(len(expected_results), len(memory_dumps)) |
| + for memory_dump, test_values in zip(memory_dumps, expected_results): |
| + assert len(list(memory_dump.IterProcessMemoryDumps())) == len( |
| + expected_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): |
|
perezju
2016/01/12 15:53:38
I still feel this is more complicated than it has
ssid
2016/01/12 17:13:18
True. I have added to the previous test and remove
perezju
2016/01/13 16:30:34
sgtm
|
| + events = [ |
| + { |
| + 'name': 'a', |
| + 'cat': 'b', |
| + 'ph': 'v', |
| + 'pid': 52, |
| + 'ts': 123, |
| + 'id': '123', |
| + 'args': { |
| + 'dumps': { |
| + 'allocators': { |
| + 'v8': {'attrs': {'size': {'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]] |
| + trace_data = trace_data_module.TraceData(events) |
| + m = timeline_model.TimelineModel(trace_data) |
| + memory_dumps_iter = m.IterGlobalMemoryDumps() |
| + process_dumps = list(next(memory_dumps_iter).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_dumps_iter, None) |
| + |
| def testImportOutOfOrderMemoryDumpEvents(self): |
| events = [ |
| {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245, |