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

Unified Diff: tests/standalone/io/stream_pipe_test.dart

Issue 12316036: Merge IO v2 branch to bleeding edge (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased to r18818 Created 7 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 | « tests/standalone/io/socket_stream_close_test.dart ('k') | tests/standalone/io/string_decoder_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/stream_pipe_test.dart
diff --git a/tests/standalone/io/stream_pipe_test.dart b/tests/standalone/io/stream_pipe_test.dart
index 8a1b91052bc6b2baea3133e1c622f192ab953ca4..f663e81d9035aeafe1525c9711e4ae5846a57324 100644
--- a/tests/standalone/io/stream_pipe_test.dart
+++ b/tests/standalone/io/stream_pipe_test.dart
@@ -10,7 +10,6 @@ library ServerTest;
import "dart:io";
import "dart:isolate";
-part "testing_server.dart";
// Helper method to be able to run the test from the runtime
// directory, or the top directory.
@@ -56,112 +55,6 @@ bool compareFileContent(String fileName1,
}
-// This test does:
-// 1. Opens a socket to the testing server.
-// 2. Pipes the content of a file to that sockets input stream.
-// 3. Creates a temp file.
-// 4. Pipes the socket output stream to the temp file.
-// 5. Expects the original file and the temp file to be equal.
-class PipeServerGame {
- int count = 0;
-
- PipeServerGame.start()
- : _receivePort = new ReceivePort(),
- _sendPort = null,
- _messages = 0 {
- _sendPort = spawnFunction(startPipeServer);
- initialize();
- }
-
- void runTest() {
-
- void connectHandler() {
- String srcFileName =
- getDataFilename("tests/standalone/io/readline_test1.dat");
-
- OutputStream socketOutput = _socket.outputStream;
- InputStream fileInput = new File(srcFileName).openInputStream();
-
- fileInput.onClosed = () {
- InputStream socketInput = _socket.inputStream;
- var tempDir = new Directory('').createTempSync();
- var dstFileName = tempDir.path.concat("/readline_test1.dat");
- var dstFile = new File(dstFileName);
- dstFile.createSync();
- var fileOutput = dstFile.openOutputStream();
-
- socketInput.onClosed = () {
- // Check that the resulting file is equal to the initial
- // file.
- fileOutput.onClosed = () {
- bool result = compareFileContent(srcFileName, dstFileName);
- new File(dstFileName).deleteSync();
- tempDir.deleteSync();
- Expect.isTrue(result);
-
- _socket.close();
-
- // Run this twice.
- if (count++ < 2) {
- runTest();
- } else {
- shutdown();
- }
- };
- };
-
- socketInput.pipe(fileOutput);
- };
-
- fileInput.pipe(socketOutput);
- }
-
- // Connect to the server.
- _socket = new Socket(TestingServer.HOST, _port);
- if (_socket != null) {
- _socket.onConnect = connectHandler;
- } else {
- Expect.fail("socket creation failed");
- }
- }
-
- void initialize() {
- _receivePort.receive((var message, SendPort replyTo) {
- _port = message;
- runTest();
- });
- _sendPort.send(TestingServer.INIT, _receivePort.toSendPort());
- }
-
- void shutdown() {
- _sendPort.send(TestingServer.SHUTDOWN, _receivePort.toSendPort());
- _receivePort.close();
- }
-
- int _port;
- ReceivePort _receivePort;
- SendPort _sendPort;
- Socket _socket;
- int _messages;
-}
-
-
-void startPipeServer() {
- var server = new PipeServer();
- port.receive(server.dispatch);
-}
-
-
-// The testing server will simply pipe each connecting sockets input
-// stream to its output stream.
-class PipeServer extends TestingServer {
- void onConnection(Socket connection) {
- connection.onError = (Exception e) { Expect.fail("Socket error $e"); };
- connection.inputStream.pipe(connection.outputStream);
- }
-}
-
-
// Test piping from one file to another and closing both streams
// after wards.
testFileToFilePipe1() {
@@ -172,22 +65,19 @@ testFileToFilePipe1() {
String srcFileName =
getDataFilename("tests/standalone/io/readline_test1.dat");
- var srcStream = new File(srcFileName).openInputStream();
+ var srcStream = new File(srcFileName).openRead();
var tempDir = new Directory('').createTempSync();
String dstFileName = tempDir.path.concat("/readline_test1.dat");
new File(dstFileName).createSync();
- var dstStream = new File(dstFileName).openOutputStream();
-
- dstStream.onClosed = () {
+ var output = new File(dstFileName).openWrite();
+ srcStream.pipe(output).then((_) {
bool result = compareFileContent(srcFileName, dstFileName);
new File(dstFileName).deleteSync();
tempDir.deleteSync();
Expect.isTrue(result);
donePort.toSendPort().send(null);
- };
-
- srcStream.pipe(dstStream);
+ });
}
@@ -202,18 +92,17 @@ testFileToFilePipe2() {
String srcFileName =
getDataFilename("tests/standalone/io/readline_test1.dat");
var srcFile = new File(srcFileName);
- var srcStream = srcFile.openInputStream();
+ var srcStream = srcFile.openRead();
var tempDir = new Directory('').createTempSync();
var dstFileName = tempDir.path.concat("/readline_test1.dat");
var dstFile = new File(dstFileName);
dstFile.createSync();
- var dstStream = dstFile.openOutputStream();
-
- srcStream.onClosed = () {
- dstStream.write([32]);
- dstStream.close();
- dstStream.onClosed = () {
+ var output = dstFile.openWrite();
+ output.addStream(srcStream).then((_) {
+ output.add([32]);
+ output.close();
+ output.done.then((_) {
var src = srcFile.openSync();
var dst = dstFile.openSync();
var srcLength = src.lengthSync();
@@ -231,10 +120,8 @@ testFileToFilePipe2() {
dstFile.deleteSync();
tempDir.deleteSync();
donePort.toSendPort().send(null);
- };
- };
-
- srcStream.pipe(dstStream, close: false);
+ });
+ });
}
@@ -248,42 +135,38 @@ testFileToFilePipe3() {
String srcFileName =
getDataFilename("tests/standalone/io/readline_test1.dat");
var srcFile = new File(srcFileName);
- var srcStream = srcFile.openInputStream();
+ var srcStream = srcFile.openRead();
var tempDir = new Directory('').createTempSync();
var dstFileName = tempDir.path.concat("/readline_test1.dat");
var dstFile = new File(dstFileName);
dstFile.createSync();
- var dstStream = dstFile.openOutputStream();
-
- srcStream.onClosed = () {
- var srcStream2 = srcFile.openInputStream();
-
- dstStream.onClosed = () {
- var src = srcFile.openSync();
- var dst = dstFile.openSync();
- var srcLength = src.lengthSync();
- var dstLength = dst.lengthSync();
- Expect.equals(srcLength * 2, dstLength);
- Expect.isTrue(compareFileContent(srcFileName,
- dstFileName,
- count: srcLength));
- Expect.isTrue(compareFileContent(srcFileName,
- dstFileName,
- file2Offset: srcLength,
- count: srcLength));
- src.closeSync();
- dst.closeSync();
- dstFile.deleteSync();
- tempDir.deleteSync();
- donePort.toSendPort().send(null);
- };
-
- // Pipe another copy of the source file.
- srcStream2.pipe(dstStream);
- };
-
- srcStream.pipe(dstStream, close: false);
+ var output = dstFile.openWrite();
+ output.addStream(srcStream).then((_) {
+ var srcStream2 = srcFile.openRead();
+ output.addStream(srcStream2).then((_) {
+ output.close();
+ output.done.then((_) {
+ var src = srcFile.openSync();
+ var dst = dstFile.openSync();
+ var srcLength = src.lengthSync();
+ var dstLength = dst.lengthSync();
+ Expect.equals(srcLength * 2, dstLength);
+ Expect.isTrue(compareFileContent(srcFileName,
+ dstFileName,
+ count: srcLength));
+ Expect.isTrue(compareFileContent(srcFileName,
+ dstFileName,
+ file2Offset: srcLength,
+ count: srcLength));
+ src.closeSync();
+ dst.closeSync();
+ dstFile.deleteSync();
+ tempDir.deleteSync();
+ donePort.toSendPort().send(null);
+ });
+ });
+ });
}
@@ -291,5 +174,4 @@ main() {
testFileToFilePipe1();
testFileToFilePipe2();
testFileToFilePipe3();
- PipeServerGame echoServerGame = new PipeServerGame.start();
}
« no previous file with comments | « tests/standalone/io/socket_stream_close_test.dart ('k') | tests/standalone/io/string_decoder_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698