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

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

Issue 2946783002: Simplify CommandOutput and friends. (Closed)
Patch Set: Merge branch 'master' into simplify-command-output Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/testing/dart/command.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/command_output.dart
diff --git a/tools/testing/dart/command_output.dart b/tools/testing/dart/command_output.dart
index fc2bc10e6db22d1367ff6d7cff2b5131f1b00fdf..322b32ebd24087ac815aaab1eef032ef73eec64d 100644
--- a/tools/testing/dart/command_output.dart
+++ b/tools/testing/dart/command_output.dart
@@ -14,80 +14,38 @@ import 'expectation.dart';
import 'test_runner.dart';
import 'utils.dart';
-/**
- * CommandOutput records the output of a completed command: the process's exit
- * code, the standard output and standard error, whether the process timed out,
- * and the time the process took to run. It does not contain a pointer to the
- * [TestCase] this is the output of, so some functions require the test case
- * to be passed as an argument.
- */
-abstract class CommandOutput {
- Command get command;
+/// CommandOutput records the output of a completed command: the process's exit
+/// code, the standard output and standard error, whether the process timed out,
+/// and the time the process took to run. It does not contain a pointer to the
+/// [TestCase] this is the output of, so some functions require the test case
+/// to be passed as an argument.
+class CommandOutput extends UniqueObject {
+ final Command command;
- Expectation result(TestCase testCase);
+ final bool hasTimedOut;
- bool get hasCrashed;
+ final Duration time;
- bool get hasTimedOut;
+ final int exitCode;
- bool didFail(TestCase testCase);
+ final int pid;
- bool hasFailed(TestCase testCase);
+ final List<int> stdout;
+ final List<int> stderr;
- bool get canRunDependendCommands;
+ final bool compilationSkipped;
- bool get successful; // otherwise we might to retry running
+ final List<String> diagnostics = [];
- Duration get time;
-
- int get exitCode;
-
- int get pid;
-
- List<int> get stdout;
-
- List<int> get stderr;
-
- List<String> get diagnostics;
-
- bool get compilationSkipped;
-}
-
-class CommandOutputImpl extends UniqueObject implements CommandOutput {
- Command command;
- int exitCode;
-
- bool timedOut;
- List<int> stdout;
- List<int> stderr;
- Duration time;
- List<String> diagnostics;
- bool compilationSkipped;
- int pid;
-
- /**
- * A flag to indicate we have already printed a warning about ignoring the VM
- * crash, to limit the amount of output produced per test.
- */
- bool alreadyPrintedWarning = false;
-
- CommandOutputImpl(
- Command this.command,
- int this.exitCode,
- bool this.timedOut,
- List<int> this.stdout,
- List<int> this.stderr,
- Duration this.time,
- bool this.compilationSkipped,
- int this.pid) {
- diagnostics = [];
- }
+ CommandOutput(this.command, this.exitCode, this.hasTimedOut, this.stdout,
+ this.stderr, this.time, this.compilationSkipped, this.pid);
Expectation result(TestCase testCase) {
if (hasCrashed) return Expectation.crash;
if (hasTimedOut) return Expectation.timeout;
if (hasFailed(testCase)) return Expectation.fail;
if (hasNonUtf8) return Expectation.nonUtf8Error;
+
return Expectation.pass;
}
@@ -100,8 +58,8 @@ class CommandOutputImpl extends UniqueObject implements CommandOutput {
if (io.Platform.operatingSystem == 'windows') {
// The VM uses std::abort to terminate on asserts.
// std::abort terminates with exit code 3 on Windows.
- if (exitCode == 3 || exitCode == CRASHING_BROWSER_EXITCODE) {
- return !timedOut;
+ if (exitCode == 3 || exitCode == browserCrashExitCode) {
+ return !hasTimedOut;
}
// If a program receives an uncaught system exception, the program
// terminates with the exception code as exit code.
@@ -109,16 +67,12 @@ class CommandOutputImpl extends UniqueObject implements CommandOutput {
// a crash of the program.
// System exception codes can be found in 'winnt.h', for example
// "#define STATUS_ACCESS_VIOLATION ((DWORD) 0xC0000005)"
- return (!timedOut && (exitCode < 0) && ((0x3FFFFF00 & exitCode) == 0));
+ return (!hasTimedOut && (exitCode < 0) && ((0x3FFFFF00 & exitCode) == 0));
}
- return !timedOut && ((exitCode < 0));
+ return !hasTimedOut && ((exitCode < 0));
}
- bool get hasTimedOut => timedOut;
-
- bool didFail(TestCase testCase) {
- return (exitCode != 0 && !hasCrashed);
- }
+ bool _didFail(TestCase testCase) => exitCode != 0 && !hasCrashed;
bool get canRunDependendCommands {
// FIXME(kustermann): We may need to change this
@@ -130,12 +84,13 @@ class CommandOutputImpl extends UniqueObject implements CommandOutput {
return !hasTimedOut && exitCode == 0;
}
+ // TODO(bob): Remove.
// Reverse result of a negative test.
bool hasFailed(TestCase testCase) {
- return testCase.isNegative ? !didFail(testCase) : didFail(testCase);
+ return testCase.isNegative ? !_didFail(testCase) : _didFail(testCase);
}
- bool get hasNonUtf8 => exitCode == NON_UTF_FAKE_EXITCODE;
+ bool get hasNonUtf8 => exitCode == nonUtfFakeExitCode;
Expectation _negateOutcomeIfNegativeTest(
Expectation outcome, bool isNegative) {
@@ -148,13 +103,13 @@ class CommandOutputImpl extends UniqueObject implements CommandOutput {
}
}
-class ContentShellCommandOutputImpl extends CommandOutputImpl {
+class ContentShellCommandOutput extends CommandOutput {
// Although tests are reported as passing, content shell sometimes exits with
// a nonzero exitcode which makes our dartium builders extremely falky.
// See: http://dartbug.com/15139.
// TODO(rnystrom): Is this still needed? The underlying bug is closed.
- static int WHITELISTED_CONTENTSHELL_EXITCODE = -1073740022;
- static bool isWindows = io.Platform.operatingSystem == 'windows';
+ static const _whitelistedContentShellExitCode = -1073740022;
+
static bool _failedBecauseOfFlakyInfrastructure(
Command command, bool timedOut, List<int> stderrBytes) {
// If the browser test failed, it may have been because content shell
@@ -167,8 +122,8 @@ class ContentShellCommandOutputImpl extends CommandOutputImpl {
var stderr = decodeUtf8(stderrBytes);
// TODO(7564): See http://dartbug.com/7564
// This may not be happening anymore. Test by removing this suppression.
- if (stderr.contains(MESSAGE_CANNOT_OPEN_DISPLAY) ||
- stderr.contains(MESSAGE_FAILED_TO_RUN_COMMAND)) {
+ if (stderr.contains(cannotOpenDisplayMessage) ||
+ stderr.contains(failedToRunCommandMessage)) {
DebugLogger.warning(
"Warning: Failure because of missing XDisplay. Test ignored");
return true;
@@ -182,9 +137,9 @@ class ContentShellCommandOutputImpl extends CommandOutputImpl {
return false;
}
- bool _infraFailure;
+ final bool _infraFailure;
- ContentShellCommandOutputImpl(
+ ContentShellCommandOutput(
Command command,
int exitCode,
bool timedOut,
@@ -226,12 +181,10 @@ class ContentShellCommandOutputImpl extends CommandOutputImpl {
bool get canRunDependendCommands {
// We cannot rely on the exit code of content_shell as a method to
// determine if we were successful or not.
- return super.canRunDependendCommands && !didFail(null);
+ return super.canRunDependendCommands && !_didFail(null);
}
- bool get hasCrashed {
- return super.hasCrashed || _rendererCrashed;
- }
+ bool get hasCrashed => super.hasCrashed || _rendererCrashed;
Expectation _getOutcome() {
if (_browserTestFailure) {
@@ -246,7 +199,7 @@ class ContentShellCommandOutputImpl extends CommandOutputImpl {
bool get _browserTestFailure {
// Browser tests fail unless stdout contains
// 'Content-Type: text/plain' followed by 'PASS'.
- bool hasContentType = false;
+ var hasContentType = false;
var stdoutLines = decodeUtf8(super.stdout).split("\n");
var containsFail = false;
var containsPass = false;
@@ -287,18 +240,21 @@ class ContentShellCommandOutputImpl extends CommandOutputImpl {
DebugLogger.warning(message);
diagnostics.add(message);
}
+
+ var isWindows = io.Platform.operatingSystem == 'windows';
return (!hasCrashed &&
exitCode != 0 &&
- (!isWindows || exitCode != WHITELISTED_CONTENTSHELL_EXITCODE));
+ (!isWindows || exitCode != _whitelistedContentShellExitCode));
}
+
DebugLogger.warning("Couldn't find 'Content-Type: text/plain' in output. "
"($command).");
return true;
}
}
-class HTMLBrowserCommandOutputImpl extends ContentShellCommandOutputImpl {
- HTMLBrowserCommandOutputImpl(
+class HtmlBrowserCommandOutput extends ContentShellCommandOutput {
+ HtmlBrowserCommandOutput(
Command command,
int exitCode,
bool timedOut,
@@ -309,7 +265,7 @@ class HTMLBrowserCommandOutputImpl extends ContentShellCommandOutputImpl {
: super(command, exitCode, timedOut, stdout, stderr, time,
compilationSkipped);
- bool didFail(TestCase testCase) {
+ bool _didFail(TestCase testCase) {
return _getOutcome() != Expectation.pass;
}
@@ -322,7 +278,7 @@ class HTMLBrowserCommandOutputImpl extends ContentShellCommandOutputImpl {
}
class BrowserTestJsonResult {
- static const ALLOWED_TYPES = const [
+ static const _allowedTypes = const [
'sync_exception',
'window_onerror',
'script_onerror',
@@ -353,7 +309,7 @@ class BrowserTestJsonResult {
validate("Message must be a List", events is List);
var messagesByType = <String, List<String>>{};
- ALLOWED_TYPES.forEach((type) => messagesByType[type] = <String>[]);
+ _allowedTypes.forEach((type) => messagesByType[type] = <String>[]);
for (var entry in events) {
validate("An entry must be a Map", entry is Map);
@@ -363,8 +319,8 @@ class BrowserTestJsonResult {
var timestamp = entry['timestamp'];
validate("'type' of an entry must be a String", type is String);
- validate("'type' has to be in $ALLOWED_TYPES.",
- ALLOWED_TYPES.contains(type));
+ validate("'type' has to be in $_allowedTypes.",
+ _allowedTypes.contains(type));
validate(
"'timestamp' of an entry must be a number", timestamp is num);
@@ -443,12 +399,12 @@ class BrowserTestJsonResult {
}
}
-class BrowserCommandOutputImpl extends CommandOutputImpl
+class BrowserCommandOutput extends CommandOutput
with UnittestSuiteMessagesMixin {
- BrowserTestOutput _result;
- Expectation _rawOutcome;
+ final BrowserTestOutput _result;
+ final Expectation _rawOutcome;
- factory BrowserCommandOutputImpl(Command command, BrowserTestOutput result) {
+ factory BrowserCommandOutput(Command command, BrowserTestOutput result) {
String indent(String string, int numSpaces) {
var spaces = new List.filled(numSpaces, ' ').join('');
return string
@@ -499,19 +455,18 @@ class BrowserCommandOutputImpl extends CommandOutputImpl
'BrowserOutput.stderr:\n'
'${indent(result.browserOutput.stderr.toString(), 2)}\n'
'\n';
- return new BrowserCommandOutputImpl._internal(
+ return new BrowserCommandOutput._internal(
command, result, outcome, encodeUtf8(stdout), encodeUtf8(stderr));
}
- BrowserCommandOutputImpl._internal(Command command, BrowserTestOutput result,
+ BrowserCommandOutput._internal(Command command, BrowserTestOutput result,
this._rawOutcome, List<int> stdout, List<int> stderr)
- : super(command, 0, result.didTimeout, stdout, stderr, result.duration,
- false, 0) {
- _result = result;
- }
+ : _result = result,
+ super(command, 0, result.didTimeout, stdout, stderr, result.duration,
+ false, 0);
Expectation result(TestCase testCase) {
- // Handle timeouts first
+ // Handle timeouts first.
if (_result.didTimeout) {
if (testCase.configuration.runtime == Runtime.ie11) {
// TODO(28955): See http://dartbug.com/28955
@@ -523,7 +478,7 @@ class BrowserCommandOutputImpl extends CommandOutputImpl
if (hasNonUtf8) return Expectation.nonUtf8Error;
- // Multitests are handled specially
+ // Multitests are handled specially.
if (testCase.hasRuntimeError) {
if (_rawOutcome == Expectation.runtimeError) return Expectation.pass;
return Expectation.missingRuntimeError;
@@ -533,15 +488,13 @@ class BrowserCommandOutputImpl extends CommandOutputImpl
}
}
-class AnalysisCommandOutputImpl extends CommandOutputImpl {
+class AnalysisCommandOutput extends CommandOutput {
// An error line has 8 fields that look like:
// ERROR|COMPILER|MISSING_SOURCE|file:/tmp/t.dart|15|1|24|Missing source.
- final int ERROR_LEVEL = 0;
- final int ERROR_TYPE = 1;
- final int FILENAME = 3;
- final int FORMATTED_ERROR = 7;
+ static const int _errorLevel = 0;
+ static const int _formattedError = 7;
- AnalysisCommandOutputImpl(
+ AnalysisCommandOutput(
Command command,
int exitCode,
bool timedOut,
@@ -563,33 +516,33 @@ class AnalysisCommandOutputImpl extends CommandOutputImpl {
if (hasNonUtf8) return Expectation.nonUtf8Error;
// Get the errors/warnings from the analyzer
- List<String> errors = [];
- List<String> warnings = [];
+ var errors = <String>[];
+ var warnings = <String>[];
parseAnalyzerOutput(errors, warnings);
// Handle errors / missing errors
if (testCase.expectCompileError) {
- if (errors.length > 0) {
+ if (errors.isNotEmpty) {
return Expectation.pass;
}
return Expectation.missingCompileTimeError;
}
- if (errors.length > 0) {
+ if (errors.isNotEmpty) {
return Expectation.compileTimeError;
}
// Handle static warnings / missing static warnings
if (testCase.hasStaticWarning) {
- if (warnings.length > 0) {
+ if (warnings.isNotEmpty) {
return Expectation.pass;
}
return Expectation.missingStaticWarning;
}
- if (warnings.length > 0) {
+ if (warnings.isNotEmpty) {
return Expectation.staticWarning;
}
- assert(errors.length == 0 && warnings.length == 0);
+ assert(errors.isEmpty && warnings.isEmpty);
assert(!testCase.hasCompileError && !testCase.hasStaticWarning);
return Expectation.pass;
}
@@ -598,9 +551,9 @@ class AnalysisCommandOutputImpl extends CommandOutputImpl {
// Parse a line delimited by the | character using \ as an escape character
// like: FOO|BAR|FOO\|BAR|FOO\\BAZ as 4 fields: FOO BAR FOO|BAR FOO\BAZ
List<String> splitMachineError(String line) {
- StringBuffer field = new StringBuffer();
- List<String> result = [];
- bool escaped = false;
+ var field = new StringBuffer();
+ var result = <String>[];
+ var escaped = false;
for (var i = 0; i < line.length; i++) {
var c = line[i];
if (!escaped && c == '\\') {
@@ -620,45 +573,46 @@ class AnalysisCommandOutputImpl extends CommandOutputImpl {
}
for (String line in decodeUtf8(super.stderr).split("\n")) {
- if (line.length == 0) continue;
+ if (line.isEmpty) continue;
+
List<String> fields = splitMachineError(line);
// We only consider errors/warnings for files of interest.
- if (fields.length > FORMATTED_ERROR) {
- if (fields[ERROR_LEVEL] == 'ERROR') {
- outErrors.add(fields[FORMATTED_ERROR]);
- } else if (fields[ERROR_LEVEL] == 'WARNING') {
- outWarnings.add(fields[FORMATTED_ERROR]);
+ if (fields.length > _formattedError) {
+ if (fields[_errorLevel] == 'ERROR') {
+ outErrors.add(fields[_formattedError]);
+ } else if (fields[_errorLevel] == 'WARNING') {
+ outWarnings.add(fields[_formattedError]);
}
- // OK to Skip error output that doesn't match the machine format
+ // OK to Skip error output that doesn't match the machine format.
}
}
}
}
-class VmCommandOutputImpl extends CommandOutputImpl
- with UnittestSuiteMessagesMixin {
- static const DART_VM_EXITCODE_DFE_ERROR = 252;
- static const DART_VM_EXITCODE_COMPILE_TIME_ERROR = 254;
- static const DART_VM_EXITCODE_UNCAUGHT_EXCEPTION = 255;
+class VMCommandOutput extends CommandOutput with UnittestSuiteMessagesMixin {
+ static const _dfeErrorExitCode = 252;
+ static const _compileErrorExitCode = 254;
+ static const _uncaughtExceptionExitCode = 255;
- VmCommandOutputImpl(Command command, int exitCode, bool timedOut,
+ VMCommandOutput(Command command, int exitCode, bool timedOut,
List<int> stdout, List<int> stderr, Duration time, int pid)
: super(command, exitCode, timedOut, stdout, stderr, time, false, pid);
Expectation result(TestCase testCase) {
- // Handle crashes and timeouts first
- if (exitCode == DART_VM_EXITCODE_DFE_ERROR) return Expectation.dartkCrash;
+ // Handle crashes and timeouts first.
+ if (exitCode == _dfeErrorExitCode) return Expectation.dartkCrash;
if (hasCrashed) return Expectation.crash;
if (hasTimedOut) return Expectation.timeout;
if (hasNonUtf8) return Expectation.nonUtf8Error;
- // Multitests are handled specially
+ // Multitests are handled specially.
if (testCase.expectCompileError) {
- if (exitCode == DART_VM_EXITCODE_COMPILE_TIME_ERROR) {
+ if (exitCode == _compileErrorExitCode) {
return Expectation.pass;
}
return Expectation.missingCompileTimeError;
}
+
if (testCase.hasRuntimeError) {
// TODO(kustermann): Do we consider a "runtimeError" only an uncaught
// exception or does any nonzero exit code fullfil this requirement?
@@ -668,27 +622,26 @@ class VmCommandOutputImpl extends CommandOutputImpl
return Expectation.missingRuntimeError;
}
- // The actual outcome depends on the exitCode
- Expectation outcome;
- if (exitCode == DART_VM_EXITCODE_COMPILE_TIME_ERROR) {
+ // The actual outcome depends on the exitCode.
+ var outcome = Expectation.pass;
+ if (exitCode == _compileErrorExitCode) {
outcome = Expectation.compileTimeError;
- } else if (exitCode == DART_VM_EXITCODE_UNCAUGHT_EXCEPTION) {
+ } else if (exitCode == _uncaughtExceptionExitCode) {
outcome = Expectation.runtimeError;
} else if (exitCode != 0) {
// This is a general fail, in case we get an unknown nonzero exitcode.
outcome = Expectation.fail;
- } else {
- outcome = Expectation.pass;
}
+
outcome = _negateOutcomeIfIncompleteAsyncTest(outcome, decodeUtf8(stdout));
return _negateOutcomeIfNegativeTest(outcome, testCase.isNegative);
}
}
-class CompilationCommandOutputImpl extends CommandOutputImpl {
- static const DART2JS_EXITCODE_CRASH = 253;
+class CompilationCommandOutput extends CommandOutput {
+ static const _crashExitCode = 253;
- CompilationCommandOutputImpl(
+ CompilationCommandOutput(
Command command,
int exitCode,
bool timedOut,
@@ -703,8 +656,8 @@ class CompilationCommandOutputImpl extends CommandOutputImpl {
// Handle general crash/timeout detection.
if (hasCrashed) return Expectation.crash;
if (hasTimedOut) {
- bool isWindows = io.Platform.operatingSystem == 'windows';
- bool isBrowserTestCase =
+ var isWindows = io.Platform.operatingSystem == 'windows';
+ var isBrowserTestCase =
testCase.commands.any((command) => command is BrowserTestCommand);
// TODO(26060) Dart2js batch mode hangs on Windows under heavy load.
return (isWindows && isBrowserTestCase)
@@ -714,13 +667,13 @@ class CompilationCommandOutputImpl extends CommandOutputImpl {
if (hasNonUtf8) return Expectation.nonUtf8Error;
// Handle dart2js specific crash detection
- if (exitCode == DART2JS_EXITCODE_CRASH ||
- exitCode == VmCommandOutputImpl.DART_VM_EXITCODE_COMPILE_TIME_ERROR ||
- exitCode == VmCommandOutputImpl.DART_VM_EXITCODE_UNCAUGHT_EXCEPTION) {
+ if (exitCode == _crashExitCode ||
+ exitCode == VMCommandOutput._compileErrorExitCode ||
+ exitCode == VMCommandOutput._uncaughtExceptionExitCode) {
return Expectation.crash;
}
- // Multitests are handled specially
+ // Multitests are handled specially.
if (testCase.expectCompileError) {
// Nonzero exit code of the compiler means compilation failed
// TODO(kustermann): Do we have a special exit code in that case???
@@ -730,7 +683,7 @@ class CompilationCommandOutputImpl extends CommandOutputImpl {
return Expectation.missingCompileTimeError;
}
- // TODO(kustermann): This is a hack, remove it
+ // TODO(kustermann): This is a hack, remove it.
if (testCase.hasRuntimeError && testCase.commands.length > 1) {
// We expected to run the test, but we got an compile time error.
// If the compilation succeeded, we wouldn't be in here!
@@ -738,14 +691,14 @@ class CompilationCommandOutputImpl extends CommandOutputImpl {
return Expectation.compileTimeError;
}
- Expectation outcome =
+ var outcome =
exitCode == 0 ? Expectation.pass : Expectation.compileTimeError;
return _negateOutcomeIfNegativeTest(outcome, testCase.isNegative);
}
}
-class KernelCompilationCommandOutputImpl extends CompilationCommandOutputImpl {
- KernelCompilationCommandOutputImpl(
+class KernelCompilationCommandOutput extends CompilationCommandOutput {
+ KernelCompilationCommandOutput(
Command command,
int exitCode,
bool timedOut,
@@ -759,8 +712,8 @@ class KernelCompilationCommandOutputImpl extends CompilationCommandOutputImpl {
bool get canRunDependendCommands {
// See [BatchRunnerProcess]: 0 means success, 1 means compile-time error.
// TODO(asgerf): When the frontend supports it, continue running even if
- // there were compile-time errors. See kernel_sdk issue #18.
- return !hasCrashed && !timedOut && exitCode == 0;
+ // there were compile-time errors. See kernel_sdk issue #18.
+ return !hasCrashed && !hasTimedOut && exitCode == 0;
}
Expectation result(TestCase testCase) {
@@ -775,22 +728,23 @@ class KernelCompilationCommandOutputImpl extends CompilationCommandOutputImpl {
return result;
}
- // If the compiler was able to produce a Kernel IR file we want to run the
- // result on the Dart VM. We therefore mark the [KernelCompilationCommand] as
- // successful.
- // => This ensures we test that the DartVM produces correct CompileTime errors
- // as it is supposed to for our test suites.
+ /// If the compiler was able to produce a Kernel IR file we want to run the
+ /// result on the Dart VM. We therefore mark the [KernelCompilationCommand]
+ /// as successful.
+ ///
+ /// This ensures we test that the DartVM produces correct CompileTime errors
+ /// as it is supposed to for our test suites.
bool get successful => canRunDependendCommands;
}
-class JsCommandlineOutputImpl extends CommandOutputImpl
+class JSCommandLineOutput extends CommandOutput
with UnittestSuiteMessagesMixin {
- JsCommandlineOutputImpl(Command command, int exitCode, bool timedOut,
+ JSCommandLineOutput(Command command, int exitCode, bool timedOut,
List<int> stdout, List<int> stderr, Duration time)
: super(command, exitCode, timedOut, stdout, stderr, time, false, 0);
Expectation result(TestCase testCase) {
- // Handle crashes and timeouts first
+ // Handle crashes and timeouts first.
if (hasCrashed) return Expectation.crash;
if (hasTimedOut) return Expectation.timeout;
if (hasNonUtf8) return Expectation.nonUtf8Error;
@@ -806,13 +760,13 @@ class JsCommandlineOutputImpl extends CommandOutputImpl
}
}
-class PubCommandOutputImpl extends CommandOutputImpl {
- PubCommandOutputImpl(PubCommand command, int exitCode, bool timedOut,
+class PubCommandOutput extends CommandOutput {
+ PubCommandOutput(PubCommand command, int exitCode, bool timedOut,
List<int> stdout, List<int> stderr, Duration time)
: super(command, exitCode, timedOut, stdout, stderr, time, false, 0);
Expectation result(TestCase testCase) {
- // Handle crashes and timeouts first
+ // Handle crashes and timeouts first.
if (hasCrashed) return Expectation.crash;
if (hasTimedOut) return Expectation.timeout;
if (hasNonUtf8) return Expectation.nonUtf8Error;
@@ -827,10 +781,10 @@ class PubCommandOutputImpl extends CommandOutputImpl {
}
}
-class ScriptCommandOutputImpl extends CommandOutputImpl {
+class ScriptCommandOutput extends CommandOutput {
final Expectation _result;
- ScriptCommandOutputImpl(ScriptCommand command, this._result,
+ ScriptCommandOutput(ScriptCommand command, this._result,
String scriptExecutionInformation, Duration time)
: super(command, 0, false, [], [], time, false, 0) {
var lines = scriptExecutionInformation.split("\n");
@@ -848,41 +802,41 @@ CommandOutput createCommandOutput(Command command, int exitCode, bool timedOut,
List<int> stdout, List<int> stderr, Duration time, bool compilationSkipped,
[int pid = 0]) {
if (command is ContentShellCommand) {
- return new ContentShellCommandOutputImpl(
+ return new ContentShellCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
} else if (command is BrowserTestCommand) {
- return new HTMLBrowserCommandOutputImpl(
+ return new HtmlBrowserCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
} else if (command is AnalysisCommand) {
- return new AnalysisCommandOutputImpl(
+ return new AnalysisCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
} else if (command is VmCommand) {
- return new VmCommandOutputImpl(
+ return new VMCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, pid);
} else if (command is KernelCompilationCommand) {
- return new KernelCompilationCommandOutputImpl(
+ return new KernelCompilationCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
} else if (command is AdbPrecompilationCommand) {
- return new VmCommandOutputImpl(
+ return new VMCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, pid);
} else if (command is CompilationCommand) {
if (command.displayName == 'precompiler' ||
command.displayName == 'app_jit') {
- return new VmCommandOutputImpl(
+ return new VMCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, pid);
}
- return new CompilationCommandOutputImpl(
+ return new CompilationCommandOutput(
command, exitCode, timedOut, stdout, stderr, time, compilationSkipped);
} else if (command is JSCommandlineCommand) {
- return new JsCommandlineOutputImpl(
+ return new JSCommandLineOutput(
command, exitCode, timedOut, stdout, stderr, time);
} else if (command is PubCommand) {
- return new PubCommandOutputImpl(
+ return new PubCommandOutput(
command, exitCode, timedOut, stdout, stderr, time);
}
- return new CommandOutputImpl(command, exitCode, timedOut, stdout, stderr,
- time, compilationSkipped, pid);
+ return new CommandOutput(command, exitCode, timedOut, stdout, stderr, time,
+ compilationSkipped, pid);
}
class UnittestSuiteMessagesMixin {
« no previous file with comments | « tools/testing/dart/command.dart ('k') | tools/testing/dart/test_runner.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698