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

Side by Side Diff: tools/telemetry/telemetry/timeline/trace_event_importer_unittest.py

Issue 1553183002: [telemetry] Add support for composable process dumps in memory-infra (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: adding test Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import unittest 5 import unittest
6 6
7 import telemetry.timeline.counter as tracing_counter 7 import telemetry.timeline.counter as tracing_counter
8 import telemetry.timeline.model as timeline_model 8 import telemetry.timeline.model as timeline_model
9 from telemetry.timeline import trace_data as trace_data_module 9 from telemetry.timeline import trace_data as trace_data_module
10 10
(...skipping 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 trace_data = trace_data_module.TraceData(events) 1052 trace_data = trace_data_module.TraceData(events)
1053 m = timeline_model.TimelineModel(trace_data) 1053 m = timeline_model.TimelineModel(trace_data)
1054 self.assertEqual(0, len(m.flow_events)) 1054 self.assertEqual(0, len(m.flow_events))
1055 1055
1056 def testImportMemoryDumpEvents(self): 1056 def testImportMemoryDumpEvents(self):
1057 events = [ 1057 events = [
1058 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 123, 1058 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 123,
1059 'id': '1234ABCD'}, 1059 'id': '1234ABCD'},
1060 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134, 1060 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134,
1061 'id': '1234ABCD'}, 1061 'id': '1234ABCD'},
1062 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 134,
1063 'id': '1234ABCD'},
1062 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245, 1064 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245,
1063 'id': '1234ABDF'}, 1065 'id': '1234ABDF'},
1064 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 256, 1066 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 256,
1065 'id': '1234ABDF'}, 1067 'id': '1234ABDF'},
1068 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 256,
1069 'id': '1234ABDF'},
1066 ] 1070 ]
1067 1071
1072 processes = set([52, 54])
petrcermak 2016/01/07 18:59:29 nit: expected_processes
1068 expected = [['1234ABCD', 0, 11], ['1234ABDF', 122, 11]] 1073 expected = [['1234ABCD', 0, 11], ['1234ABDF', 122, 11]]
petrcermak 2016/01/07 18:59:29 nit: expected_WHAT?
1069 trace_data = trace_data_module.TraceData(events) 1074 trace_data = trace_data_module.TraceData(events)
1070 m = timeline_model.TimelineModel(trace_data) 1075 m = timeline_model.TimelineModel(trace_data)
1076 assert set(p.pid for p in m.GetAllProcesses()) == processes
1077
1071 memory_dumps = list(m.IterGlobalMemoryDumps()) 1078 memory_dumps = list(m.IterGlobalMemoryDumps())
1072 self.assertEqual(len(expected), len(memory_dumps)) 1079 self.assertEqual(len(expected), len(memory_dumps))
1073 for memory_dump, test_values in zip(memory_dumps, expected): 1080 for memory_dump, test_values in zip(memory_dumps, expected):
1081 assert len(list(memory_dump.IterProcessMemoryDumps())) == len(processes)
1074 dump_id, start, duration = test_values 1082 dump_id, start, duration = test_values
1075 self.assertEquals(dump_id, memory_dump.dump_id) 1083 self.assertEquals(dump_id, memory_dump.dump_id)
1076 self.assertAlmostEqual(start / 1000.0, memory_dump.start) 1084 self.assertAlmostEqual(start / 1000.0, memory_dump.start)
1077 self.assertAlmostEqual(duration / 1000.0, memory_dump.duration) 1085 self.assertAlmostEqual(duration / 1000.0, memory_dump.duration)
1078 1086
1087 def testImportComposableMemoryDumpEvents(self):
1088 events = [
1089 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 123, 'id': '123',
1090 'args': {'dumps': {'allocators': {'v8': {'attrs': {'size':
petrcermak 2016/01/07 18:59:29 again, please break lines and indent consistently:
1091 {'units': 'bytes',
1092 'value': '0xa'}}}}}}},
1093 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134, 'id': '123',
1094 'args': {'dumps':
1095 {'allocators': {'v8': {'attrs': {'size': {'units': 'bytes',
1096 'value': '0xc'}}}},
1097 'process_mmaps': {'vm_regions': [{'mf': '',
1098 'bs': {'pss': '0xd'}}]}}}},
1099 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 134, 'id': '123',
1100 'args': {'dumps': {'process_mmaps': {'vm_regions': [{'mf': '',
1101 'bs': {'pss':
1102 '0xb'}}]}}}}
1103 ]
1104
1105 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.
1106 trace_data = trace_data_module.TraceData(events)
1107 m = timeline_model.TimelineModel(trace_data)
1108 memory_dump = m.IterGlobalMemoryDumps()
petrcermak 2016/01/07 18:59:29 the next(...) call should be on this line already
1109 process_dumps = list(next(memory_dump).IterProcessMemoryDumps())
1110 assert len(process_dumps) == len(expected)
1111 for process_dump, test_values in zip(process_dumps, expected):
1112 v8_size, heap_size = test_values
1113 assert process_dump.has_mmaps
1114 assert process_dump.GetMemoryBucket('/Native heap').GetValue(
1115 'proportional_resident') == heap_size
1116 assert process_dump.GetMemoryUsage()['allocator_v8'] == v8_size
1117 assert not next(memory_dump, None)
1118
petrcermak 2016/01/07 18:59:29 nit: There should only be one blank line here
1119
1079 def testImportOutOfOrderMemoryDumpEvents(self): 1120 def testImportOutOfOrderMemoryDumpEvents(self):
1080 events = [ 1121 events = [
1081 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245, 1122 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 245,
1082 'id': '1234ABDF'}, 1123 'id': '1234ABDF'},
1083 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134, 1124 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 134,
1084 'id': '1234ABCD'}, 1125 'id': '1234ABCD'},
1085 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 256, 1126 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 54, 'ts': 256,
1086 'id': '1234ABDF'}, 1127 'id': '1234ABDF'},
1087 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 123, 1128 {'name': 'a', 'cat': 'b', 'ph': 'v', 'pid': 52, 'ts': 123,
1088 'id': '1234ABCD'}, 1129 'id': '1234ABCD'},
(...skipping 25 matching lines...) Expand all
1114 ] 1155 ]
1115 trace_data = trace_data_module.TraceData(events) 1156 trace_data = trace_data_module.TraceData(events)
1116 m = timeline_model.TimelineModel(trace_data) 1157 m = timeline_model.TimelineModel(trace_data)
1117 processes = m.GetAllProcesses() 1158 processes = m.GetAllProcesses()
1118 1159
1119 self.assertEqual(len(processes), len(expected)) 1160 self.assertEqual(len(processes), len(expected))
1120 for process, test_values in zip(processes, expected): 1161 for process, test_values in zip(processes, expected):
1121 process_labels, process_name = test_values 1162 process_labels, process_name = test_values
1122 self.assertEquals(process_labels, process.labels) 1163 self.assertEquals(process_labels, process.labels)
1123 self.assertEquals(process_name, process.name) 1164 self.assertEquals(process_name, process.name)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698