Chromium Code Reviews| Index: tests/standalone/io/process_detached_test.dart |
| diff --git a/tests/standalone/io/process_detached_test.dart b/tests/standalone/io/process_detached_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..483b9ca24dfd9dbe6a1dedbe8c5a332ae794ae3e |
| --- /dev/null |
| +++ b/tests/standalone/io/process_detached_test.dart |
| @@ -0,0 +1,52 @@ |
| +// Copyright (c) 2015, 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. |
| +// |
| +// Process test program to test detached processes. |
| + |
| +import 'dart:async'; |
| +import 'dart:io'; |
| + |
| +import "package:async_helper/async_helper.dart"; |
| +import "package:expect/expect.dart"; |
| + |
| +import "process_test_util.dart"; |
| + |
| +void test() { |
| + asyncStart(); |
| + var script = |
| + Platform.script.resolve('process_detached_script.dart').toFilePath(); |
| + var future = Process.start(Platform.executable, [script], detach: true); |
| + future.then((process) { |
| + print(process.pid); |
| + Expect.isNotNull(process.pid); |
| + Expect.isTrue(process.pid is int); |
| + Expect.isNull(process.exitCode); |
| + Expect.isNull(process.stderr); |
| + Expect.isNull(process.stdin); |
| + Expect.isNull(process.stdout); |
| + Expect.isTrue(process.kill()); |
| + }).whenComplete(() { |
| + asyncEnd(); |
| + }); |
|
kustermann
2015/01/22 09:33:02
Regarding this test: Assuming we would actually no
Søren Gjesse
2015/01/22 11:47:25
Sounds like a good idea. I will think of something
|
| +} |
| + |
| +void testFailure() { |
| + asyncStart(); |
| + Directory.systemTemp.createTemp('dart_detached_process').then((temp) { |
| + var future = Process.start(temp.path, ['a', 'b'], detach: true); |
| + future.then((process) { |
| + Expect.fail('Starting process from invalid executable succeeded'); |
| + }, onError: (e) { |
| + Expect.isTrue(e is ProcessException); |
| + }).whenComplete(() { |
| + temp.deleteSync(); |
| + asyncEnd(); |
| + }); |
| + }); |
| +} |
| + |
| +main() { |
| + test(); |
| + testFailure(); |
| +} |