// 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 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; }