Chromium Code Reviews| Index: tests/standalone/io/stdin_sync_test.dart |
| diff --git a/tests/standalone/io/stdin_sync_test.dart b/tests/standalone/io/stdin_sync_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..33d8bafb5de88f753426c2a91c957940df710ef5 |
| --- /dev/null |
| +++ b/tests/standalone/io/stdin_sync_test.dart |
| @@ -0,0 +1,41 @@ |
| +// 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"; |
| +import "dart:json"; |
| + |
| +void test(String line, List<String> expected) { |
| + var script = new Path(Platform.script).directoryPath; |
| + script = script.append("stdin_sync_script.dart"); |
| + Process.start(Platform.executable, |
| + [script.toNativePath()]..addAll( |
| + expected.map(stringify))).then((process) { |
| + process.stdin.write(line); |
| + process.stdin.close(); |
| + process.stderr |
| + .transform(new StringDecoder()) |
| + .transform(new LineTransformer()) |
| + .fold(new StringBuffer(), (b, d) => b..write(d)) |
| + .then((data) { |
| + if (data.toString() != '') throw "Bad output: '$data'"; |
| + }); |
| + process.stdout |
| + .transform(new StringDecoder()) |
| + .transform(new LineTransformer()) |
| + .fold(new StringBuffer(), (b, d) => b..write(d)) |
| + .then((data) { |
| +// if (data.toString() != 'true') throw "Bad output: '$data'"; |
| + }); |
| + }); |
| +} |
| + |
| +void main() { |
| + test("hej\x01\x00\x0d\x0a\x0a4\x0a", ['hej\x01\x00', '', '4']); |
| + |
| + test("hej\xFF\x00", ['hej\xFF\x00']); |
|
Bill Hesse
2013/07/02 13:08:27
This should fail on Windows, since you are writing
Anders Johnsen
2013/07/02 13:17:15
Done.
|
| + |
| + test("hej\rhej\nhej\r", ['hej\rhej', 'hej\r']); |
| + |
|
Bill Hesse
2013/07/02 13:08:27
"hej\r\r\nhej\r\rhej\n"
Anders Johnsen
2013/07/02 13:17:15
Done.
|
| + test("hej", ['hej']); |
| +} |