| Index: tests/standalone/io/signals_test.dart
|
| diff --git a/tests/standalone/io/signals_test.dart b/tests/standalone/io/signals_test.dart
|
| index 910c2c40a8261fa2e2492b1fcdce37a1011bea31..1c386cd6e76113622a7b9097df927b8b8d395b99 100644
|
| --- a/tests/standalone/io/signals_test.dart
|
| +++ b/tests/standalone/io/signals_test.dart
|
| @@ -11,96 +11,92 @@ import "dart:convert";
|
| import "package:expect/expect.dart";
|
| import "package:async_helper/async_helper.dart";
|
|
|
| -void testSignals(int usr1Expect,
|
| - int usr2Expect,
|
| - [int usr1Send,
|
| - int usr2Send,
|
| - bool shouldFail = false]) {
|
| +void testSignals(int usr1Expect, int usr2Expect,
|
| + [int usr1Send, int usr2Send, bool shouldFail = false]) {
|
| if (usr1Send == null) usr1Send = usr1Expect;
|
| if (usr2Send == null) usr2Send = usr2Expect;
|
| asyncStart();
|
| - Process.start(Platform.executable,
|
| - [Platform.script.resolve('signals_test_script.dart').toFilePath(),
|
| - usr1Expect.toString(),
|
| - usr2Expect.toString()])
|
| - .then((process) {
|
| - process.stdin.close();
|
| - process.stderr.drain();
|
| - int v = 0;
|
| - process.stdout.listen((out) {
|
| - // Send as many signals as 'ready\n' received on stdout
|
| - int count = out.where((c) => c == '\n'.codeUnitAt(0)).length;
|
| - for (int i = 0; i < count; i++) {
|
| - if (v < usr1Send) {
|
| - process.kill(ProcessSignal.SIGUSR1);
|
| - } else if (v < usr1Send + usr2Send) {
|
| - process.kill(ProcessSignal.SIGUSR2);
|
| - }
|
| - v++;
|
| + Process.start(Platform.executable, [
|
| + Platform.script.resolve('signals_test_script.dart').toFilePath(),
|
| + usr1Expect.toString(),
|
| + usr2Expect.toString()
|
| + ]).then((process) {
|
| + process.stdin.close();
|
| + process.stderr.drain();
|
| + int v = 0;
|
| + process.stdout.listen((out) {
|
| + // Send as many signals as 'ready\n' received on stdout
|
| + int count = out.where((c) => c == '\n'.codeUnitAt(0)).length;
|
| + for (int i = 0; i < count; i++) {
|
| + if (v < usr1Send) {
|
| + process.kill(ProcessSignal.SIGUSR1);
|
| + } else if (v < usr1Send + usr2Send) {
|
| + process.kill(ProcessSignal.SIGUSR2);
|
| }
|
| - });
|
| - process.exitCode.then((exitCode) {
|
| - Expect.equals(shouldFail, exitCode != 0);
|
| - asyncEnd();
|
| - });
|
| + v++;
|
| + }
|
| + });
|
| + process.exitCode.then((exitCode) {
|
| + Expect.equals(shouldFail, exitCode != 0);
|
| + asyncEnd();
|
| });
|
| + });
|
| }
|
|
|
| void testSignal(ProcessSignal signal) {
|
| asyncStart();
|
| - Process.start(Platform.executable,
|
| - [Platform.script.resolve('signal_test_script.dart').toFilePath(),
|
| - signal.toString()])
|
| - .then((process) {
|
| - process.stdin.close();
|
| - process.stderr.drain();
|
| + Process.start(Platform.executable, [
|
| + Platform.script.resolve('signal_test_script.dart').toFilePath(),
|
| + signal.toString()
|
| + ]).then((process) {
|
| + process.stdin.close();
|
| + process.stderr.drain();
|
|
|
| - var output = "";
|
| - process.stdout.transform(UTF8.decoder)
|
| - .listen((str) {
|
| - output += str;
|
| - if (output == 'ready\n') {
|
| - process.kill(signal);
|
| - }
|
| - }, onDone: () {
|
| - Expect.equals('ready\n$signal\n', output);
|
| - });
|
| - process.exitCode.then((exitCode) {
|
| - Expect.equals(0, exitCode);
|
| - asyncEnd();
|
| - });
|
| + var output = "";
|
| + process.stdout.transform(UTF8.decoder).listen((str) {
|
| + output += str;
|
| + if (output == 'ready\n') {
|
| + process.kill(signal);
|
| + }
|
| + }, onDone: () {
|
| + Expect.equals('ready\n$signal\n', output);
|
| + });
|
| + process.exitCode.then((exitCode) {
|
| + Expect.equals(0, exitCode);
|
| + asyncEnd();
|
| });
|
| + });
|
| }
|
|
|
| void testMultipleSignals(List<ProcessSignal> signals) {
|
| for (var signal in signals) {
|
| asyncStart();
|
| - Process.start(Platform.executable,
|
| - [Platform.script.resolve('signal_test_script.dart').toFilePath()]
|
| - ..addAll(signals.map((s) => s.toString())))
|
| - .then((process) {
|
| - process.stdin.close();
|
| - process.stderr.drain();
|
| + Process
|
| + .start(
|
| + Platform.executable,
|
| + [Platform.script.resolve('signal_test_script.dart').toFilePath()]
|
| + ..addAll(signals.map((s) => s.toString())))
|
| + .then((process) {
|
| + process.stdin.close();
|
| + process.stderr.drain();
|
|
|
| - var output = "";
|
| - process.stdout.transform(UTF8.decoder)
|
| - .listen((str) {
|
| - output += str;
|
| - if (output == 'ready\n') {
|
| - process.kill(signal);
|
| - }
|
| - }, onDone: () {
|
| - Expect.equals('ready\n$signal\n', output);
|
| - });
|
| - process.exitCode.then((exitCode) {
|
| - Expect.equals(0, exitCode);
|
| - asyncEnd();
|
| - });
|
| + var output = "";
|
| + process.stdout.transform(UTF8.decoder).listen((str) {
|
| + output += str;
|
| + if (output == 'ready\n') {
|
| + process.kill(signal);
|
| + }
|
| + }, onDone: () {
|
| + Expect.equals('ready\n$signal\n', output);
|
| });
|
| + process.exitCode.then((exitCode) {
|
| + Expect.equals(0, exitCode);
|
| + asyncEnd();
|
| + });
|
| + });
|
| }
|
| }
|
|
|
| -
|
| void testListenCancel() {
|
| for (int i = 0; i < 10; i++) {
|
| ProcessSignal.SIGINT.watch().listen(null).cancel();
|
| @@ -128,10 +124,11 @@ void main() {
|
| testSignal(ProcessSignal.SIGWINCH);
|
|
|
| testMultipleSignals([
|
| - ProcessSignal.SIGHUP,
|
| - ProcessSignal.SIGINT,
|
| - ProcessSignal.SIGTERM,
|
| - ProcessSignal.SIGUSR1,
|
| - ProcessSignal.SIGUSR2,
|
| - ProcessSignal.SIGWINCH]);
|
| + ProcessSignal.SIGHUP,
|
| + ProcessSignal.SIGINT,
|
| + ProcessSignal.SIGTERM,
|
| + ProcessSignal.SIGUSR1,
|
| + ProcessSignal.SIGUSR2,
|
| + ProcessSignal.SIGWINCH
|
| + ]);
|
| }
|
|
|