mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

This auto-formats all *.dart files in the repository outside of the `engine` subdirectory and enforces that these files stay formatted with a presubmit check. **Reviewers:** Please carefully review all the commits except for the one titled "formatted". The "formatted" commit was auto-generated by running `dev/tools/format.sh -a -f`. The other commits were hand-crafted to prepare the repo for the formatting change. I recommend reviewing the commits one-by-one via the "Commits" tab and avoiding Github's "Files changed" tab as it will likely slow down your browser because of the size of this PR. --------- Co-authored-by: Kate Lovett <katelovett@google.com> Co-authored-by: LongCatIsLooong <31859944+LongCatIsLooong@users.noreply.github.com>
144 lines
4.2 KiB
Dart
144 lines
4.2 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'dart:async';
|
|
import 'dart:convert';
|
|
import 'dart:io';
|
|
|
|
import 'package:flutter_devicelab/framework/running_processes.dart';
|
|
import 'package:process/process.dart';
|
|
|
|
import 'common.dart';
|
|
|
|
void main() {
|
|
test('Parse PowerShell result', () {
|
|
const String powershellOutput = r'''
|
|
|
|
ProcessId CreationDate CommandLine
|
|
--------- ------------ -----------
|
|
6552 3/7/2019 5:00:27 PM "C:\tools\dart-sdk\bin\dart.exe" .\bin\agent.dart ci
|
|
6553 3/7/2019 10:00:27 PM "C:\tools\dart-sdk1\bin\dart.exe" .\bin\agent.dart ci
|
|
6554 3/7/2019 11:00:27 AM "C:\tools\dart-sdk2\bin\dart.exe" .\bin\agent.dart ci
|
|
|
|
|
|
''';
|
|
final List<RunningProcessInfo> results = processPowershellOutput(powershellOutput).toList();
|
|
expect(results.length, 3);
|
|
expect(
|
|
results,
|
|
equals(<RunningProcessInfo>[
|
|
RunningProcessInfo(
|
|
6552,
|
|
r'"C:\tools\dart-sdk\bin\dart.exe" .\bin\agent.dart ci',
|
|
DateTime(2019, 7, 3, 17, 0, 27),
|
|
),
|
|
RunningProcessInfo(
|
|
6553,
|
|
r'"C:\tools\dart-sdk1\bin\dart.exe" .\bin\agent.dart ci',
|
|
DateTime(2019, 7, 3, 22, 0, 27),
|
|
),
|
|
RunningProcessInfo(
|
|
6554,
|
|
r'"C:\tools\dart-sdk2\bin\dart.exe" .\bin\agent.dart ci',
|
|
DateTime(2019, 7, 3, 11, 0, 27),
|
|
),
|
|
]),
|
|
);
|
|
});
|
|
|
|
test('Parse Posix output', () {
|
|
const String psOutput = r'''
|
|
STARTED PID COMMAND
|
|
Sat Mar 9 20:12:47 2019 1 /sbin/launchd
|
|
Sat Mar 9 20:13:00 2019 49 /usr/sbin/syslogd
|
|
''';
|
|
|
|
final List<RunningProcessInfo> results = processPsOutput(psOutput, null).toList();
|
|
expect(results.length, 2);
|
|
expect(
|
|
results,
|
|
equals(<RunningProcessInfo>[
|
|
RunningProcessInfo(1, '/sbin/launchd', DateTime(2019, 3, 9, 20, 12, 47)),
|
|
RunningProcessInfo(49, '/usr/sbin/syslogd', DateTime(2019, 3, 9, 20, 13)),
|
|
]),
|
|
);
|
|
});
|
|
|
|
test('RunningProcessInfo.terminate', () {
|
|
final RunningProcessInfo process = RunningProcessInfo(123, 'test', DateTime(456));
|
|
final FakeProcessManager fakeProcessManager = FakeProcessManager();
|
|
process.terminate(processManager: fakeProcessManager);
|
|
if (Platform.isWindows) {
|
|
expect(fakeProcessManager.log, <String>[
|
|
'run([taskkill.exe, /pid, 123, /f], null, null, null, null, null, null)',
|
|
]);
|
|
} else {
|
|
expect(fakeProcessManager.log, <String>['killPid(123, SIGKILL)']);
|
|
}
|
|
});
|
|
}
|
|
|
|
class FakeProcessManager implements ProcessManager {
|
|
final List<String> log = <String>[];
|
|
|
|
@override
|
|
bool canRun(Object? a, {String? workingDirectory}) {
|
|
log.add('canRun($a, $workingDirectory)');
|
|
return true;
|
|
}
|
|
|
|
@override
|
|
bool killPid(int a, [ProcessSignal? b]) {
|
|
log.add('killPid($a, $b)');
|
|
return true;
|
|
}
|
|
|
|
@override
|
|
Future<ProcessResult> run(
|
|
List<Object> a, {
|
|
Map<String, String>? environment,
|
|
bool? includeParentEnvironment,
|
|
bool? runInShell,
|
|
Encoding? stderrEncoding,
|
|
Encoding? stdoutEncoding,
|
|
String? workingDirectory,
|
|
}) async {
|
|
log.add(
|
|
'run($a, $environment, $includeParentEnvironment, $runInShell, $stderrEncoding, $stdoutEncoding, $workingDirectory)',
|
|
);
|
|
return ProcessResult(1, 0, 'stdout', 'stderr');
|
|
}
|
|
|
|
@override
|
|
ProcessResult runSync(
|
|
List<Object> a, {
|
|
Map<String, String>? environment,
|
|
bool? includeParentEnvironment,
|
|
bool? runInShell,
|
|
Encoding? stderrEncoding,
|
|
Encoding? stdoutEncoding,
|
|
String? workingDirectory,
|
|
}) {
|
|
log.add(
|
|
'runSync($a, $environment, $includeParentEnvironment, $runInShell, $stderrEncoding, $stdoutEncoding, $workingDirectory)',
|
|
);
|
|
return ProcessResult(1, 0, 'stdout', 'stderr');
|
|
}
|
|
|
|
@override
|
|
Future<Process> start(
|
|
List<Object> a, {
|
|
Map<String, String>? environment,
|
|
bool? includeParentEnvironment,
|
|
ProcessStartMode? mode,
|
|
bool? runInShell,
|
|
String? workingDirectory,
|
|
}) {
|
|
log.add(
|
|
'start($a, $environment, $includeParentEnvironment, $mode, $runInShell, $workingDirectory)',
|
|
);
|
|
return Completer<Process>().future;
|
|
}
|
|
}
|