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

Side by Side Diff: tools/testing/dart/test_progress.dart

Issue 11883033: Fixed utf8 encoding/decoding issues in the testing scripts (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 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 | « tools/testing/dart/multitest.dart ('k') | tools/testing/dart/test_runner.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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 test_progress; 5 library test_progress;
6 6
7 import "dart:io"; 7 import "dart:io";
8 import "http_server.dart" as http_server;
9 import "status_file_parser.dart";
8 import "test_runner.dart"; 10 import "test_runner.dart";
9 import "test_suite.dart"; 11 import "test_suite.dart";
10 import "status_file_parser.dart"; 12 import "utils.dart";
11 import "http_server.dart" as http_server;
12 13
13 class ProgressIndicator { 14 class ProgressIndicator {
14 ProgressIndicator(this._startTime, this._printTiming) 15 ProgressIndicator(this._startTime, this._printTiming)
15 : _tests = [], _failureSummary = []; 16 : _tests = [], _failureSummary = [];
16 17
17 factory ProgressIndicator.fromName(String name, 18 factory ProgressIndicator.fromName(String name,
18 Date startTime, 19 Date startTime,
19 bool printTiming) { 20 bool printTiming) {
20 switch (name) { 21 switch (name) {
21 case 'compact': 22 case 'compact':
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 prefix = ' '; 182 prefix = ' ';
182 } 183 }
183 } 184 }
184 if (!test.lastCommandOutput.stdout.isEmpty) { 185 if (!test.lastCommandOutput.stdout.isEmpty) {
185 output.add(''); 186 output.add('');
186 output.add('stdout:'); 187 output.add('stdout:');
187 if (test.lastCommandOutput.command.isPixelTest) { 188 if (test.lastCommandOutput.command.isPixelTest) {
188 output.add('DRT pixel test failed! stdout is not printed because it ' 189 output.add('DRT pixel test failed! stdout is not printed because it '
189 'contains binary data!'); 190 'contains binary data!');
190 } else { 191 } else {
191 output.add(new String.fromCharCodes(test.lastCommandOutput.stdout)); 192 output.add(decodeUtf8(test.lastCommandOutput.stdout));
192 } 193 }
193 } 194 }
194 if (!test.lastCommandOutput.stderr.isEmpty) { 195 if (!test.lastCommandOutput.stderr.isEmpty) {
195 output.add(''); 196 output.add('');
196 output.add('stderr:'); 197 output.add('stderr:');
197 output.add(new String.fromCharCodes(test.lastCommandOutput.stderr)); 198 output.add(decodeUtf8(test.lastCommandOutput.stderr));
198 } 199 }
199 if (test is BrowserTestCase) { 200 if (test is BrowserTestCase) {
200 // Additional command for rerunning the steps locally after the fact. 201 // Additional command for rerunning the steps locally after the fact.
201 output.add('To retest, run: ' 202 output.add('To retest, run: '
202 '${TestUtils.dartTestExecutable.toNativePath()} ' 203 '${TestUtils.dartTestExecutable.toNativePath()} '
203 '${TestUtils.dartDir().toNativePath()}/tools/testing/dart/' 204 '${TestUtils.dartDir().toNativePath()}/tools/testing/dart/'
204 'http_server.dart -m ${test.configuration["mode"]} ' 205 'http_server.dart -m ${test.configuration["mode"]} '
205 '-a ${test.configuration["arch"]} ' 206 '-a ${test.configuration["arch"]} '
206 '-p ${http_server.TestingServerRunner.serverList[0].port} ' 207 '-p ${http_server.TestingServerRunner.serverList[0].port} '
207 '-c ${http_server.TestingServerRunner.serverList[1].port}'); 208 '-c ${http_server.TestingServerRunner.serverList[1].port}');
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 : super(startTime, printTiming); 330 : super(startTime, printTiming);
330 331
331 static int BOLD = 1; 332 static int BOLD = 1;
332 static int GREEN = 32; 333 static int GREEN = 32;
333 static int RED = 31; 334 static int RED = 31;
334 static int NONE = 0; 335 static int NONE = 0;
335 336
336 addColorWrapped(List<int> codes, String string, int color) { 337 addColorWrapped(List<int> codes, String string, int color) {
337 codes.add(27); 338 codes.add(27);
338 codes.addAll('[${color}m'.charCodes); 339 codes.addAll('[${color}m'.charCodes);
339 codes.addAll(string.charCodes); 340 codes.addAll(encodeUtf8(string));
340 codes.add(27); 341 codes.add(27);
341 codes.addAll('[0m'.charCodes); 342 codes.addAll('[0m'.charCodes);
342 } 343 }
343 344
344 void _printProgress() { 345 void _printProgress() {
345 var percent = ((_completedTests() / _foundTests) * 100).toInt().toString(); 346 var percent = ((_completedTests() / _foundTests) * 100).toInt().toString();
346 var progressPadded = _pad(_allTestsKnown ? percent : '--', 3); 347 var progressPadded = _pad(_allTestsKnown ? percent : '--', 3);
347 var passedPadded = _pad(_passedTests.toString(), 5); 348 var passedPadded = _pad(_passedTests.toString(), 5);
348 var failedPadded = _pad(_failedTests.toString(), 5); 349 var failedPadded = _pad(_failedTests.toString(), 5);
349 Duration d = (new Date.now()).difference(_startTime); 350 Duration d = (new Date.now()).difference(_startTime);
350 var progressLine = []; 351 var progressLine = [];
351 progressLine.addAll('\r[${_timeString(d)} | $progressPadded% | '.charCodes); 352 progressLine.addAll('\r[${_timeString(d)} | $progressPadded% | '.charCodes);
352 addColorWrapped(progressLine, '+$passedPadded ', GREEN); 353 addColorWrapped(progressLine, '+$passedPadded ', GREEN);
353 progressLine.addAll('| '.charCodes); 354 progressLine.addAll('| '.charCodes);
354 var failedColor = (_failedTests != 0) ? RED : NONE; 355 var failedColor = (_failedTests != 0) ? RED : NONE;
355 addColorWrapped(progressLine, '-$failedPadded', failedColor); 356 addColorWrapped(progressLine, '-$failedPadded', failedColor);
356 progressLine.addAll(']'.charCodes); 357 progressLine.addAll(']'.charCodes);
357 stdout.write(progressLine); 358 stdout.write(progressLine);
358 } 359 }
359 360
360 String _header(String header) { 361 String _header(String header) {
361 var result = []; 362 var result = [];
362 addColorWrapped(result, header, BOLD); 363 addColorWrapped(result, header, BOLD);
363 return new String.fromCharCodes(result); 364 return decodeUtf8(result);
364 } 365 }
365 } 366 }
366 367
367 368
368 class LineProgressIndicator extends ProgressIndicator { 369 class LineProgressIndicator extends ProgressIndicator {
369 LineProgressIndicator(Date startTime, bool printTiming) 370 LineProgressIndicator(Date startTime, bool printTiming)
370 : super(startTime, printTiming); 371 : super(startTime, printTiming);
371 372
372 void _printStartProgress(TestCase test) { 373 void _printStartProgress(TestCase test) {
373 } 374 }
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 print(''); 490 print('');
490 print('$config:'); 491 print('$config:');
491 statuses.sort((a, b) => a.compareTo(b)); 492 statuses.sort((a, b) => a.compareTo(b));
492 for (String status in statuses) { 493 for (String status in statuses) {
493 print(' $status'); 494 print(' $status');
494 } 495 }
495 }); 496 });
496 _printStatus(); 497 _printStatus();
497 } 498 }
498 } 499 }
OLDNEW
« no previous file with comments | « tools/testing/dart/multitest.dart ('k') | tools/testing/dart/test_runner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698