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

Unified Diff: runtime/bin/process_patch.dart

Issue 2767533002: Revert "Fix observatory tests broken by running dartfmt." (Closed)
Patch Set: Created 3 years, 9 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 | « runtime/bin/platform_patch.dart ('k') | runtime/bin/secure_socket_patch.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/bin/process_patch.dart
diff --git a/runtime/bin/process_patch.dart b/runtime/bin/process_patch.dart
index 0366de2b0e0ba4b16355113eb8bbd42c62bf33cb..de7aa9d036845e18f5f471a799da18dc1af1a05b 100644
--- a/runtime/bin/process_patch.dart
+++ b/runtime/bin/process_patch.dart
@@ -2,87 +2,89 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
-@patch
-class _WindowsCodePageDecoder {
- @patch
- static String _decodeBytes(List<int> bytes) native "SystemEncodingToString";
+@patch class _WindowsCodePageDecoder {
+ @patch static String _decodeBytes(List<int> bytes)
+ native "SystemEncodingToString";
}
-@patch
-class _WindowsCodePageEncoder {
- @patch
- static List<int> _encodeString(String string) native "StringToSystemEncoding";
+
+@patch class _WindowsCodePageEncoder {
+ @patch static List<int> _encodeString(String string)
+ native "StringToSystemEncoding";
}
-@patch
-class Process {
- @patch
- static Future<Process> start(String executable, List<String> arguments,
+
+@patch class Process {
+ @patch static Future<Process> start(
+ String executable,
+ List<String> arguments,
{String workingDirectory,
- Map<String, String> environment,
- bool includeParentEnvironment: true,
- bool runInShell: false,
- ProcessStartMode mode: ProcessStartMode.NORMAL}) {
- _ProcessImpl process = new _ProcessImpl(
- executable,
- arguments,
- workingDirectory,
- environment,
- includeParentEnvironment,
- runInShell,
- mode);
+ Map<String, String> environment,
+ bool includeParentEnvironment: true,
+ bool runInShell: false,
+ ProcessStartMode mode: ProcessStartMode.NORMAL}) {
+ _ProcessImpl process = new _ProcessImpl(executable,
+ arguments,
+ workingDirectory,
+ environment,
+ includeParentEnvironment,
+ runInShell,
+ mode);
return process._start();
}
- @patch
- static Future<ProcessResult> run(String executable, List<String> arguments,
+ @patch static Future<ProcessResult> run(
+ String executable,
+ List<String> arguments,
{String workingDirectory,
- Map<String, String> environment,
- bool includeParentEnvironment: true,
- bool runInShell: false,
- Encoding stdoutEncoding: SYSTEM_ENCODING,
- Encoding stderrEncoding: SYSTEM_ENCODING}) {
- return _runNonInteractiveProcess(
- executable,
- arguments,
- workingDirectory,
- environment,
- includeParentEnvironment,
- runInShell,
- stdoutEncoding,
- stderrEncoding);
+ Map<String, String> environment,
+ bool includeParentEnvironment: true,
+ bool runInShell: false,
+ Encoding stdoutEncoding: SYSTEM_ENCODING,
+ Encoding stderrEncoding: SYSTEM_ENCODING}) {
+ return _runNonInteractiveProcess(executable,
+ arguments,
+ workingDirectory,
+ environment,
+ includeParentEnvironment,
+ runInShell,
+ stdoutEncoding,
+ stderrEncoding);
}
- @patch
- static ProcessResult runSync(String executable, List<String> arguments,
+ @patch static ProcessResult runSync(
+ String executable,
+ List<String> arguments,
{String workingDirectory,
- Map<String, String> environment,
- bool includeParentEnvironment: true,
- bool runInShell: false,
- Encoding stdoutEncoding: SYSTEM_ENCODING,
- Encoding stderrEncoding: SYSTEM_ENCODING}) {
- return _runNonInteractiveProcessSync(
- executable,
- arguments,
- workingDirectory,
- environment,
- includeParentEnvironment,
- runInShell,
- stdoutEncoding,
- stderrEncoding);
+ Map<String, String> environment,
+ bool includeParentEnvironment: true,
+ bool runInShell: false,
+ Encoding stdoutEncoding: SYSTEM_ENCODING,
+ Encoding stderrEncoding: SYSTEM_ENCODING}) {
+ return _runNonInteractiveProcessSync(executable,
+ arguments,
+ workingDirectory,
+ environment,
+ includeParentEnvironment,
+ runInShell,
+ stdoutEncoding,
+ stderrEncoding);
}
- @patch
- static bool killPid(int pid, [ProcessSignal signal = ProcessSignal.SIGTERM]) {
+ @patch static bool killPid(
+ int pid, [ProcessSignal signal = ProcessSignal.SIGTERM]) {
if (signal is! ProcessSignal) {
- throw new ArgumentError("Argument 'signal' must be a ProcessSignal");
+ throw new ArgumentError(
+ "Argument 'signal' must be a ProcessSignal");
}
return _ProcessUtils._killPid(pid, signal._signalNumber);
}
}
+
List<_SignalController> _signalControllers = new List(32);
+
class _SignalController {
final ProcessSignal signal;
@@ -90,8 +92,9 @@ class _SignalController {
var _id;
_SignalController(this.signal) {
- _controller =
- new StreamController.broadcast(onListen: _listen, onCancel: _cancel);
+ _controller = new StreamController.broadcast(
+ onListen: _listen,
+ onCancel: _cancel);
}
Stream<ProcessSignal> get stream => _controller.stream;
@@ -99,8 +102,8 @@ class _SignalController {
void _listen() {
var id = _setSignalHandler(signal._signalNumber);
if (id is! int) {
- _controller
- .addError(new SignalException("Failed to listen for $signal", id));
+ _controller.addError(
+ new SignalException("Failed to listen for $signal", id));
return;
}
_id = id;
@@ -122,35 +125,32 @@ class _SignalController {
}
}
- static _setSignalHandler(int signal) native "Process_SetSignalHandler";
+ static _setSignalHandler(int signal)
+ native "Process_SetSignalHandler";
static int _clearSignalHandler(int signal)
native "Process_ClearSignalHandler";
}
Function _getWatchSignalInternal() => _ProcessUtils._watchSignalInternal;
-@patch
-class _ProcessUtils {
- @patch
- static void _exit(int status) native "Process_Exit";
- @patch
- static void _setExitCode(int status) native "Process_SetExitCode";
- @patch
- static int _getExitCode() native "Process_GetExitCode";
- @patch
- static void _sleep(int millis) native "Process_Sleep";
- @patch
- static int _pid(Process process) native "Process_Pid";
- static bool _killPid(int pid, int signal) native "Process_KillPid";
- @patch
- static Stream<ProcessSignal> _watchSignal(ProcessSignal signal) {
+
+@patch class _ProcessUtils {
+ @patch static void _exit(int status) native "Process_Exit";
+ @patch static void _setExitCode(int status)
+ native "Process_SetExitCode";
+ @patch static int _getExitCode() native "Process_GetExitCode";
+ @patch static void _sleep(int millis) native "Process_Sleep";
+ @patch static int _pid(Process process) native "Process_Pid";
+ static bool _killPid(int pid, int signal)
+ native "Process_KillPid";
+ @patch static Stream<ProcessSignal> _watchSignal(ProcessSignal signal) {
if (signal != ProcessSignal.SIGHUP &&
signal != ProcessSignal.SIGINT &&
signal != ProcessSignal.SIGTERM &&
(Platform.isWindows ||
- (signal != ProcessSignal.SIGUSR1 &&
- signal != ProcessSignal.SIGUSR2 &&
- signal != ProcessSignal.SIGWINCH))) {
+ (signal != ProcessSignal.SIGUSR1 &&
+ signal != ProcessSignal.SIGUSR2 &&
+ signal != ProcessSignal.SIGWINCH))) {
throw new SignalException(
"Listening for signal $signal is not supported");
}
@@ -165,11 +165,13 @@ class _ProcessUtils {
}
}
+
class _ProcessStartStatus {
- int _errorCode; // Set to OS error code if process start failed.
- String _errorMessage; // Set to OS error message if process start failed.
+ int _errorCode; // Set to OS error code if process start failed.
+ String _errorMessage; // Set to OS error message if process start failed.
}
+
// The NativeFieldWrapperClass1 can not be used with a mixin, due to missing
// implicit constructor.
class _ProcessImplNativeWrapper extends NativeFieldWrapperClass1 {}
@@ -178,20 +180,18 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
_ProcessResourceInfo _resourceInfo;
static bool connectedResourceHandler = false;
- _ProcessImpl(
- String path,
- List<String> arguments,
- this._workingDirectory,
- Map<String, String> environment,
- bool includeParentEnvironment,
- bool runInShell,
- ProcessStartMode mode)
- : super() {
+ _ProcessImpl(String path,
+ List<String> arguments,
+ this._workingDirectory,
+ Map<String, String> environment,
+ bool includeParentEnvironment,
+ bool runInShell,
+ ProcessStartMode mode) : super() {
if (!connectedResourceHandler) {
- registerExtension(
- 'ext.dart.io.getProcesses', _ProcessResourceInfo.getStartedProcesses);
+ registerExtension('ext.dart.io.getProcesses',
+ _ProcessResourceInfo.getStartedProcesses);
registerExtension('ext.dart.io.getProcessById',
- _ProcessResourceInfo.getProcessInfoMapById);
+ _ProcessResourceInfo.getProcessInfoMapById);
connectedResourceHandler = true;
}
@@ -200,19 +200,19 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
path = _getShellCommand();
}
- if (path is! String) {
+ if (path is !String) {
throw new ArgumentError("Path is not a String: $path");
}
_path = path;
- if (arguments is! List) {
+ if (arguments is !List) {
throw new ArgumentError("Arguments is not a List: $arguments");
}
int len = arguments.length;
_arguments = new List<String>(len);
for (int i = 0; i < len; i++) {
var arg = arguments[i];
- if (arg is! String) {
+ if (arg is !String) {
throw new ArgumentError("Non-string argument: $arg");
}
_arguments[i] = arguments[i];
@@ -221,7 +221,7 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
}
}
- if (_workingDirectory != null && _workingDirectory is! String) {
+ if (_workingDirectory != null && _workingDirectory is !String) {
throw new ArgumentError(
"WorkingDirectory is not a String: $_workingDirectory");
}
@@ -229,13 +229,13 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
_environment = [];
// Ensure that we have a non-null environment.
environment = (environment == null) ? (const {}) : environment;
- if (environment is! Map) {
+ if (environment is !Map) {
throw new ArgumentError("Environment is not a map: $environment");
}
environment.forEach((key, value) {
- if (key is! String || value is! String) {
+ if (key is !String || value is !String) {
throw new ArgumentError(
- "Environment key or value is not a string: ($key, $value)");
+ "Environment key or value is not a string: ($key, $value)");
}
_environment.add('$key=$value');
});
@@ -250,7 +250,7 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
});
}
- if (mode is! ProcessStartMode) {
+ if (mode is !ProcessStartMode) {
throw new ArgumentError("Mode is not a ProcessStartMode: $mode");
}
_mode = mode;
@@ -280,8 +280,8 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
return '/bin/sh';
}
- static List<String> _getShellArguments(
- String executable, List<String> arguments) {
+ static List<String> _getShellArguments(String executable,
+ List<String> arguments) {
List<String> shellArguments = [];
if (Platform.isWindows) {
shellArguments.add('/c');
@@ -353,9 +353,9 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
int _intFromBytes(List<int> bytes, int offset) {
return (bytes[offset] +
- (bytes[offset + 1] << 8) +
- (bytes[offset + 2] << 16) +
- (bytes[offset + 3] << 24));
+ (bytes[offset + 1] << 8) +
+ (bytes[offset + 2] << 16) +
+ (bytes[offset + 3] << 24));
}
Future<Process> _start() {
@@ -367,26 +367,27 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
// simulating it with a timer.
Timer.run(() {
var status = new _ProcessStartStatus();
- bool success = _startNative(
- _path,
- _arguments,
- _workingDirectory,
- _environment,
- _mode.index,
- _mode == ProcessStartMode.DETACHED
- ? null
- : _stdin._sink._nativeSocket,
- _mode == ProcessStartMode.DETACHED
- ? null
- : _stdout._stream._nativeSocket,
- _mode == ProcessStartMode.DETACHED
- ? null
- : _stderr._stream._nativeSocket,
- _mode != ProcessStartMode.NORMAL ? null : _exitHandler._nativeSocket,
- status);
+ bool success =
+ _startNative(_path,
+ _arguments,
+ _workingDirectory,
+ _environment,
+ _mode.index,
+ _mode == ProcessStartMode.DETACHED
+ ? null : _stdin._sink._nativeSocket,
+ _mode == ProcessStartMode.DETACHED
+ ? null : _stdout._stream._nativeSocket,
+ _mode == ProcessStartMode.DETACHED
+ ? null : _stderr._stream._nativeSocket,
+ _mode != ProcessStartMode.NORMAL
+ ? null : _exitHandler._nativeSocket,
+ status);
if (!success) {
- completer.completeError(new ProcessException(
- _path, _arguments, status._errorMessage, status._errorCode));
+ completer.completeError(
+ new ProcessException(_path,
+ _arguments,
+ status._errorMessage,
+ status._errorCode));
return;
}
@@ -400,6 +401,7 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
final int EXIT_DATA_SIZE = 8;
List<int> exitDataBuffer = new List<int>(EXIT_DATA_SIZE);
_exitHandler.listen((data) {
+
int exitCode(List<int> ints) {
var code = _intFromBytes(ints, 0);
var negative = _intFromBytes(ints, 4);
@@ -429,23 +431,25 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
return completer.future;
}
- ProcessResult _runAndWait(Encoding stdoutEncoding, Encoding stderrEncoding) {
+ ProcessResult _runAndWait(Encoding stdoutEncoding,
+ Encoding stderrEncoding) {
var status = new _ProcessStartStatus();
_exitCode = new Completer<int>();
- bool success = _startNative(
- _path,
- _arguments,
- _workingDirectory,
- _environment,
- ProcessStartMode.NORMAL.index,
- _stdin._sink._nativeSocket,
- _stdout._stream._nativeSocket,
- _stderr._stream._nativeSocket,
- _exitHandler._nativeSocket,
- status);
+ bool success = _startNative(_path,
+ _arguments,
+ _workingDirectory,
+ _environment,
+ ProcessStartMode.NORMAL.index,
+ _stdin._sink._nativeSocket,
+ _stdout._stream._nativeSocket,
+ _stderr._stream._nativeSocket,
+ _exitHandler._nativeSocket,
+ status);
if (!success) {
- throw new ProcessException(
- _path, _arguments, status._errorMessage, status._errorCode);
+ throw new ProcessException(_path,
+ _arguments,
+ status._errorMessage,
+ status._errorCode);
}
_resourceInfo = new _ProcessResourceInfo(this);
@@ -470,20 +474,21 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
getOutput(result[3], stderrEncoding));
}
- bool _startNative(
- String path,
- List<String> arguments,
- String workingDirectory,
- List<String> environment,
- int mode,
- _NativeSocket stdin,
- _NativeSocket stdout,
- _NativeSocket stderr,
- _NativeSocket exitHandler,
- _ProcessStartStatus status) native "Process_Start";
-
- _wait(_NativeSocket stdin, _NativeSocket stdout, _NativeSocket stderr,
- _NativeSocket exitHandler) native "Process_Wait";
+ bool _startNative(String path,
+ List<String> arguments,
+ String workingDirectory,
+ List<String> environment,
+ int mode,
+ _NativeSocket stdin,
+ _NativeSocket stdout,
+ _NativeSocket stderr,
+ _NativeSocket exitHandler,
+ _ProcessStartStatus status) native "Process_Start";
+
+ _wait(_NativeSocket stdin,
+ _NativeSocket stdout,
+ _NativeSocket stderr,
+ _NativeSocket exitHandler) native "Process_Wait";
Stream<List<int>> get stdout {
return _stdout;
@@ -501,7 +506,8 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
bool kill([ProcessSignal signal = ProcessSignal.SIGTERM]) {
if (signal is! ProcessSignal) {
- throw new ArgumentError("Argument 'signal' must be a ProcessSignal");
+ throw new ArgumentError(
+ "Argument 'signal' must be a ProcessSignal");
}
assert(_started);
if (_ended) return false;
@@ -525,27 +531,26 @@ class _ProcessImpl extends _ProcessImplNativeWrapper implements Process {
Completer<int> _exitCode;
}
+
// _NonInteractiveProcess is a wrapper around an interactive process
// that buffers output so it can be delivered when the process exits.
// _NonInteractiveProcess is used to implement the Process.run
// method.
-Future<ProcessResult> _runNonInteractiveProcess(
- String path,
- List<String> arguments,
- String workingDirectory,
- Map<String, String> environment,
- bool includeParentEnvironment,
- bool runInShell,
- Encoding stdoutEncoding,
- Encoding stderrEncoding) {
+Future<ProcessResult> _runNonInteractiveProcess(String path,
+ List<String> arguments,
+ String workingDirectory,
+ Map<String, String> environment,
+ bool includeParentEnvironment,
+ bool runInShell,
+ Encoding stdoutEncoding,
+ Encoding stderrEncoding) {
// Start the underlying process.
- return Process
- .start(path, arguments,
- workingDirectory: workingDirectory,
- environment: environment,
- includeParentEnvironment: includeParentEnvironment,
- runInShell: runInShell)
- .then((Process p) {
+ return Process.start(path,
+ arguments,
+ workingDirectory: workingDirectory,
+ environment: environment,
+ includeParentEnvironment: includeParentEnvironment,
+ runInShell: runInShell).then((Process p) {
int pid = p.pid;
// Make sure the process stdin is closed.
@@ -558,11 +563,15 @@ Future<ProcessResult> _runNonInteractiveProcess(
.fold(new BytesBuilder(), (builder, data) => builder..add(data))
.then((builder) => builder.takeBytes());
} else {
- return stream.transform(encoding.decoder).fold(new StringBuffer(),
- (buf, data) {
- buf.write(data);
- return buf;
- }).then((sb) => sb.toString());
+ return stream
+ .transform(encoding.decoder)
+ .fold(
+ new StringBuffer(),
+ (buf, data) {
+ buf.write(data);
+ return buf;
+ })
+ .then((sb) => sb.toString());
}
}
@@ -576,21 +585,20 @@ Future<ProcessResult> _runNonInteractiveProcess(
}
ProcessResult _runNonInteractiveProcessSync(
- String executable,
- List<String> arguments,
- String workingDirectory,
- Map<String, String> environment,
- bool includeParentEnvironment,
- bool runInShell,
- Encoding stdoutEncoding,
- Encoding stderrEncoding) {
- var process = new _ProcessImpl(
- executable,
- arguments,
- workingDirectory,
- environment,
- includeParentEnvironment,
- runInShell,
- ProcessStartMode.NORMAL);
+ String executable,
+ List<String> arguments,
+ String workingDirectory,
+ Map<String, String> environment,
+ bool includeParentEnvironment,
+ bool runInShell,
+ Encoding stdoutEncoding,
+ Encoding stderrEncoding) {
+ var process = new _ProcessImpl(executable,
+ arguments,
+ workingDirectory,
+ environment,
+ includeParentEnvironment,
+ runInShell,
+ ProcessStartMode.NORMAL);
return process._runAndWait(stdoutEncoding, stderrEncoding);
}
« no previous file with comments | « runtime/bin/platform_patch.dart ('k') | runtime/bin/secure_socket_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698