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

Unified Diff: tests/standalone/src/EchoServerStreamTest.dart

Issue 8318009: Update the streams interfaces (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comments from ager@ Created 9 years, 2 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
Index: tests/standalone/src/EchoServerStreamTest.dart
diff --git a/tests/standalone/src/EchoServerStreamTest.dart b/tests/standalone/src/EchoServerStreamTest.dart
index 7bddbc177f020b204b6bf7def0031e9302779d38..5151be88f304e2f5ec6b051f00225034bff7f978 100644
--- a/tests/standalone/src/EchoServerStreamTest.dart
+++ b/tests/standalone/src/EchoServerStreamTest.dart
@@ -54,29 +54,40 @@ class EchoServerGame {
SocketOutputStream stream = _socket.outputStream;
void dataSent() {
- // Reset buffer
- for (int i = 0; i < MSGSIZE; i++) {
- _buffer[i] = 1;
- }
- SocketInputStream stream = _socket.inputStream;
+ InputStream inputStream = _socket.inputStream;
+ int offset = 0;
+ List<int> data;
void dataReceived() {
- for (int i = 0; i < MSGSIZE; i++) {
- Expect.equals(FIRSTCHAR + i, _buffer[i]);
- }
- _messages++;
- _socket.close();
- if (_messages < MESSAGES) {
- sendData();
+ // Test both read and readInto.
+ int bytesRead = 0;
+ if (_messages % 2 == 0) {
+ bytesRead = inputStream.readInto(data, offset, MSGSIZE - offset);
+ for (int i = 0; i < offset + bytesRead; i++) {
+ Expect.equals(FIRSTCHAR + i, data[i]);
+ }
} else {
- shutdown();
+ data = inputStream.read();
+ bytesRead = data.length;
+ for (int i = 0; i < data.length; i++) {
+ Expect.equals(FIRSTCHAR + i + offset, data[i]);
+ }
}
- }
- bool read = stream.read(_buffer, 0, MSGSIZE, dataReceived);
- if (read) {
- dataReceived();
+ offset += bytesRead;
+ if (offset == MSGSIZE) {
+ _messages++;
+ _socket.close();
+ if (_messages < MESSAGES) {
+ sendData();
+ } else {
+ shutdown();
+ }
+ }
}
+
+ if (_messages % 2 == 0) data = new List<int>(MSGSIZE);
+ inputStream.dataHandler = dataReceived;
}
_socket.setCloseHandler(closeHandler);
@@ -125,25 +136,21 @@ class EchoServer extends Isolate {
void connectionHandler() {
Socket _client;
-
- void messageHandler() {
-
- List<int> buffer = new List<int>(MSGSIZE);
-
- void dataReceived() {
-
- SocketOutputStream outputStream = _client.outputStream;
-
- for (int i = 0; i < MSGSIZE; i++) {
+ InputStream inputStream;
+ List<int> buffer = new List<int>(MSGSIZE);
+ int offset = 0;
+
+ void dataReceived() {
+ SocketOutputStream outputStream = _client.outputStream;
+ int bytesRead = inputStream.readInto(buffer, offset, MSGSIZE - offset);
+ if (bytesRead > 0) {
+ offset += bytesRead;
+ for (int i = 0; i < offset; i++) {
Expect.equals(EchoServerGame.FIRSTCHAR + i, buffer[i]);
}
- outputStream.write(buffer, 0, MSGSIZE, null);
- }
-
- SocketInputStream inputStream = _client.inputStream;
- bool read = inputStream.read(buffer, 0, MSGSIZE, dataReceived);
- if (read) {
- dataReceived();
+ if (offset == MSGSIZE) {
+ outputStream.write(buffer, 0, buffer.length, null);
+ }
}
}
@@ -157,7 +164,8 @@ class EchoServer extends Isolate {
}
_client = _server.accept();
- _client.setDataHandler(messageHandler);
+ inputStream = _client.inputStream;
+ inputStream.dataHandler = dataReceived;
_client.setCloseHandler(closeHandler);
_client.setErrorHandler(errorHandler);
}
« no previous file with comments | « tests/standalone/src/EchoServerStreamReadUntilTest.dart ('k') | tests/standalone/src/FileInputStreamTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698