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

Side by Side Diff: lib/src/executable.dart

Issue 1124113002: Add a flag controlling how verbose stack traces are. (Closed) Base URL: git@github.com:dart-lang/test.git@master
Patch Set: Created 5 years, 7 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 | « lib/src/backend/metadata.dart ('k') | lib/src/frontend/future_matchers.dart » ('j') | 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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 // TODO(nweiz): This is under lib so that it can be used by the unittest dummy 5 // TODO(nweiz): This is under lib so that it can be used by the unittest dummy
6 // package. Once that package is no longer being updated, move this back into 6 // package. Once that package is no longer being updated, move this back into
7 // bin. 7 // bin.
8 library test.executable; 8 library test.executable;
9 9
10 import 'dart:async'; 10 import 'dart:async';
11 import 'dart:io'; 11 import 'dart:io';
12 import 'dart:math' as math; 12 import 'dart:math' as math;
13 13
14 import 'package:args/args.dart'; 14 import 'package:args/args.dart';
15 import 'package:stack_trace/stack_trace.dart'; 15 import 'package:stack_trace/stack_trace.dart';
16 import 'package:yaml/yaml.dart'; 16 import 'package:yaml/yaml.dart';
17 17
18 import 'backend/metadata.dart';
18 import 'backend/test_platform.dart'; 19 import 'backend/test_platform.dart';
19 import 'runner/reporter/compact.dart'; 20 import 'runner/reporter/compact.dart';
20 import 'runner/reporter/expanded.dart'; 21 import 'runner/reporter/expanded.dart';
21 import 'runner/application_exception.dart'; 22 import 'runner/application_exception.dart';
22 import 'runner/load_exception.dart'; 23 import 'runner/load_exception.dart';
23 import 'runner/load_exception_suite.dart'; 24 import 'runner/load_exception_suite.dart';
24 import 'runner/loader.dart'; 25 import 'runner/loader.dart';
25 import 'util/exit_codes.dart' as exit_codes; 26 import 'util/exit_codes.dart' as exit_codes;
26 import 'util/io.dart'; 27 import 'util/io.dart';
27 import 'utils.dart'; 28 import 'utils.dart';
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 valueHelp: 'port'); 110 valueHelp: 'port');
110 _parser.addOption("reporter", 111 _parser.addOption("reporter",
111 abbr: 'r', 112 abbr: 'r',
112 help: 'The runner used to print test results.', 113 help: 'The runner used to print test results.',
113 allowed: ['compact', 'expanded'], 114 allowed: ['compact', 'expanded'],
114 defaultsTo: Platform.isWindows ? 'expanded' : 'compact', 115 defaultsTo: Platform.isWindows ? 'expanded' : 'compact',
115 allowedHelp: { 116 allowedHelp: {
116 'compact': 'A single line, updated continuously.', 117 'compact': 'A single line, updated continuously.',
117 'expanded': 'A separate line for each update.' 118 'expanded': 'A separate line for each update.'
118 }); 119 });
120 _parser.addFlag("verbose-trace", negatable: false,
121 help: 'Whether to emit stack traces with core library frames.');
119 _parser.addFlag("color", defaultsTo: null, 122 _parser.addFlag("color", defaultsTo: null,
120 help: 'Whether to use terminal colors.\n(auto-detected by default)'); 123 help: 'Whether to use terminal colors.\n(auto-detected by default)');
121 124
122 var options; 125 var options;
123 try { 126 try {
124 options = _parser.parse(args); 127 options = _parser.parse(args);
125 } on FormatException catch (error) { 128 } on FormatException catch (error) {
126 _printUsage(error.message); 129 _printUsage(error.message);
127 exitCode = exit_codes.usage; 130 exitCode = exit_codes.usage;
128 return; 131 return;
(...skipping 25 matching lines...) Expand all
154 157
155 transformers: 158 transformers:
156 - test/pub_serve: 159 - test/pub_serve:
157 \$include: test/**_test.dart 160 \$include: test/**_test.dart
158 '''); 161 ''');
159 exitCode = exit_codes.data; 162 exitCode = exit_codes.data;
160 return; 163 return;
161 } 164 }
162 } 165 }
163 166
167 var metadata = new Metadata(verboseTrace: options["verbose-trace"]);
164 var platforms = options["platform"].map(TestPlatform.find); 168 var platforms = options["platform"].map(TestPlatform.find);
165 var loader = new Loader(platforms, 169 var loader = new Loader(platforms,
166 pubServeUrl: pubServeUrl, 170 pubServeUrl: pubServeUrl,
167 packageRoot: options["package-root"], 171 packageRoot: options["package-root"],
168 color: color); 172 color: color,
173 metadata: metadata);
169 174
170 var concurrency = _defaultConcurrency; 175 var concurrency = _defaultConcurrency;
171 if (options["concurrency"] != null) { 176 if (options["concurrency"] != null) {
172 try { 177 try {
173 concurrency = int.parse(options["concurrency"]); 178 concurrency = int.parse(options["concurrency"]);
174 } catch (error) { 179 } catch (error) {
175 _printUsage('Couldn\'t parse --concurrency "${options["concurrency"]}":' 180 _printUsage('Couldn\'t parse --concurrency "${options["concurrency"]}":'
176 ' ${error.message}'); 181 ' ${error.message}');
177 exitCode = exit_codes.usage; 182 exitCode = exit_codes.usage;
178 return; 183 return;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 stderr.writeln('regular expression "${pattern.pattern}".'); 247 stderr.writeln('regular expression "${pattern.pattern}".');
243 } else { 248 } else {
244 stderr.writeln('"$pattern".'); 249 stderr.writeln('"$pattern".');
245 } 250 }
246 exitCode = exit_codes.data; 251 exitCode = exit_codes.data;
247 return null; 252 return null;
248 } 253 }
249 } 254 }
250 255
251 var reporter = options["reporter"] == "compact" 256 var reporter = options["reporter"] == "compact"
252 ? new CompactReporter(flatten(suites), 257 ? new CompactReporter(
253 concurrency: concurrency, color: color) 258 flatten(suites),
254 : new ExpandedReporter(flatten(suites), 259 concurrency: concurrency,
255 concurrency: concurrency, color: color); 260 color: color,
261 verboseTrace: options["verbose-trace"])
262 : new ExpandedReporter(
263 flatten(suites),
264 concurrency: concurrency,
265 color: color,
266 verboseTrace: options["verbose-trace"]);
256 267
257 // Override the signal handler to close [reporter]. [loader] will still be 268 // Override the signal handler to close [reporter]. [loader] will still be
258 // closed in the [whenComplete] below. 269 // closed in the [whenComplete] below.
259 signalSubscription.onData((_) { 270 signalSubscription.onData((_) {
260 signalSubscription.cancel(); 271 signalSubscription.cancel();
261 closed = true; 272 closed = true;
262 273
263 // Wait a bit to print this message, since printing it eagerly looks weird 274 // Wait a bit to print this message, since printing it eagerly looks weird
264 // if the tests then finish immediately. 275 // if the tests then finish immediately.
265 var timer = new Timer(new Duration(seconds: 1), () { 276 var timer = new Timer(new Duration(seconds: 1), () {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 if (description is! Map) return false; 384 if (description is! Map) return false;
374 var path = description["path"]; 385 var path = description["path"];
375 if (path is! String) return false; 386 if (path is! String) return false;
376 387
377 print("$version (from $path)"); 388 print("$version (from $path)");
378 return true; 389 return true;
379 390
380 default: return false; 391 default: return false;
381 } 392 }
382 } 393 }
OLDNEW
« no previous file with comments | « lib/src/backend/metadata.dart ('k') | lib/src/frontend/future_matchers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698