| Index: mojo/dart/test/handle_watcher_test.dart
|
| diff --git a/mojo/dart/test/handle_watcher_test.dart b/mojo/dart/test/handle_watcher_test.dart
|
| deleted file mode 100644
|
| index 9ae2b6ccac5dc633dd030a831b8f726a9cb2e178..0000000000000000000000000000000000000000
|
| --- a/mojo/dart/test/handle_watcher_test.dart
|
| +++ /dev/null
|
| @@ -1,142 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. 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:async';
|
| -import 'dart:isolate';
|
| -import 'dart:typed_data';
|
| -
|
| -import 'package:_testing/expect.dart';
|
| -import 'package:mojo/core.dart';
|
| -
|
| -void simpleTest() {
|
| - var pipe = new MojoMessagePipe();
|
| - Expect.isNotNull(pipe);
|
| -
|
| - var endpoint = pipe.endpoints[0];
|
| - Expect.isTrue(endpoint.handle.isValid);
|
| -
|
| - var eventStream = new MojoEventStream(endpoint.handle);
|
| - var completer = new Completer();
|
| - int numEvents = 0;
|
| -
|
| - eventStream.listen((_) {
|
| - numEvents++;
|
| - eventStream.close();
|
| - }, onDone: () {
|
| - completer.complete(numEvents);
|
| - });
|
| - eventStream.enableWriteEvents();
|
| -
|
| - completer.future.then((int numEvents) {
|
| - Expect.equals(1, numEvents);
|
| - });
|
| -}
|
| -
|
| -Future simpleAsyncAwaitTest() async {
|
| - var pipe = new MojoMessagePipe();
|
| - Expect.isNotNull(pipe);
|
| -
|
| - var endpoint = pipe.endpoints[0];
|
| - Expect.isTrue(endpoint.handle.isValid);
|
| -
|
| - var eventStream =
|
| - new MojoEventStream(endpoint.handle, MojoHandleSignals.READWRITE);
|
| -
|
| - int numEvents = 0;
|
| - await for (List<int> event in eventStream) {
|
| - numEvents++;
|
| - eventStream.close();
|
| - }
|
| - Expect.equals(1, numEvents);
|
| -}
|
| -
|
| -ByteData byteDataOfString(String s) {
|
| - return new ByteData.view((new Uint8List.fromList(s.codeUnits)).buffer);
|
| -}
|
| -
|
| -String stringOfByteData(ByteData bytes) {
|
| - return new String.fromCharCodes(bytes.buffer.asUint8List().toList());
|
| -}
|
| -
|
| -void expectStringFromEndpoint(
|
| - String expected, MojoMessagePipeEndpoint endpoint) {
|
| - // Query how many bytes are available.
|
| - var result = endpoint.query();
|
| - Expect.isNotNull(result);
|
| - int size = result.bytesRead;
|
| - Expect.isTrue(size > 0);
|
| -
|
| - // Read the data.
|
| - ByteData bytes = new ByteData(size);
|
| - result = endpoint.read(bytes);
|
| - Expect.isNotNull(result);
|
| - Expect.equals(size, result.bytesRead);
|
| -
|
| - // Convert to a string and check.
|
| - String msg = stringOfByteData(bytes);
|
| - Expect.equals(expected, msg);
|
| -}
|
| -
|
| -Future pingPongIsolate(MojoMessagePipeEndpoint endpoint) async {
|
| - int pings = 0;
|
| - int pongs = 0;
|
| - var eventStream = new MojoEventStream(endpoint.handle);
|
| - await for (List<int> event in eventStream) {
|
| - var mojoSignals = new MojoHandleSignals(event[1]);
|
| - if (mojoSignals.isReadWrite) {
|
| - // We are either sending or receiving.
|
| - throw new Exception("Unexpected event");
|
| - } else if (mojoSignals.isReadable) {
|
| - expectStringFromEndpoint("Ping", endpoint);
|
| - pings++;
|
| - eventStream.enableWriteEvents();
|
| - } else if (mojoSignals.isWritable) {
|
| - endpoint.write(byteDataOfString("Pong"));
|
| - pongs++;
|
| - eventStream.enableReadEvents();
|
| - }
|
| - }
|
| - eventStream.close();
|
| - Expect.equals(10, pings);
|
| - Expect.equals(10, pongs);
|
| -}
|
| -
|
| -Future pingPongTest() async {
|
| - var pipe = new MojoMessagePipe();
|
| - var isolate = await Isolate.spawn(pingPongIsolate, pipe.endpoints[0]);
|
| - var endpoint = pipe.endpoints[1];
|
| - var eventStream =
|
| - new MojoEventStream(endpoint.handle, MojoHandleSignals.READWRITE);
|
| -
|
| - int pings = 0;
|
| - int pongs = 0;
|
| - await for (List<int> event in eventStream) {
|
| - var mojoSignals = new MojoHandleSignals(event[1]);
|
| - if (mojoSignals.isReadWrite) {
|
| - // We are either sending or receiving.
|
| - throw new Exception("Unexpected event");
|
| - } else if (mojoSignals.isReadable) {
|
| - expectStringFromEndpoint("Pong", endpoint);
|
| - pongs++;
|
| - if (pongs == 10) {
|
| - eventStream.close();
|
| - }
|
| - eventStream.enableWriteEvents(); // Now it is our turn to send.
|
| - } else if (mojoSignals.isWritable) {
|
| - if (pings < 10) {
|
| - endpoint.write(byteDataOfString("Ping"));
|
| - pings++;
|
| - }
|
| - eventStream.enableReadEvents(); // Don't send while waiting for reply.
|
| - }
|
| - }
|
| - Expect.equals(10, pings);
|
| - Expect.equals(10, pongs);
|
| -}
|
| -
|
| -main() async {
|
| - simpleTest();
|
| - await simpleAsyncAwaitTest();
|
| - await pingPongTest();
|
| -}
|
|
|