Index: tests/standalone/io/signals_test_script.dart |
diff --git a/tests/standalone/io/signals_test_script.dart b/tests/standalone/io/signals_test_script.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5a2c7bc4b6fac386bcb3ecb42085b66490e8dfbb |
--- /dev/null |
+++ b/tests/standalone/io/signals_test_script.dart |
@@ -0,0 +1,31 @@ |
+// Copyright (c) 2013, 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. |
+ |
+import "dart:io"; |
+ |
+void main(args) { |
+ int usr1Count = int.parse(args[0]); |
+ int usr2Count = int.parse(args[1]); |
+ var sub1; |
+ var sub2; |
+ void check() { |
+ if (usr1Count < 0 || usr2Count < 0) exit(1); |
+ if (usr1Count == 0 && usr2Count == 0) { |
+ sub1.cancel(); |
+ sub2.cancel(); |
+ } |
+ print("ready"); |
+ } |
+ sub1 = ProcessSignal.SIGUSR1.watch().listen((signal) { |
+ if (signal != ProcessSignal.SIGUSR1) exit(1); |
+ usr1Count--; |
+ check(); |
+ }); |
+ sub2 = ProcessSignal.SIGUSR2.watch().listen((signal) { |
+ if (signal != ProcessSignal.SIGUSR2) exit(1); |
+ usr2Count--; |
+ check(); |
+ }); |
+ check(); |
+} |