Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3111)

Unified Diff: pkg/scheduled_test/test/scheduled_process_test.dart

Issue 164773003: Change ScheduledProcess's output streams over to be ScheduledStreams. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/scheduled_test/pubspec.yaml ('k') | pkg/scheduled_test/test/scheduled_stream/stream_matcher_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/scheduled_test/test/scheduled_process_test.dart
diff --git a/pkg/scheduled_test/test/scheduled_process_test.dart b/pkg/scheduled_test/test/scheduled_process_test.dart
index 8ff153342eee65f435d96b5875d2df6e86b273fc..f7493d0ef55d9ea304c183965889f05457cc840d 100644
--- a/pkg/scheduled_test/test/scheduled_process_test.dart
+++ b/pkg/scheduled_test/test/scheduled_process_test.dart
@@ -9,6 +9,7 @@ import 'dart:io';
import 'package:path/path.dart' as path;
import 'package:scheduled_test/scheduled_process.dart';
+import 'package:scheduled_test/scheduled_stream.dart';
import 'package:scheduled_test/scheduled_test.dart';
import 'metatest.dart';
@@ -128,16 +129,19 @@ void main(_, message) {
});
var process = startDartProcess('');
- expect(process.nextLine(), completion(equals('hello')));
- expect(process.nextLine(), completion(equals('world')));
+ process.stdout.expect('hello');
+ process.stdout.expect('world');
process.shouldExit(0);
});
test('test 2', () {
expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
expect(errors.length, anyOf(1, 2));
- expect(errors[0].error, isStateError);
- expect(errors[0].error.message, equals("No elements"));
+ expect(errors[0].error, new isInstanceOf<TestFailure>());
+ expect(errors[0].error.message, equals(
+ "Expected: 'hello'\n"
+ " Emitted: \n"
+ " Which: unexpected end of stream"));
// Whether or not this error appears depends on how quickly the "no
// elements" error is handled.
@@ -161,171 +165,29 @@ void main(_, message) {
});
});
- expectTestsPass("nextLine returns the next line of stdout from the process",
- () {
+ expectTestsPass("stdout exposes the standard output from the process", () {
test('test', () {
var process = startDartProcess(r'print("hello\n\nworld"); print("hi");');
- expect(process.nextLine(), completion(equals('hello')));
- expect(process.nextLine(), completion(equals('')));
- expect(process.nextLine(), completion(equals('world')));
- expect(process.nextLine(), completion(equals('hi')));
+ process.stdout.expect('hello');
+ process.stdout.expect('');
+ process.stdout.expect('world');
+ process.stdout.expect('hi');
+ process.stdout.expect(isDone);
process.shouldExit(0);
});
});
- expectTestsPass("nextLine throws an error if there's no more stdout", () {
- var errors;
- test('test 1', () {
- currentSchedule.onException.schedule(() {
- errors = currentSchedule.errors;
- });
-
- var process = startDartProcess('print("hello");');
- expect(process.nextLine(), completion(equals('hello')));
- expect(process.nextLine(), completion(equals('world')));
- process.shouldExit(0);
- });
-
- test('test 2', () {
- expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
- expect(errors.length, anyOf(1, 2));
- expect(errors[0].error, isStateError);
- expect(errors[0].error.message, equals("No elements"));
-
- // Whether or not this error appears depends on how quickly the "no
- // elements" error is handled.
- if (errors.length == 2) {
- expect(errors[1].error.toString(), matches(r"^Process "
- r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with "
- r"exit code 0\."));
- }
- });
- }, passing: ['test 2']);
-
- expectTestsPass("nextErrLine returns the next line of stderr from the "
- "process", () {
+ expectTestsPass("stderr exposes the stderr from the process", () {
test('test', () {
var process = startDartProcess(r'''
stderr.write("hello\n\nworld\n");
stderr.write("hi");
''');
- expect(process.nextErrLine(), completion(equals('hello')));
- expect(process.nextErrLine(), completion(equals('')));
- expect(process.nextErrLine(), completion(equals('world')));
- expect(process.nextErrLine(), completion(equals('hi')));
- process.shouldExit(0);
- });
- });
-
- expectTestsPass("nextErrLine throws an error if there's no more stderr", () {
- var errors;
- test('test 1', () {
- currentSchedule.onException.schedule(() {
- errors = currentSchedule.errors;
- });
-
- var process = startDartProcess(r'stderr.write("hello\n");');
- expect(process.nextErrLine(), completion(equals('hello')));
- expect(process.nextErrLine(), completion(equals('world')));
- process.shouldExit(0);
- });
-
- test('test 2', () {
- expect(errors, everyElement(new isInstanceOf<ScheduleError>()));
- expect(errors.length, anyOf(1, 2));
- expect(errors[0].error, isStateError);
- expect(errors[0].error.message, equals("No elements"));
-
- // Whether or not this error appears depends on how quickly the "no
- // elements" error is handled.
- if (errors.length == 2) {
- expect(errors[1].error.toString(), matches(r"^Process "
- r"'[^']+[\\/]dart(\.exe)? [^']+' ended earlier than scheduled with "
- r"exit code 0\."));
- }
- });
- }, passing: ['test 2']);
-
- expectTestsPass("remainingStdout returns all the stdout if it's not consumed "
- "any other way", () {
- test('test', () {
- var process = startDartProcess(r'print("hello\n\nworld"); print("hi");');
- process.shouldExit(0);
- expect(process.remainingStdout(),
- completion(equals("hello\n\nworld\nhi")));
- });
- });
-
- expectTestsPass("remainingStdout returns the empty string if there's no "
- "stdout", () {
- test('test', () {
- var process = startDartProcess(r'');
- process.shouldExit(0);
- expect(process.remainingStdout(), completion(isEmpty));
- });
- });
-
- expectTestsPass("remainingStdout returns the remaining stdout after the "
- "lines consumed by nextLine", () {
- test('test', () {
- var process = startDartProcess(r'print("hello\n\nworld"); print("hi");');
- expect(process.nextLine(), completion(equals("hello")));
- expect(process.nextLine(), completion(equals("")));
- process.shouldExit(0);
- expect(process.remainingStdout(), completion(equals("world\nhi")));
- });
- });
-
- expectTestsPass("remainingStdout can't be called before the process is "
- "scheduled to end", () {
- test('test', () {
- var process = startDartProcess(r'');
- expect(process.remainingStdout, throwsA(isStateError));
- process.shouldExit(0);
- });
- });
-
- expectTestsPass("remainingStderr returns all the stderr if it's not consumed "
- "any other way", () {
- test('test', () {
- var process = startDartProcess(r'''
- stderr.write("hello\n\nworld\n");
- stderr.write("hi\n");
- ''');
- process.shouldExit(0);
- expect(process.remainingStderr(),
- completion(equals("hello\n\nworld\nhi")));
- });
- });
-
- expectTestsPass("remainingStderr returns the empty string if there's no "
- "stderr", () {
- test('test', () {
- var process = startDartProcess(r'');
- process.shouldExit(0);
- expect(process.remainingStderr(), completion(isEmpty));
- });
- });
-
- expectTestsPass("remainingStderr returns the remaining stderr after the "
- "lines consumed by nextLine", () {
- test('test', () {
- var process = startDartProcess(r'''
- stderr.write("hello\n\nworld\n");
- stderr.write("hi\n");
- ''');
- expect(process.nextErrLine(), completion(equals("hello")));
- expect(process.nextErrLine(), completion(equals("")));
- process.shouldExit(0);
- expect(process.remainingStderr(), completion(equals("world\nhi")));
- });
- });
-
- expectTestsPass("remainingStderr can't be called before the process is "
- "scheduled to end", () {
- test('test', () {
- var process = startDartProcess(r'');
- expect(process.remainingStderr, throwsA(isStateError));
+ process.stderr.expect('hello');
+ process.stderr.expect('');
+ process.stderr.expect('world');
+ process.stderr.expect('hi');
+ process.stderr.expect(isDone);
process.shouldExit(0);
});
});
@@ -337,9 +199,9 @@ void main(_, message) {
stdinLines.listen((line) => print("> $line"));
''');
process.writeLine("hello");
- expect(process.nextLine(), completion(equals("> hello")));
+ process.stdout.expect("> hello");
process.writeLine("world");
- expect(process.nextLine(), completion(equals("> world")));
+ process.stdout.expect("> world");
process.kill();
});
});
@@ -352,7 +214,7 @@ void main(_, message) {
''');
process.closeStdin();
process.shouldExit(0);
- expect(process.nextLine(), completion(equals('stdin closed')));
+ process.stdout.expect('stdin closed');
});
});
}
« no previous file with comments | « pkg/scheduled_test/pubspec.yaml ('k') | pkg/scheduled_test/test/scheduled_stream/stream_matcher_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698