| // Copyright (c) 2020, 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. |
| |
| // @dart = 2.9 |
| |
| import 'dart:async'; |
| import 'dart:convert'; |
| import 'dart:io'; |
| |
| import 'package:expect/expect.dart'; |
| |
| Future<void> main() async { |
| final process = await Process.start( |
| Platform.resolvedExecutable, |
| [ |
| Platform.script.resolve('regress_42092_script.dart').toString(), |
| ], |
| ); |
| StreamSubscription sub; |
| int count = 0; |
| sub = process.stdout.transform(Utf8Decoder()).listen((event) { |
| print(event); |
| if (event.contains('child: Got a SIGINT')) { |
| ++count; |
| if (count == 3) { |
| sub.cancel(); |
| } |
| } |
| process.kill(ProcessSignal.sigint); |
| }); |
| |
| await process.exitCode; |
| } |