| Index: tests/standalone/src/io/ProcessRunOutput.dart
|
| diff --git a/tests/standalone/src/io/ProcessRunOutput.dart b/tests/standalone/src/io/ProcessRunOutput.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..38079ac7d455e657fe6ecdd3631bdf8620dc20e8
|
| --- /dev/null
|
| +++ b/tests/standalone/src/io/ProcessRunOutput.dart
|
| @@ -0,0 +1,65 @@
|
| +// Copyright (c) 2012, 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.
|
| +//
|
| +// Test script for testing that output is handled correctly for
|
| +// non-interactive processes started with Process.run.
|
| +
|
| +#import("dart:io");
|
| +#source("ProcessTestUtil.dart");
|
| +
|
| +checkOutput(encoding, output) {
|
| + if (encoding == 'ascii') {
|
| + Expect.equals(output, 'abc');
|
| + } else if (encoding == 'latin1') {
|
| + Expect.equals(output, 'æøå');
|
| + } else if (encoding == 'utf8') {
|
| + Expect.listEquals(output.charCodes(), [955]);
|
| + }
|
| +}
|
| +
|
| +test(scriptFile, encoding, stream) {
|
| + var enc;
|
| + if (encoding == 'ascii') {
|
| + enc = Encoding.ASCII;
|
| + } else if (encoding == 'latin1') {
|
| + enc = Encoding.ISO_8859_1;
|
| + } else if (encoding = 'utf8') {
|
| + enc = Encoding.UTF_8;
|
| + }
|
| +
|
| + var options = new ProcessOptions();
|
| + if (stream == 'stdout') {
|
| + options.stdoutEncoding = enc;
|
| + new Process.run(getDartFileName(), [scriptFile, encoding, stream],
|
| + options, (exit, out, err) {
|
| + Expect.equals(exit, 0);
|
| + Expect.equals(err, '');
|
| + checkOutput(encoding, out);
|
| + });
|
| + } else {
|
| + options.stderrEncoding = enc;
|
| + new Process.run(getDartFileName(), [scriptFile, encoding, stream],
|
| + options, (exit, out, err) {
|
| + Expect.equals(exit, 0);
|
| + Expect.equals(out, '');
|
| + checkOutput(encoding, err);
|
| + });
|
| + }
|
| +}
|
| +
|
| +main() {
|
| + var scriptFile = new File("tests/standalone/src/io/ProcessStdIOScript2.dart");
|
| + if (!scriptFile.existsSync()) {
|
| + scriptFile =
|
| + new File("../tests/standalone/src/io/ProcessStdIOScript2.dart");
|
| + }
|
| + Expect.isTrue(scriptFile.existsSync());
|
| + test(scriptFile.name, 'ascii', 'stdout');
|
| + test(scriptFile.name, 'ascii', 'stderr');
|
| + test(scriptFile.name, 'latin1', 'stdout');
|
| + test(scriptFile.name, 'latin1', 'stderr');
|
| + test(scriptFile.name, 'utf8', 'stdout');
|
| + test(scriptFile.name, 'utf8', 'stderr');
|
| +
|
| +}
|
|
|