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

Side by Side Diff: pkg/unittest/lib/compact_vm_config.dart

Issue 19540015: Roll forward "Use package:stack_trace in unittest." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 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 | « no previous file | pkg/unittest/lib/html_config.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) 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 /** 5 /**
6 * A test configuration that generates a compact 1-line progress bar. The bar is 6 * A test configuration that generates a compact 1-line progress bar. The bar is
7 * updated in-place before and after each test is executed. If all test pass, 7 * updated in-place before and after each test is executed. If all test pass,
8 * you should only see a couple lines in the terminal. If a test fails, the 8 * you should only see a couple lines in the terminal. If a test fails, the
9 * failure is shown and the progress bar continues to be updated below it. 9 * failure is shown and the progress bar continues to be updated below it.
10 */ 10 */
11 library compact_vm_config; 11 library compact_vm_config;
12 12
13 import 'dart:async'; 13 import 'dart:async';
14 import 'dart:io'; 14 import 'dart:io';
15 import 'dart:isolate'; 15 import 'dart:isolate';
16 16
17 import 'unittest.dart'; 17 import 'unittest.dart';
18 import 'src/utils.dart';
18 import 'vm_config.dart'; 19 import 'vm_config.dart';
19 20
20 const String _GREEN = '\u001b[32m'; 21 const String _GREEN = '\u001b[32m';
21 const String _RED = '\u001b[31m'; 22 const String _RED = '\u001b[31m';
22 const String _NONE = '\u001b[0m'; 23 const String _NONE = '\u001b[0m';
23 24
24 const int MAX_LINE = 80; 25 const int MAX_LINE = 80;
25 26
26 class CompactVMConfiguration extends VMConfiguration { 27 class CompactVMConfiguration extends VMConfiguration {
27 // The VM won't shut down if a receive port is open. Use this to make sure 28 // The VM won't shut down if a receive port is open. Use this to make sure
(...skipping 22 matching lines...) Expand all
50 void onTestResult(TestCase test) { 51 void onTestResult(TestCase test) {
51 super.onTestResult(test); 52 super.onTestResult(test);
52 if (test.result == PASS) { 53 if (test.result == PASS) {
53 _pass++; 54 _pass++;
54 _progressLine(_start, _pass, _fail, test.description); 55 _progressLine(_start, _pass, _fail, test.description);
55 } else { 56 } else {
56 _fail++; 57 _fail++;
57 _progressLine(_start, _pass, _fail, test.description); 58 _progressLine(_start, _pass, _fail, test.description);
58 print(''); 59 print('');
59 if (test.message != '') { 60 if (test.message != '') {
60 print(_indent(test.message)); 61 print(indent(test.message));
61 } 62 }
62 63
63 if (test.stackTrace != null && test.stackTrace != '') { 64 if (test.stackTrace != null) {
64 print(_indent(test.stackTrace)); 65 print(indent(test.stackTrace.toString()));
65 } 66 }
66 } 67 }
67 } 68 }
68 69
69 void onDone(bool success) { 70 void onDone(bool success) {
70 // Override and don't call the superclass onDone() to avoid printing the 71 // Override and don't call the superclass onDone() to avoid printing the
71 // "unittest-suite-..." boilerplate. 72 // "unittest-suite-..." boilerplate.
72 Future.wait([stdout.close(), stderr.close()]).then((_) { 73 Future.wait([stdout.close(), stderr.close()]).then((_) {
73 _receivePort.close(); 74 _receivePort.close();
74 exit(success ? 0 : 1); 75 exit(success ? 0 : 1);
75 }); 76 });
76 } 77 }
77 78
78 String _indent(String str) {
79 return str.split("\n").map((line) => " $line").join("\n");
80 }
81
82 void onSummary(int passed, int failed, int errors, List<TestCase> results, 79 void onSummary(int passed, int failed, int errors, List<TestCase> results,
83 String uncaughtError) { 80 String uncaughtError) {
84 var success = false; 81 var success = false;
85 if (passed == 0 && failed == 0 && errors == 0 && uncaughtError == null) { 82 if (passed == 0 && failed == 0 && errors == 0 && uncaughtError == null) {
86 print('\nNo tests ran.'); 83 print('\nNo tests ran.');
87 } else if (failed == 0 && errors == 0 && uncaughtError == null) { 84 } else if (failed == 0 && errors == 0 && uncaughtError == null) {
88 _progressLine(_start, _pass, _fail, 'All tests passed!', _NONE); 85 _progressLine(_start, _pass, _fail, 'All tests passed!', _NONE);
89 print(''); 86 print('');
90 success = true; 87 success = true;
91 } else { 88 } else {
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 // If the test is running on the Dart buildbots, we don't want to use this 191 // If the test is running on the Dart buildbots, we don't want to use this
195 // config since it's output may not be what the bots expect. 192 // config since it's output may not be what the bots expect.
196 if (Platform.environment.containsKey('BUILDBOT_BUILDERNAME')) { 193 if (Platform.environment.containsKey('BUILDBOT_BUILDERNAME')) {
197 return; 194 return;
198 } 195 }
199 196
200 unittestConfiguration = _singleton; 197 unittestConfiguration = _singleton;
201 } 198 }
202 199
203 final _singleton = new CompactVMConfiguration(); 200 final _singleton = new CompactVMConfiguration();
OLDNEW
« no previous file with comments | « no previous file | pkg/unittest/lib/html_config.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698