Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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) |
| OLD | NEW |