blob: 25258ddb5dc369d17c1d920c385b393a87761df3 [file] [log] [blame]
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// 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.
/// @assertion
/// bool killPid(
/// int pid, [
/// ProcessSignal signal = ProcessSignal.sigterm
/// ])
///
/// Kills the process with id pid.
/// ...
/// Returns true if the signal is successfully delivered to the process.
/// Otherwise the signal could not be sent, usually meaning that the process is
/// already dead.
///
/// @description Checks that static method [killPid] return true, if the signal
/// was successfully delivered to the process
/// @author ngl@unipro.ru
import "dart:io";
import "../../../Utils/expect.dart";
String command = "";
List<String> args = new List<String>.empty(growable: true);
void setCommand() {
if (Platform.isWindows) {
command = 'ping';
args = ['127.0.0.1 -n 6 > nul'];
} else {
command = 'sleep';
args = ['5'];
}
}
main() {
setCommand();
asyncStart();
Process.start(command, args).then((Process process) {
int pid = process.pid;
bool res = Process.killPid(pid);
if (!Platform.isWindows) {
Expect.isTrue(res);
} else {
Expect.isFalse(res);
}
asyncEnd();
});
}