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 |