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

Side by Side Diff: test/trace_test.dart

Issue 962913002: Remove the outermost folded frame for terse stack traces. (Closed) Base URL: git@github.com:dart-lang/stack_trace@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « test/chain_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library trace_test; 5 library trace_test;
6 6
7 import 'package:path/path.dart' as path; 7 import 'package:path/path.dart' as path;
8 import 'package:stack_trace/stack_trace.dart'; 8 import 'package:stack_trace/stack_trace.dart';
9 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
10 10
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 ]); 260 ]);
261 261
262 expect(trace.vmTrace.toString(), equals( 262 expect(trace.vmTrace.toString(), equals(
263 '#1 Foo.<anonymous closure> ($uri:10:20)\n' 263 '#1 Foo.<anonymous closure> ($uri:10:20)\n'
264 '#2 bar (http://dartlang.org/foo.dart:0:0)\n' 264 '#2 bar (http://dartlang.org/foo.dart:0:0)\n'
265 '#3 baz (dart:async:15:0)\n')); 265 '#3 baz (dart:async:15:0)\n'));
266 }); 266 });
267 267
268 test('.terse folds core frames together bottom-up', () { 268 test('.terse folds core frames together bottom-up', () {
269 var trace = new Trace.parse(''' 269 var trace = new Trace.parse('''
270 #0 notCore (foo.dart:42:21)
271 #1 top (dart:async/future.dart:0:2) 270 #1 top (dart:async/future.dart:0:2)
272 #2 bottom (dart:core/uri.dart:1:100) 271 #2 bottom (dart:core/uri.dart:1:100)
273 #3 alsoNotCore (bar.dart:10:20) 272 #0 notCore (foo.dart:42:21)
274 #4 top (dart:io:5:10) 273 #3 top (dart:io:5:10)
275 #5 bottom (dart:async-patch/future.dart:9:11) 274 #4 bottom (dart:async-patch/future.dart:9:11)
275 #5 alsoNotCore (bar.dart:10:20)
276 '''); 276 ''');
277 277
278 expect(trace.terse.toString(), equals(''' 278 expect(trace.terse.toString(), equals('''
279 dart:core bottom
279 foo.dart 42:21 notCore 280 foo.dart 42:21 notCore
280 dart:core bottom 281 dart:async bottom
281 bar.dart 10:20 alsoNotCore 282 bar.dart 10:20 alsoNotCore
282 dart:async bottom
283 ''')); 283 '''));
284 }); 284 });
285 285
286 test('.terse folds empty async frames', () { 286 test('.terse folds empty async frames', () {
287 var trace = new Trace.parse(''' 287 var trace = new Trace.parse('''
288 #0 top (dart:async/future.dart:0:2)
289 #1 empty.<<anonymous closure>_async_body> (bar.dart)
290 #2 bottom (dart:async-patch/future.dart:9:11)
291 #3 notCore (foo.dart:42:21)
292 ''');
293
294 expect(trace.terse.toString(), equals('''
295 dart:async bottom
296 foo.dart 42:21 notCore
297 '''));
298 });
299
300 test('.terse removes the bottom-most async frame', () {
301 var trace = new Trace.parse('''
288 #0 notCore (foo.dart:42:21) 302 #0 notCore (foo.dart:42:21)
289 #1 top (dart:async/future.dart:0:2) 303 #1 top (dart:async/future.dart:0:2)
290 #2 empty.<<anonymous closure>_async_body> (bar.dart) 304 #2 bottom (dart:core/uri.dart:1:100)
291 #3 bottom (dart:async-patch/future.dart:9:11) 305 #3 top (dart:io:5:10)
306 #4 bottom (dart:async-patch/future.dart:9:11)
292 '''); 307 ''');
293 308
294 expect(trace.terse.toString(), equals(''' 309 expect(trace.terse.toString(), equals('''
295 foo.dart 42:21 notCore 310 foo.dart 42:21 notCore
296 dart:async bottom
297 ''')); 311 '''));
298 }); 312 });
299 313
314 test(".terse won't make a trace empty", () {
315 var trace = new Trace.parse('''
316 #1 top (dart:async/future.dart:0:2)
317 #2 bottom (dart:core/uri.dart:1:100)
318 ''');
319
320 expect(trace.terse.toString(), equals('''
321 dart:core bottom
322 '''));
323 });
324
300 test('.foldFrames folds frames together bottom-up', () { 325 test('.foldFrames folds frames together bottom-up', () {
301 var trace = new Trace.parse(''' 326 var trace = new Trace.parse('''
302 #0 notFoo (foo.dart:42:21) 327 #0 notFoo (foo.dart:42:21)
303 #1 fooTop (bar.dart:0:2) 328 #1 fooTop (bar.dart:0:2)
304 #2 fooBottom (foo.dart:1:100) 329 #2 fooBottom (foo.dart:1:100)
305 #3 alsoNotFoo (bar.dart:10:20) 330 #3 alsoNotFoo (bar.dart:10:20)
306 #4 fooTop (dart:io/socket.dart:5:10) 331 #4 fooTop (dart:io/socket.dart:5:10)
307 #5 fooBottom (dart:async-patch/future.dart:9:11) 332 #5 fooBottom (dart:async-patch/future.dart:9:11)
308 '''); 333 ''');
309 334
310 var folded = trace.foldFrames((frame) => frame.member.startsWith('foo')); 335 var folded = trace.foldFrames((frame) => frame.member.startsWith('foo'));
311 expect(folded.toString(), equals(''' 336 expect(folded.toString(), equals('''
312 foo.dart 42:21 notFoo 337 foo.dart 42:21 notFoo
313 foo.dart 1:100 fooBottom 338 foo.dart 1:100 fooBottom
314 bar.dart 10:20 alsoNotFoo 339 bar.dart 10:20 alsoNotFoo
315 dart:async-patch/future.dart 9:11 fooBottom 340 dart:async-patch/future.dart 9:11 fooBottom
316 ''')); 341 '''));
317 }); 342 });
318 343
319 test('.foldFrames with terse: true, folds core frames as well', () { 344 test('.foldFrames with terse: true folds core frames as well', () {
320 var trace = new Trace.parse(''' 345 var trace = new Trace.parse('''
321 #0 notFoo (foo.dart:42:21) 346 #0 notFoo (foo.dart:42:21)
322 #1 fooTop (bar.dart:0:2) 347 #1 fooTop (bar.dart:0:2)
323 #2 coreBottom (dart:async/future.dart:0:2) 348 #2 coreBottom (dart:async/future.dart:0:2)
324 #3 alsoNotFoo (bar.dart:10:20) 349 #3 alsoNotFoo (bar.dart:10:20)
325 #4 fooTop (foo.dart:9:11) 350 #4 fooTop (foo.dart:9:11)
326 #5 coreBottom (dart:async-patch/future.dart:9:11) 351 #5 coreBottom (dart:async-patch/future.dart:9:11)
327 '''); 352 ''');
328 353
329 var folded = trace.foldFrames((frame) => frame.member.startsWith('foo'), 354 var folded = trace.foldFrames((frame) => frame.member.startsWith('foo'),
330 terse: true); 355 terse: true);
331 expect(folded.toString(), equals(''' 356 expect(folded.toString(), equals('''
332 foo.dart 42:21 notFoo 357 foo.dart 42:21 notFoo
333 dart:async coreBottom 358 dart:async coreBottom
334 bar.dart 10:20 alsoNotFoo 359 bar.dart 10:20 alsoNotFoo
335 dart:async coreBottom
336 ''')); 360 '''));
337 }); 361 });
338 } 362 }
OLDNEW
« no previous file with comments | « test/chain_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698