| 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();
|
| + });
|
| +}
|
| +
|
| +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();
|
| +}
|
|
|