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

Unified Diff: tools/testing/dart/test_progress.dart

Issue 8528025: Implement more progress modes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments Created 9 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | tools/testing/dart/test_runner.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/testing/dart/test_progress.dart
diff --git a/tools/testing/dart/test_progress.dart b/tools/testing/dart/test_progress.dart
index 8b944a7dea9466d137818d947dfdb575c4fc66d9..72abd4a6e751f7b6fe3a534ff94d643d3b346832 100644
--- a/tools/testing/dart/test_progress.dart
+++ b/tools/testing/dart/test_progress.dart
@@ -9,10 +9,28 @@
class ProgressIndicator {
ProgressIndicator() : _startTime = new Date.now();
+ factory ProgressIndicator.fromName(String name) {
+ switch (name) {
+ case 'compact':
+ return new CompactProgressIndicator();
+ case 'line':
+ return new LineProgressIndicator();
+ case 'verbose':
+ return new VerboseProgressIndicator();
+ case 'status':
+ return new StatusProgressIndicator();
+ case 'buildbot':
+ return new BuildbotProgressIndicator();
+ default:
+ assert(false);
Bill Hesse 2011/11/14 16:17:17 I think we want to throw here, not just throw in c
+ break;
+ }
+ }
+
void testAdded() => _foundTests++;
void start(TestCase test) {
- _printProgress();
+ _printStartProgress(test);
}
void done(TestCase test) {
@@ -22,10 +40,12 @@ class ProgressIndicator {
} else {
_passedTests++;
}
- _printProgress();
+ _printDoneProgress(test);
}
- abstract _printProgress();
+ abstract allDone();
+ abstract _printStartProgress();
+ abstract _printDoneProgress();
String _pad(String s, int length) {
StringBuffer buffer = new StringBuffer();
@@ -73,6 +93,19 @@ class ProgressIndicator {
print('\nCommand line: ${test.commandLine}');
}
+ void _printStatus() {
+ if (_failedTests == 0) {
+ print('\n===');
+ print('=== All tests succeeded');
+ print('===\n');
+ } else {
+ var pluralSuffix = _failedTests != 1 ? 's' : '';
+ print('\n===');
+ print('=== ${_failedTests} test$pluralSuffix failed');
+ print('===\n');
+ }
+ }
+
int _completedTests() => _passedTests + _failedTests;
int _foundTests = 0;
@@ -83,6 +116,9 @@ class ProgressIndicator {
class CompactProgressIndicator extends ProgressIndicator {
+ void allDone() {
+ }
+
void _printProgress() {
var percent = ((_completedTests() / _foundTests) * 100).floor().toString();
var percentPadded = _pad(percent, 5);
@@ -93,5 +129,78 @@ class CompactProgressIndicator extends ProgressIndicator {
'+$passedPadded | -$failedPadded]';
stdout.write(progressLine.charCodes());
}
+
+ void _printStartProgress(TestCase test) => _printProgress();
+ void _printDoneProgress(TestCase test) => _printProgress();
+}
+
+
+class LineProgressIndicator extends ProgressIndicator {
+ void allDone() {
+ _printStatus();
+ }
+
+ void _printStartProgress(TestCase test) {
+ }
+
+ void _printDoneProgress(TestCase test) {
+ var status = 'pass';
+ if (test.output.unexpectedOutput) {
+ status = 'fail';
+ }
+ print('Done ${test.displayName}: $status');
+ }
}
+
+class VerboseProgressIndicator extends ProgressIndicator {
+ void allDone() {
+ _printStatus();
+ }
+
+ void _printStartProgress(TestCase test) {
+ print('Starting ${test.displayName}...');
+ }
+
+ void _printDoneProgress(TestCase test) {
+ var status = 'pass';
+ if (test.output.unexpectedOutput) {
+ status = 'fail';
+ }
+ print('Done ${test.displayName}: $status');
+ }
+}
+
+
+class StatusProgressIndicator extends ProgressIndicator {
+ void allDone() {
+ _printStatus();
+ }
+
+ void _printStartProgress(TestCase test) {
+ }
+
+ void _printDoneProgress(TestCase test) {
+ }
+}
+
+
+class BuildbotProgressIndicator extends ProgressIndicator {
+ void allDone() {
+ _printStatus();
+ }
+
+ void _printStartProgress(TestCase test) {
+ }
+
+ void _printDoneProgress(TestCase test) {
+ var status = 'pass';
+ if (test.output.unexpectedOutput) {
+ status = 'fail';
+ }
+ var percent = ((_completedTests() / _foundTests) * 100).toInt().toString();
+ print('Done ${test.displayName}: $status');
+ print('@@@STEP_CLEAR@@@');
+ print('@@@STEP_TEXT@ $percent% +$_passedTests -$_failedTests @@@');
+ }
+}
« no previous file with comments | « tools/testing/dart/test_options.dart ('k') | tools/testing/dart/test_runner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698