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

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

Issue 12316072: Some fixes in unittest after io v2 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: also include htmlconfig Created 7 years, 10 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 */
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 int _lastLength = 0; 83 int _lastLength = 0;
84 84
85 final int _nonVisiblePrefix = 1 + _GREEN.length + _NONE.length; 85 final int _nonVisiblePrefix = 1 + _GREEN.length + _NONE.length;
86 86
87 void _progressLine(DateTime startTime, int passed, int failed, String message, 87 void _progressLine(DateTime startTime, int passed, int failed, String message,
88 [String color = _NONE]) { 88 [String color = _NONE]) {
89 var duration = (new DateTime.now()).difference(startTime); 89 var duration = (new DateTime.now()).difference(startTime);
90 var buffer = new StringBuffer(); 90 var buffer = new StringBuffer();
91 // \r moves back to the beginnig of the current line. 91 // \r moves back to the beginnig of the current line.
92 buffer.add('\r${_timeString(duration)} '); 92 buffer.write('\r${_timeString(duration)} ');
93 buffer.add(_GREEN); 93 buffer.write(_GREEN);
94 buffer.add('+'); 94 buffer.write('+');
95 buffer.add(passed); 95 buffer.write(passed);
96 buffer.add(_NONE); 96 buffer.write(_NONE);
97 if (failed != 0) buffer.add(_RED); 97 if (failed != 0) buffer.write(_RED);
98 buffer.add(' -'); 98 buffer.write(' -');
99 buffer.add(failed); 99 buffer.write(failed);
100 if (failed != 0) buffer.add(_NONE); 100 if (failed != 0) buffer.write(_NONE);
101 buffer.add(': '); 101 buffer.write(': ');
102 buffer.add(color); 102 buffer.write(color);
103 103
104 int nonVisible = _nonVisiblePrefix + color.length + 104 int nonVisible = _nonVisiblePrefix + color.length +
gram 2013/02/22 17:36:11 Can you add a comment to this block of code please
Siggi Cherem (dart-lang) 2013/02/22 17:39:00 already submitted this one, but will do in a separ
105 (failed != 0 ? (_RED.length + _NONE.length) : 0); 105 (failed != 0 ? (_RED.length + _NONE.length) : 0);
106 int len = buffer.length - nonVisible; 106 int len = buffer.length - nonVisible;
107 var mx = MAX_LINE - len; 107 var mx = MAX_LINE - len;
108 buffer.add(_snippet(message, MAX_LINE - len)); 108 buffer.write(_snippet(message, MAX_LINE - len));
109 buffer.add(_NONE); 109 buffer.write(_NONE);
110 110
111 // Pad the rest of the line so that it looks erased. 111 // Pad the rest of the line so that it looks erased.
112 len = buffer.length - nonVisible - _NONE.length; 112 len = buffer.length - nonVisible - _NONE.length;
113 if (len > _lastLength) { 113 if (len > _lastLength) {
114 _lastLength = len; 114 _lastLength = len;
115 } else { 115 } else {
116 while (len < _lastLength) { 116 while (len < _lastLength) {
117 buffer.add(' '); 117 buffer.write(' ');
118 _lastLength--; 118 _lastLength--;
119 } 119 }
120 } 120 }
121 stdout.writeString(buffer.toString()); 121 stdout.addString(buffer.toString());
122 } 122 }
123 123
124 String _padTime(int time) => 124 String _padTime(int time) =>
125 (time == 0) ? '00' : ((time < 10) ? '0$time' : '$time'); 125 (time == 0) ? '00' : ((time < 10) ? '0$time' : '$time');
126 126
127 String _timeString(Duration duration) { 127 String _timeString(Duration duration) {
128 var min = duration.inMinutes; 128 var min = duration.inMinutes;
129 var sec = duration.inSeconds % 60; 129 var sec = duration.inSeconds % 60;
130 return '${_padTime(min)}:${_padTime(sec)}'; 130 return '${_padTime(min)}:${_padTime(sec)}';
131 } 131 }
132 132
133 String _snippet(String text, int maxLength) { 133 String _snippet(String text, int maxLength) {
134 // Return the full message if it fits 134 // Return the full message if it fits
135 if (text.length <= maxLength) return text; 135 if (text.length <= maxLength) return text;
136 136
137 // If we can fit the first and last three words, do so. 137 // If we can fit the first and last three words, do so.
138 var words = text.split(' '); 138 var words = text.split(' ');
139 if (words.length > 1) { 139 if (words.length > 1) {
140 int i = words.length; 140 int i = words.length;
141 var len = words.first.length + 4; 141 var len = words.first.length + 4;
142 do { 142 do {
143 len += 1 + words[--i].length; 143 len += 1 + words[--i].length;
144 } while (len <= maxLength && i > 0); 144 } while (len <= maxLength && i > 0);
145 if (len > maxLength || i == 0) i++; 145 if (len > maxLength || i == 0) i++;
146 if (i < words.length - 4) { 146 if (i < words.length - 4) {
147 // Require at least 3 words at the end. 147 // Require at least 3 words at the end.
148 var buffer = new StringBuffer(); 148 var buffer = new StringBuffer();
149 buffer.add(words.first); 149 buffer.write(words.first);
150 buffer.add(' ...'); 150 buffer.write(' ...');
151 for (; i < words.length; i++) { 151 for (; i < words.length; i++) {
152 buffer.add(' '); 152 buffer.write(' ');
153 buffer.add(words[i]); 153 buffer.write(words[i]);
154 } 154 }
155 return buffer.toString(); 155 return buffer.toString();
156 } 156 }
157 } 157 }
158 158
159 // Otherwise truncate to return the trailing text, but attempt to start at 159 // Otherwise truncate to return the trailing text, but attempt to start at
160 // the beginning of a word. 160 // the beginning of a word.
161 var res = text.substring(text.length - maxLength + 4); 161 var res = text.substring(text.length - maxLength + 4);
162 var firstSpace = res.indexOf(' '); 162 var firstSpace = res.indexOf(' ');
163 if (firstSpace > 0) { 163 if (firstSpace > 0) {
164 res = res.substring(firstSpace); 164 res = res.substring(firstSpace);
165 } 165 }
166 return '...$res'; 166 return '...$res';
167 } 167 }
168 } 168 }
169 169
170 void useCompactVMConfiguration() { 170 void useCompactVMConfiguration() {
171 if (config != null) return; 171 if (config != null) return;
172 configure(new CompactVMConfiguration()); 172 configure(new CompactVMConfiguration());
173 } 173 }
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