Chromium Code Reviews

Unified Diff: lib/src/runner/reporter/expanded.dart

Issue 1196413003: Add a LoadSuite class. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: lib/src/runner/reporter/expanded.dart
diff --git a/lib/src/runner/reporter/expanded.dart b/lib/src/runner/reporter/expanded.dart
index 4f28c5efa168d2e379f34e8ed1702f474e9e39ba..cb167bb3bb2ad4d232eeb7f6045713d926926045 100644
--- a/lib/src/runner/reporter/expanded.dart
+++ b/lib/src/runner/reporter/expanded.dart
@@ -11,6 +11,7 @@ import '../../backend/state.dart';
import '../../utils.dart';
import '../engine.dart';
import '../load_exception.dart';
+import '../load_suite.dart';
/// The maximum console line length.
///
@@ -39,6 +40,14 @@ class ExpandedReporter {
/// Windows or not outputting to a terminal.
final String _yellow;
+ /// The terminal escape for gray text, or the empty string if this is
+ /// Windows or not outputting to a terminal.
+ final String _gray;
+
+ /// The terminal escape for bold text, or the empty string if this is
+ /// Windows or not outputting to a terminal.
+ final String _bold;
+
/// The terminal escape for removing test coloring, or the empty string if
/// this is Windows or not outputting to a terminal.
final String _noColor;
@@ -100,6 +109,8 @@ class ExpandedReporter {
_green = color ? '\u001b[32m' : '',
_red = color ? '\u001b[31m' : '',
_yellow = color ? '\u001b[33m' : '',
+ _gray = color ? '\u001b[1;30m' : '',
+ _bold = color ? '\u001b[1m' : '',
_noColor = color ? '\u001b[0m' : '' {
_engine.onTestStarted.listen(_onTestStarted);
_engine.success.then(_onDone);
@@ -107,13 +118,24 @@ class ExpandedReporter {
/// A callback called when the engine begins running [liveTest].
void _onTestStarted(LiveTest liveTest) {
- if (!_stopwatch.isRunning) _stopwatch.start();
-
- // If this is the first test to start, print a progress line so
- // the user knows what's running.
- if (_engine.active.length == 1) _progressLine(_description(liveTest));
-
- liveTest.onStateChange.listen((state) => _onStateChange(liveTest, state));
+ if (liveTest.suite is! LoadSuite) {
+ if (!_stopwatch.isRunning) _stopwatch.start();
+
+ // If this is the first non-load test to start, print a progress line so
+ // the user knows what's running.
+ if (_engine.active.length == 1) _progressLine(_description(liveTest));
+
+ // The engine surfaces load tests when there are no other tests running,
+ // but because the expanded reporter's output is always visible, we don't
+ // emit information about them unless they fail.
+ liveTest.onStateChange.listen((state) => _onStateChange(liveTest, state));
+ } else if (_engine.active.length == 1 &&
+ _engine.active.first == liveTest &&
+ liveTest.test.name.startsWith("compiling ")) {
+ // Print a progress line for load tests that come from compiling JS, since
+ // that takes a long time.
+ _progressLine(_description(liveTest));
+ }
liveTest.onError.listen((error) =>
_onError(liveTest, error.error, error.stackTrace));
@@ -234,9 +256,7 @@ class ExpandedReporter {
// Ensure the line fits within [_lineLength]. [buffer] includes the color
// escape sequences too. Because these sequences are not visible characters,
// we make sure they are not counted towards the limit.
- var nonVisible = 1 + _green.length + _noColor.length + color.length +
- (_engine.failed.isEmpty ? 0 : _red.length + _noColor.length);
- var length = buffer.length - nonVisible;
+ var length = withoutColors(buffer.toString()).length;
buffer.write(truncate(message, _lineLength - length));
buffer.write(_noColor);
@@ -264,6 +284,8 @@ class ExpandedReporter {
name = "[${liveTest.suite.platform}] $name";
}
+ if (liveTest.suite is LoadSuite) name = "$_bold$_gray$name$_noColor";
+
return name;
}
}

Powered by Google App Engine