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

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

Issue 8662038: Refactor some of the duplicated code in the tests using a socket server (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Minor fix Created 9 years, 1 month 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/EchoServerTest.dart
diff --git a/tests/standalone/src/EchoServerTest.dart b/tests/standalone/src/EchoServerTest.dart
index 4e53729815f8810919a647ca154db00cd5c9636c..09bb016e04f1e36d6ab3192b188f6539fd66c761 100644
--- a/tests/standalone/src/EchoServerTest.dart
+++ b/tests/standalone/src/EchoServerTest.dart
@@ -9,7 +9,7 @@
// VMOptions=--short_socket_write
// VMOptions=--short_socket_read --short_socket_write
-#library("EchoServerTest.dart");
+#source("TestingServer.dart");
class EchoServerTest {
@@ -21,8 +21,6 @@ class EchoServerTest {
class EchoServerGame {
static final MSGSIZE = 10;
- static final SERVERINIT = 0;
- static final SERVERSHUTDOWN = -1;
static final MESSAGES = 100;
static final FIRSTCHAR = 65;
@@ -100,7 +98,7 @@ class EchoServerGame {
writeMessage();
}
- _socket = new Socket(EchoServer.HOST, _port);
+ _socket = new Socket(TestingServer.HOST, _port);
if (_socket !== null) {
_socket.connectHandler = connectHandler;
} else {
@@ -113,11 +111,11 @@ class EchoServerGame {
_port = message;
sendData();
});
- _sendPort.send(SERVERINIT, _receivePort.toSendPort());
+ _sendPort.send(TestingServer.INIT, _receivePort.toSendPort());
}
void shutdown() {
- _sendPort.send(SERVERSHUTDOWN, _receivePort.toSendPort());
+ _sendPort.send(TestingServer.SHUTDOWN, _receivePort.toSendPort());
_receivePort.close();
}
@@ -128,95 +126,71 @@ class EchoServerGame {
int _messages;
}
-class EchoServer extends Isolate {
+class EchoServer extends TestingServer {
- static final HOST = "127.0.0.1";
static final msgSize = EchoServerGame.MSGSIZE;
+ void connectionHandler() {
+ Socket _client;
- void main() {
-
- void connectionHandler() {
- Socket _client;
-
- void messageHandler() {
+ void messageHandler() {
- List<int> buffer = new List<int>(msgSize);
- int bytesRead = 0;
+ List<int> buffer = new List<int>(msgSize);
+ int bytesRead = 0;
- void handleRead() {
- int read = _client.readList(buffer, bytesRead, msgSize - bytesRead);
- if (read > 0) {
- bytesRead += read;
- if (bytesRead < msgSize) {
- // We check every time the whole buffer to verify data integrity.
- for (int i = 0; i < bytesRead; i++) {
- Expect.equals(EchoServerGame.FIRSTCHAR + i, buffer[i]);
- }
- _client.dataHandler = handleRead;
- } else {
- // We check every time the whole buffer to verify data integrity.
- for (int i = 0; i < msgSize; i++) {
- Expect.equals(EchoServerGame.FIRSTCHAR + i, buffer[i]);
- }
+ void handleRead() {
+ int read = _client.readList(buffer, bytesRead, msgSize - bytesRead);
+ if (read > 0) {
+ bytesRead += read;
+ if (bytesRead < msgSize) {
+ // We check every time the whole buffer to verify data integrity.
+ for (int i = 0; i < bytesRead; i++) {
+ Expect.equals(EchoServerGame.FIRSTCHAR + i, buffer[i]);
+ }
+ _client.dataHandler = handleRead;
+ } else {
+ // We check every time the whole buffer to verify data integrity.
+ for (int i = 0; i < msgSize; i++) {
+ Expect.equals(EchoServerGame.FIRSTCHAR + i, buffer[i]);
+ }
- void writeMessage() {
+ void writeMessage() {
- int bytesWritten = 0;
+ int bytesWritten = 0;
- void handleWrite() {
- int written = _client.writeList(
- buffer, bytesWritten, msgSize - bytesWritten);
- bytesWritten += written;
- if (bytesWritten < msgSize) {
- _client.writeHandler = handleWrite;
- } else {
- _client.close(true);
- }
+ void handleWrite() {
+ int written = _client.writeList(
+ buffer, bytesWritten, msgSize - bytesWritten);
+ bytesWritten += written;
+ if (bytesWritten < msgSize) {
+ _client.writeHandler = handleWrite;
+ } else {
+ _client.close(true);
}
- handleWrite();
}
- writeMessage();
+ handleWrite();
}
+ writeMessage();
}
}
-
- handleRead();
}
- void closeHandler() {
- _client.close();
- }
-
- void errorHandler() {
- Expect.fail("Socket error");
- }
+ handleRead();
+ }
- _client = _server.accept();
- _client.dataHandler = messageHandler;
- _client.closeHandler = closeHandler;
- _client.errorHandler = errorHandler;
+ void closeHandler() {
+ _client.close();
}
- void errorHandlerServer() {
- Expect.fail("Server socket error");
+ void errorHandler() {
+ Expect.fail("Socket error");
}
- this.port.receive((message, SendPort replyTo) {
- if (message == EchoServerGame.SERVERINIT) {
- _server = new ServerSocket(HOST, 0, 10);
- Expect.equals(true, _server !== null);
- _server.connectionHandler = connectionHandler;
- _server.errorHandler = errorHandlerServer;
- replyTo.send(_server.port, null);
- } else if (message == EchoServerGame.SERVERSHUTDOWN) {
- _server.close();
- this.port.close();
- }
- });
+ _client = _server.accept();
+ _client.dataHandler = messageHandler;
+ _client.closeHandler = closeHandler;
+ _client.errorHandler = errorHandler;
}
-
- ServerSocket _server;
}
main() {

Powered by Google App Engine
This is Rietveld 408576698