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

Side by Side Diff: pkg/stack_trace/test/trace_test.dart

Issue 578993002: Unify parsing of Firefox and Safari stack traces. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « pkg/stack_trace/test/frame_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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 '(http://pub.dartlang.org/thing.js:1:100)'); 85 '(http://pub.dartlang.org/thing.js:1:100)');
86 86
87 expect(trace.frames[0].uri, 87 expect(trace.frames[0].uri,
88 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 88 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
89 expect(trace.frames[1].uri, 89 expect(trace.frames[1].uri,
90 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 90 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
91 expect(trace.frames[2].uri, 91 expect(trace.frames[2].uri,
92 equals(Uri.parse("http://pub.dartlang.org/thing.js"))); 92 equals(Uri.parse("http://pub.dartlang.org/thing.js")));
93 }); 93 });
94 94
95 test('parses a Firefox stack trace correctly', () { 95 test('parses a Firefox/Safari stack trace correctly', () {
96 var trace = new Trace.parse( 96 var trace = new Trace.parse(
97 'Foo._bar@http://pub.dartlang.org/stuff.js:42\n' 97 'Foo._bar@http://pub.dartlang.org/stuff.js:42\n'
98 'zip/<@http://pub.dartlang.org/stuff.js:0\n' 98 'zip/<@http://pub.dartlang.org/stuff.js:0\n'
99 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1'); 99 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1');
100 100
101 expect(trace.frames[0].uri, 101 expect(trace.frames[0].uri,
102 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 102 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
103 expect(trace.frames[1].uri, 103 expect(trace.frames[1].uri,
104 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 104 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
105 expect(trace.frames[2].uri, 105 expect(trace.frames[2].uri,
(...skipping 17 matching lines...) Expand all
123 'Foo._bar@http://pub.dartlang.org/stuff.js:42'); 123 'Foo._bar@http://pub.dartlang.org/stuff.js:42');
124 124
125 expect(trace.frames[0].uri, 125 expect(trace.frames[0].uri,
126 equals(Uri.parse("http://pub.dartlang.org/thing.js"))); 126 equals(Uri.parse("http://pub.dartlang.org/thing.js")));
127 expect(trace.frames[1].uri, 127 expect(trace.frames[1].uri,
128 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 128 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
129 expect(trace.frames[2].uri, 129 expect(trace.frames[2].uri,
130 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 130 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
131 }); 131 });
132 132
133 test('parses a Safari 6.0 stack trace correctly', () { 133 test('parses a Firefox/Safari stack trace containing native code correctly',
134 () {
134 var trace = new Trace.parse( 135 var trace = new Trace.parse(
135 'Foo._bar@http://pub.dartlang.org/stuff.js:42\n' 136 'Foo._bar@http://pub.dartlang.org/stuff.js:42\n'
136 'zip/<@http://pub.dartlang.org/stuff.js:0\n' 137 'zip/<@http://pub.dartlang.org/stuff.js:0\n'
137 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1\n' 138 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1\n'
138 '[native code]'); 139 '[native code]');
139 140
140 expect(trace.frames[0].uri, 141 expect(trace.frames[0].uri,
141 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 142 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
142 expect(trace.frames[1].uri, 143 expect(trace.frames[1].uri,
143 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 144 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
144 expect(trace.frames[2].uri, 145 expect(trace.frames[2].uri,
145 equals(Uri.parse("http://pub.dartlang.org/thing.js"))); 146 equals(Uri.parse("http://pub.dartlang.org/thing.js")));
146 expect(trace.frames.length, equals(3)); 147 expect(trace.frames.length, equals(3));
147 }); 148 });
148 149
149 test('parses a Safari 6.1 stack trace correctly', () { 150 test('parses a Firefox/Safari stack trace without a method name correctly',
151 () {
150 var trace = new Trace.parse( 152 var trace = new Trace.parse(
151 'http://pub.dartlang.org/stuff.js:42:43\n' 153 'http://pub.dartlang.org/stuff.js:42\n'
152 'zip@http://pub.dartlang.org/stuff.js:0:1\n' 154 'zip/<@http://pub.dartlang.org/stuff.js:0\n'
153 'zip\$zap@http://pub.dartlang.org/thing.js:1:2'); 155 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1');
156
157 expect(trace.frames[0].uri,
158 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
159 expect(trace.frames[0].member, equals('<fn>'));
160 expect(trace.frames[1].uri,
161 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
162 expect(trace.frames[2].uri,
163 equals(Uri.parse("http://pub.dartlang.org/thing.js")));
164 });
165
166 test('parses a Firefox/Safari stack trace with an empty line correctly',
167 () {
168 var trace = new Trace.parse(
169 'Foo._bar@http://pub.dartlang.org/stuff.js:42\n'
170 '\n'
171 'zip/<@http://pub.dartlang.org/stuff.js:0\n'
172 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1');
154 173
155 expect(trace.frames[0].uri, 174 expect(trace.frames[0].uri,
156 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 175 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
157 expect(trace.frames[1].uri, 176 expect(trace.frames[1].uri,
158 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 177 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
159 expect(trace.frames[2].uri, 178 expect(trace.frames[2].uri,
160 equals(Uri.parse("http://pub.dartlang.org/thing.js"))); 179 equals(Uri.parse("http://pub.dartlang.org/thing.js")));
161 }); 180 });
162 181
163 test('parses a Safari 6.1 stack trace with an empty line correctly', () { 182 test('parses a Firefox/Safari stack trace with a column number correctly',
183 () {
164 var trace = new Trace.parse( 184 var trace = new Trace.parse(
165 'http://pub.dartlang.org/stuff.js:42:43\n' 185 'Foo._bar@http://pub.dartlang.org/stuff.js:42:2\n'
166 '\n' 186 'zip/<@http://pub.dartlang.org/stuff.js:0\n'
167 'zip@http://pub.dartlang.org/stuff.js:0:1\n' 187 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1');
168 'zip\$zap@http://pub.dartlang.org/thing.js:1:2');
169 188
170 expect(trace.frames[0].uri, 189 expect(trace.frames[0].uri,
171 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 190 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
191 expect(trace.frames[0].line, equals(42));
192 expect(trace.frames[0].column, equals(2));
172 expect(trace.frames[1].uri, 193 expect(trace.frames[1].uri,
173 equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); 194 equals(Uri.parse("http://pub.dartlang.org/stuff.js")));
174 expect(trace.frames[2].uri, 195 expect(trace.frames[2].uri,
175 equals(Uri.parse("http://pub.dartlang.org/thing.js"))); 196 equals(Uri.parse("http://pub.dartlang.org/thing.js")));
176 }); 197 });
177 198
178 test('parses a package:stack_trace stack trace correctly', () { 199 test('parses a package:stack_trace stack trace correctly', () {
179 var trace = new Trace.parse( 200 var trace = new Trace.parse(
180 'http://dartlang.org/foo/bar.dart 10:11 Foo.<fn>.bar\n' 201 'http://dartlang.org/foo/bar.dart 10:11 Foo.<fn>.bar\n'
181 'http://dartlang.org/foo/baz.dart Foo.<fn>.bar'); 202 'http://dartlang.org/foo/baz.dart Foo.<fn>.bar');
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 295
275 var folded = trace.foldFrames((frame) => frame.member.startsWith('foo')); 296 var folded = trace.foldFrames((frame) => frame.member.startsWith('foo'));
276 expect(folded.toString(), equals(''' 297 expect(folded.toString(), equals('''
277 foo.dart 42:21 notFoo 298 foo.dart 42:21 notFoo
278 foo.dart 1:100 fooBottom 299 foo.dart 1:100 fooBottom
279 bar.dart 10:20 alsoNotFoo 300 bar.dart 10:20 alsoNotFoo
280 dart:async-patch/future.dart 9:11 fooBottom 301 dart:async-patch/future.dart 9:11 fooBottom
281 ''')); 302 '''));
282 }); 303 });
283 } 304 }
OLDNEW
« no previous file with comments | « pkg/stack_trace/test/frame_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698