OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 63 matching lines...) Loading... |
74 '08139ca0 000003f1 T v8::internal::Runtime::GetElementOrCharAt(v8::interna
l::Handle<v8::internal::Object>, unsigned int)', | 74 '08139ca0 000003f1 T v8::internal::Runtime::GetElementOrCharAt(v8::interna
l::Handle<v8::internal::Object>, unsigned int)', |
75 '0813a0b0 00000855 t v8::internal::Runtime_DebugGetPropertyDetails(v8::int
ernal::Arguments)', | 75 '0813a0b0 00000855 t v8::internal::Runtime_DebugGetPropertyDetails(v8::int
ernal::Arguments)', |
76 '0818b220 00000036 W v8::internal::RegExpMacroAssembler::CheckPosition(int
, v8::internal::Label*)', | 76 '0818b220 00000036 W v8::internal::RegExpMacroAssembler::CheckPosition(int
, v8::internal::Label*)', |
77 ' w __gmon_start__', | 77 ' w __gmon_start__', |
78 '081f08a0 00000004 B stdout\n' | 78 '081f08a0 00000004 B stdout\n' |
79 ].join('\n'), '']; | 79 ].join('\n'), '']; |
80 }; | 80 }; |
81 | 81 |
82 var shell_prov = new UnixCppEntriesProvider(); | 82 var shell_prov = new UnixCppEntriesProvider(); |
83 var shell_syms = []; | 83 var shell_syms = []; |
84 shell_prov.parseVmSymbols('shell', 0x08048000, 0x081ee000, | 84 shell_prov.parseVmSymbols('shell', 0x08048000, 0x081ee000, 0, |
85 function (name, start, end) { | 85 function (name, start, end) { |
86 shell_syms.push(Array.prototype.slice.apply(arguments, [0])); | 86 shell_syms.push(Array.prototype.slice.apply(arguments, [0])); |
87 }); | 87 }); |
88 assertEquals( | 88 assertEquals( |
89 [['_init', 0x08049790, 0x08049f50], | 89 [['_init', 0x08049790, 0x08049f50], |
90 ['_start', 0x08049f50, 0x08139150], | 90 ['_start', 0x08049f50, 0x08139150], |
91 ['v8::internal::Runtime_StringReplaceRegExpWithString(v8::internal::Argum
ents)', 0x08139150, 0x08139150 + 0xb4b], | 91 ['v8::internal::Runtime_StringReplaceRegExpWithString(v8::internal::Argum
ents)', 0x08139150, 0x08139150 + 0xb4b], |
92 ['v8::internal::Runtime::GetElementOrCharAt(v8::internal::Handle<v8::inte
rnal::Object>, unsigned int)', 0x08139ca0, 0x08139ca0 + 0x3f1], | 92 ['v8::internal::Runtime::GetElementOrCharAt(v8::internal::Handle<v8::inte
rnal::Object>, unsigned int)', 0x08139ca0, 0x08139ca0 + 0x3f1], |
93 ['v8::internal::Runtime_DebugGetPropertyDetails(v8::internal::Arguments)'
, 0x0813a0b0, 0x0813a0b0 + 0x855], | 93 ['v8::internal::Runtime_DebugGetPropertyDetails(v8::internal::Arguments)'
, 0x0813a0b0, 0x0813a0b0 + 0x855], |
94 ['v8::internal::RegExpMacroAssembler::CheckPosition(int, v8::internal::La
bel*)', 0x0818b220, 0x0818b220 + 0x36]], | 94 ['v8::internal::RegExpMacroAssembler::CheckPosition(int, v8::internal::La
bel*)', 0x0818b220, 0x0818b220 + 0x36]], |
95 shell_syms); | 95 shell_syms); |
96 | 96 |
97 // libc library | 97 // libc library |
98 UnixCppEntriesProvider.prototype.loadSymbols = function(libName) { | 98 UnixCppEntriesProvider.prototype.loadSymbols = function(libName) { |
99 this.symbols = [[ | 99 this.symbols = [[ |
100 '000162a0 00000005 T __libc_init_first', | 100 '000162a0 00000005 T __libc_init_first', |
101 '0002a5f0 0000002d T __isnan', | 101 '0002a5f0 0000002d T __isnan', |
102 '0002a5f0 0000002d W isnan', | 102 '0002a5f0 0000002d W isnan', |
103 '0002aaa0 0000000d W scalblnf', | 103 '0002aaa0 0000000d W scalblnf', |
104 '0002aaa0 0000000d W scalbnf', | 104 '0002aaa0 0000000d W scalbnf', |
105 '0011a340 00000048 T __libc_thread_freeres', | 105 '0011a340 00000048 T __libc_thread_freeres', |
106 '00128860 00000024 R _itoa_lower_digits\n'].join('\n'), '']; | 106 '00128860 00000024 R _itoa_lower_digits\n'].join('\n'), '']; |
107 }; | 107 }; |
108 var libc_prov = new UnixCppEntriesProvider(); | 108 var libc_prov = new UnixCppEntriesProvider(); |
109 var libc_syms = []; | 109 var libc_syms = []; |
110 libc_prov.parseVmSymbols('libc', 0xf7c5c000, 0xf7da5000, | 110 libc_prov.parseVmSymbols('libc', 0xf7c5c000, 0xf7da5000, 0, |
111 function (name, start, end) { | 111 function (name, start, end) { |
112 libc_syms.push(Array.prototype.slice.apply(arguments, [0])); | 112 libc_syms.push(Array.prototype.slice.apply(arguments, [0])); |
113 }); | 113 }); |
114 var libc_ref_syms = [['__libc_init_first', 0x000162a0, 0x000162a0 + 0x5], | 114 var libc_ref_syms = [['__libc_init_first', 0x000162a0, 0x000162a0 + 0x5], |
115 ['__isnan', 0x0002a5f0, 0x0002a5f0 + 0x2d], | 115 ['__isnan', 0x0002a5f0, 0x0002a5f0 + 0x2d], |
116 ['scalblnf', 0x0002aaa0, 0x0002aaa0 + 0xd], | 116 ['scalblnf', 0x0002aaa0, 0x0002aaa0 + 0xd], |
117 ['__libc_thread_freeres', 0x0011a340, 0x0011a340 + 0x48]]; | 117 ['__libc_thread_freeres', 0x0011a340, 0x0011a340 + 0x48]]; |
118 for (var i = 0; i < libc_ref_syms.length; ++i) { | 118 for (var i = 0; i < libc_ref_syms.length; ++i) { |
119 libc_ref_syms[i][1] += 0xf7c5c000; | 119 libc_ref_syms[i][1] += 0xf7c5c000; |
120 libc_ref_syms[i][2] += 0xf7c5c000; | 120 libc_ref_syms[i][2] += 0xf7c5c000; |
(...skipping 17 matching lines...) Loading... |
138 '0011b710 T v8::internal::RegExpMacroAssembler::CheckPosition', | 138 '0011b710 T v8::internal::RegExpMacroAssembler::CheckPosition', |
139 '00134250 t v8::internal::Runtime_StringReplaceRegExpWithString', | 139 '00134250 t v8::internal::Runtime_StringReplaceRegExpWithString', |
140 '00137220 T v8::internal::Runtime::GetElementOrCharAt', | 140 '00137220 T v8::internal::Runtime::GetElementOrCharAt', |
141 '00137400 t v8::internal::Runtime_DebugGetPropertyDetails', | 141 '00137400 t v8::internal::Runtime_DebugGetPropertyDetails', |
142 '001c1a80 b _private_mem\n' | 142 '001c1a80 b _private_mem\n' |
143 ].join('\n'), '']; | 143 ].join('\n'), '']; |
144 }; | 144 }; |
145 | 145 |
146 var shell_prov = new MacCppEntriesProvider(); | 146 var shell_prov = new MacCppEntriesProvider(); |
147 var shell_syms = []; | 147 var shell_syms = []; |
148 shell_prov.parseVmSymbols('shell', 0x00001b00, 0x00163156, | 148 shell_prov.parseVmSymbols('shell', 0x00001c00, 0x00163256, 0x100, |
149 function (name, start, end) { | 149 function (name, start, end) { |
150 shell_syms.push(Array.prototype.slice.apply(arguments, [0])); | 150 shell_syms.push(Array.prototype.slice.apply(arguments, [0])); |
151 }); | 151 }); |
152 assertEquals( | 152 assertEquals( |
153 [['start', 0x00001b00, 0x00001b40], | 153 [['start', 0x00001c00, 0x00001c40], |
154 ['dyld_stub_binding_helper', 0x00001b40, 0x0011b710], | 154 ['dyld_stub_binding_helper', 0x00001c40, 0x0011b810], |
155 ['v8::internal::RegExpMacroAssembler::CheckPosition', 0x0011b710, 0x00134
250], | 155 ['v8::internal::RegExpMacroAssembler::CheckPosition', 0x0011b810, 0x00134
350], |
156 ['v8::internal::Runtime_StringReplaceRegExpWithString', 0x00134250, 0x001
37220], | 156 ['v8::internal::Runtime_StringReplaceRegExpWithString', 0x00134350, 0x001
37320], |
157 ['v8::internal::Runtime::GetElementOrCharAt', 0x00137220, 0x00137400], | 157 ['v8::internal::Runtime::GetElementOrCharAt', 0x00137320, 0x00137500], |
158 ['v8::internal::Runtime_DebugGetPropertyDetails', 0x00137400, 0x00163156]
], | 158 ['v8::internal::Runtime_DebugGetPropertyDetails', 0x00137500, 0x00163256]
], |
159 shell_syms); | 159 shell_syms); |
160 | 160 |
161 // stdc++ library | 161 // stdc++ library |
162 MacCppEntriesProvider.prototype.loadSymbols = function(libName) { | 162 MacCppEntriesProvider.prototype.loadSymbols = function(libName) { |
163 this.symbols = [[ | 163 this.symbols = [[ |
164 '0000107a T __gnu_cxx::balloc::__mini_vector<std::pair<__gnu_cxx::bitmap
_allocator<char>::_Alloc_block*, __gnu_cxx::bitmap_allocator<char>::_Alloc_block
*> >::__mini_vector', | 164 '0000107a T __gnu_cxx::balloc::__mini_vector<std::pair<__gnu_cxx::bitmap
_allocator<char>::_Alloc_block*, __gnu_cxx::bitmap_allocator<char>::_Alloc_block
*> >::__mini_vector', |
165 '0002c410 T std::basic_streambuf<char, std::char_traits<char> >::pubseek
off', | 165 '0002c410 T std::basic_streambuf<char, std::char_traits<char> >::pubseek
off', |
166 '0002c488 T std::basic_streambuf<char, std::char_traits<char> >::pubseek
pos', | 166 '0002c488 T std::basic_streambuf<char, std::char_traits<char> >::pubseek
pos', |
167 '000466aa T ___cxa_pure_virtual\n'].join('\n'), '']; | 167 '000466aa T ___cxa_pure_virtual\n'].join('\n'), '']; |
168 }; | 168 }; |
169 var stdc_prov = new MacCppEntriesProvider(); | 169 var stdc_prov = new MacCppEntriesProvider(); |
170 var stdc_syms = []; | 170 var stdc_syms = []; |
171 stdc_prov.parseVmSymbols('stdc++', 0x95728fb4, 0x95770005, | 171 stdc_prov.parseVmSymbols('stdc++', 0x95728fb4, 0x95770005, 0, |
172 function (name, start, end) { | 172 function (name, start, end) { |
173 stdc_syms.push(Array.prototype.slice.apply(arguments, [0])); | 173 stdc_syms.push(Array.prototype.slice.apply(arguments, [0])); |
174 }); | 174 }); |
175 var stdc_ref_syms = [['__gnu_cxx::balloc::__mini_vector<std::pair<__gnu_cxx::b
itmap_allocator<char>::_Alloc_block*, __gnu_cxx::bitmap_allocator<char>::_Alloc_
block*> >::__mini_vector', 0x0000107a, 0x0002c410], | 175 var stdc_ref_syms = [['__gnu_cxx::balloc::__mini_vector<std::pair<__gnu_cxx::b
itmap_allocator<char>::_Alloc_block*, __gnu_cxx::bitmap_allocator<char>::_Alloc_
block*> >::__mini_vector', 0x0000107a, 0x0002c410], |
176 ['std::basic_streambuf<char, std::char_traits<char> >::pubseekoff', 0x000
2c410, 0x0002c488], | 176 ['std::basic_streambuf<char, std::char_traits<char> >::pubseekoff', 0x000
2c410, 0x0002c488], |
177 ['std::basic_streambuf<char, std::char_traits<char> >::pubseekpos', 0x000
2c488, 0x000466aa], | 177 ['std::basic_streambuf<char, std::char_traits<char> >::pubseekpos', 0x000
2c488, 0x000466aa], |
178 ['___cxa_pure_virtual', 0x000466aa, 0x95770005 - 0x95728fb4]]; | 178 ['___cxa_pure_virtual', 0x000466aa, 0x95770005 - 0x95728fb4]]; |
179 for (var i = 0; i < stdc_ref_syms.length; ++i) { | 179 for (var i = 0; i < stdc_ref_syms.length; ++i) { |
180 stdc_ref_syms[i][1] += 0x95728fb4; | 180 stdc_ref_syms[i][1] += 0x95728fb4; |
181 stdc_ref_syms[i][2] += 0x95728fb4; | 181 stdc_ref_syms[i][2] += 0x95728fb4; |
(...skipping 22 matching lines...) Loading... |
204 ' 0002:00000000 __imp__SetThreadPriority@8 004af000 kernel32:KER
NEL32.dll', | 204 ' 0002:00000000 __imp__SetThreadPriority@8 004af000 kernel32:KER
NEL32.dll', |
205 ' 0003:00000418 ?in_use_list_@PreallocatedStorage@internal@v8@@0V123
@A 00544418 v8_snapshot:allocation.obj', | 205 ' 0003:00000418 ?in_use_list_@PreallocatedStorage@internal@v8@@0V123
@A 00544418 v8_snapshot:allocation.obj', |
206 ' Static symbols', | 206 ' Static symbols', |
207 ' 0001:00000b70 ?DefaultFatalErrorHandler@v8@@YAXPBD0@Z 00401b70 f
v8_snapshot:api.obj', | 207 ' 0001:00000b70 ?DefaultFatalErrorHandler@v8@@YAXPBD0@Z 00401b70 f
v8_snapshot:api.obj', |
208 ' 0001:000010b0 ?EnsureInitialized@v8@@YAXPBD@Z 004020b0 f v8_snap
shot:api.obj', | 208 ' 0001:000010b0 ?EnsureInitialized@v8@@YAXPBD@Z 004020b0 f v8_snap
shot:api.obj', |
209 ' 0001:000ad17b ??__Fnomem@?5???2@YAPAXI@Z@YAXXZ 004ae17b f LIBCMT
:new.obj' | 209 ' 0001:000ad17b ??__Fnomem@?5???2@YAPAXI@Z@YAXXZ 004ae17b f LIBCMT
:new.obj' |
210 ].join('\r\n'); | 210 ].join('\r\n'); |
211 }; | 211 }; |
212 var shell_prov = new WindowsCppEntriesProvider(); | 212 var shell_prov = new WindowsCppEntriesProvider(); |
213 var shell_syms = []; | 213 var shell_syms = []; |
214 shell_prov.parseVmSymbols('shell.exe', 0x00400000, 0x0057c000, | 214 shell_prov.parseVmSymbols('shell.exe', 0x00400000, 0x0057c000, 0, |
215 function (name, start, end) { | 215 function (name, start, end) { |
216 shell_syms.push(Array.prototype.slice.apply(arguments, [0])); | 216 shell_syms.push(Array.prototype.slice.apply(arguments, [0])); |
217 }); | 217 }); |
218 assertEquals( | 218 assertEquals( |
219 [['ReadFile', 0x00401000, 0x004010a0], | 219 [['ReadFile', 0x00401000, 0x004010a0], |
220 ['Print', 0x004010a0, 0x00402230], | 220 ['Print', 0x004010a0, 0x00402230], |
221 ['v8::String::?1Utf8Value', 0x00402230, 0x004964ba], | 221 ['v8::String::?1Utf8Value', 0x00402230, 0x004964ba], |
222 ['v8::DefaultFatalErrorHandler', 0x00401b70, 0x004020b0], | 222 ['v8::DefaultFatalErrorHandler', 0x00401b70, 0x004020b0], |
223 ['v8::EnsureInitialized', 0x004020b0, 0x0057c000]], | 223 ['v8::EnsureInitialized', 0x004020b0, 0x0057c000]], |
224 shell_syms); | 224 shell_syms); |
(...skipping 20 matching lines...) Loading... |
245 ' 0001:00000ac0 ___DllMainCRTStartup 01c31ac0 f libcmt:dllcr
t0.obj', | 245 ' 0001:00000ac0 ___DllMainCRTStartup 01c31ac0 f libcmt:dllcr
t0.obj', |
246 '' | 246 '' |
247 ].join('\r\n'); | 247 ].join('\r\n'); |
248 } | 248 } |
249 | 249 |
250 var oldRead = read; | 250 var oldRead = read; |
251 | 251 |
252 read = exeSymbols; | 252 read = exeSymbols; |
253 var exe_exe_syms = []; | 253 var exe_exe_syms = []; |
254 (new WindowsCppEntriesProvider()).parseVmSymbols( | 254 (new WindowsCppEntriesProvider()).parseVmSymbols( |
255 'chrome.exe', 0x00400000, 0x00472000, | 255 'chrome.exe', 0x00400000, 0x00472000, 0, |
256 function (name, start, end) { | 256 function (name, start, end) { |
257 exe_exe_syms.push(Array.prototype.slice.apply(arguments, [0])); | 257 exe_exe_syms.push(Array.prototype.slice.apply(arguments, [0])); |
258 }); | 258 }); |
259 assertEquals( | 259 assertEquals( |
260 [['RunMain', 0x00401780, 0x00401ac0], | 260 [['RunMain', 0x00401780, 0x00401ac0], |
261 ['_main', 0x00401ac0, 0x00472000]], | 261 ['_main', 0x00401ac0, 0x00472000]], |
262 exe_exe_syms, '.exe with .exe symbols'); | 262 exe_exe_syms, '.exe with .exe symbols'); |
263 | 263 |
264 read = dllSymbols; | 264 read = dllSymbols; |
265 var exe_dll_syms = []; | 265 var exe_dll_syms = []; |
266 (new WindowsCppEntriesProvider()).parseVmSymbols( | 266 (new WindowsCppEntriesProvider()).parseVmSymbols( |
267 'chrome.exe', 0x00400000, 0x00472000, | 267 'chrome.exe', 0x00400000, 0x00472000, 0, |
268 function (name, start, end) { | 268 function (name, start, end) { |
269 exe_dll_syms.push(Array.prototype.slice.apply(arguments, [0])); | 269 exe_dll_syms.push(Array.prototype.slice.apply(arguments, [0])); |
270 }); | 270 }); |
271 assertEquals( | 271 assertEquals( |
272 [], | 272 [], |
273 exe_dll_syms, '.exe with .dll symbols'); | 273 exe_dll_syms, '.exe with .dll symbols'); |
274 | 274 |
275 read = dllSymbols; | 275 read = dllSymbols; |
276 var dll_dll_syms = []; | 276 var dll_dll_syms = []; |
277 (new WindowsCppEntriesProvider()).parseVmSymbols( | 277 (new WindowsCppEntriesProvider()).parseVmSymbols( |
278 'chrome.dll', 0x01c30000, 0x02b80000, | 278 'chrome.dll', 0x01c30000, 0x02b80000, 0, |
279 function (name, start, end) { | 279 function (name, start, end) { |
280 dll_dll_syms.push(Array.prototype.slice.apply(arguments, [0])); | 280 dll_dll_syms.push(Array.prototype.slice.apply(arguments, [0])); |
281 }); | 281 }); |
282 assertEquals( | 282 assertEquals( |
283 [['_DllMain@12', 0x01c31780, 0x01c31ac0], | 283 [['_DllMain@12', 0x01c31780, 0x01c31ac0], |
284 ['___DllMainCRTStartup', 0x01c31ac0, 0x02b80000]], | 284 ['___DllMainCRTStartup', 0x01c31ac0, 0x02b80000]], |
285 dll_dll_syms, '.dll with .dll symbols'); | 285 dll_dll_syms, '.dll with .dll symbols'); |
286 | 286 |
287 read = exeSymbols; | 287 read = exeSymbols; |
288 var dll_exe_syms = []; | 288 var dll_exe_syms = []; |
289 (new WindowsCppEntriesProvider()).parseVmSymbols( | 289 (new WindowsCppEntriesProvider()).parseVmSymbols( |
290 'chrome.dll', 0x01c30000, 0x02b80000, | 290 'chrome.dll', 0x01c30000, 0x02b80000, 0, |
291 function (name, start, end) { | 291 function (name, start, end) { |
292 dll_exe_syms.push(Array.prototype.slice.apply(arguments, [0])); | 292 dll_exe_syms.push(Array.prototype.slice.apply(arguments, [0])); |
293 }); | 293 }); |
294 assertEquals( | 294 assertEquals( |
295 [], | 295 [], |
296 dll_exe_syms, '.dll with .exe symbols'); | 296 dll_exe_syms, '.dll with .exe symbols'); |
297 | 297 |
298 read = oldRead; | 298 read = oldRead; |
299 })(); | 299 })(); |
300 | 300 |
301 | 301 |
302 function CppEntriesProviderMock() { | 302 function CppEntriesProviderMock() { |
303 }; | 303 }; |
304 | 304 |
305 | 305 |
306 CppEntriesProviderMock.prototype.parseVmSymbols = function( | 306 CppEntriesProviderMock.prototype.parseVmSymbols = function( |
307 name, startAddr, endAddr, symbolAdder) { | 307 name, startAddr, endAddr, slideAddr, symbolAdder) { |
308 var symbols = { | 308 var symbols = { |
309 'shell': | 309 'shell': |
310 [['v8::internal::JSObject::LookupOwnRealNamedProperty(v8::internal::Stri
ng*, v8::internal::LookupResult*)', 0x080f8800, 0x080f8d90], | 310 [['v8::internal::JSObject::LookupOwnRealNamedProperty(v8::internal::Stri
ng*, v8::internal::LookupResult*)', 0x080f8800, 0x080f8d90], |
311 ['v8::internal::HashTable<v8::internal::StringDictionaryShape, v8::inte
rnal::String*>::FindEntry(v8::internal::String*)', 0x080f8210, 0x080f8800], | 311 ['v8::internal::HashTable<v8::internal::StringDictionaryShape, v8::inte
rnal::String*>::FindEntry(v8::internal::String*)', 0x080f8210, 0x080f8800], |
312 ['v8::internal::Runtime_Math_exp(v8::internal::Arguments)', 0x08123b20,
0x08123b80]], | 312 ['v8::internal::Runtime_Math_exp(v8::internal::Arguments)', 0x08123b20,
0x08123b80]], |
313 '/lib32/libm-2.7.so': | 313 '/lib32/libm-2.7.so': |
314 [['exp', startAddr + 0x00009e80, startAddr + 0x00009e80 + 0xa3], | 314 [['exp', startAddr + 0x00009e80, startAddr + 0x00009e80 + 0xa3], |
315 ['fegetexcept', startAddr + 0x000061e0, startAddr + 0x000061e0 + 0x15]]
, | 315 ['fegetexcept', startAddr + 0x000061e0, startAddr + 0x000061e0 + 0x15]]
, |
316 'ffffe000-fffff000': []}; | 316 'ffffe000-fffff000': []}; |
317 assertTrue(name in symbols); | 317 assertTrue(name in symbols); |
(...skipping 99 matching lines...) Loading... |
417 false], | 417 false], |
418 'OnlySummary': [ | 418 'OnlySummary': [ |
419 false, false, null, | 419 false, false, null, |
420 'tickprocessor-test.log', 'tickprocessor-test.only-summary', true] | 420 'tickprocessor-test.log', 'tickprocessor-test.only-summary', true] |
421 }; | 421 }; |
422 for (var testName in testData) { | 422 for (var testName in testData) { |
423 print('=== testProcessing-' + testName + ' ==='); | 423 print('=== testProcessing-' + testName + ' ==='); |
424 driveTickProcessorTest.apply(null, testData[testName]); | 424 driveTickProcessorTest.apply(null, testData[testName]); |
425 } | 425 } |
426 })(); | 426 })(); |
OLD | NEW |