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

Unified Diff: mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java

Issue 795593004: Update mojo sdk to rev cc531b32182099a5a034a99daff35ed5d38a61c8 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More workarounds for MSVC Created 6 years 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 | « mojo/android/javatests/src/org/chromium/mojo/HandleMock.java ('k') | mojo/android/system/core_impl.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
diff --git a/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java b/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
index 9c4718c7a4ab383d7e938ed9a388cd5cb192078b..b35e1198b4bce313fc43144b7e160e06628dcfc8 100644
--- a/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
+++ b/mojo/android/javatests/src/org/chromium/mojo/system/impl/CoreImplTest.java
@@ -11,7 +11,10 @@ import org.chromium.mojo.system.AsyncWaiter;
import org.chromium.mojo.system.AsyncWaiter.Callback;
import org.chromium.mojo.system.AsyncWaiter.Cancellable;
import org.chromium.mojo.system.Core;
+import org.chromium.mojo.system.Core.HandleSignals;
+import org.chromium.mojo.system.Core.HandleSignalsState;
import org.chromium.mojo.system.Core.WaitManyResult;
+import org.chromium.mojo.system.Core.WaitResult;
import org.chromium.mojo.system.DataPipe;
import org.chromium.mojo.system.Handle;
import org.chromium.mojo.system.InvalidHandle;
@@ -35,12 +38,14 @@ import java.util.concurrent.TimeUnit;
* Testing the core API.
*/
public class CoreImplTest extends MojoTestCase {
-
private static final long RUN_LOOP_TIMEOUT_MS = 5;
private static final ScheduledExecutorService WORKER =
Executors.newSingleThreadScheduledExecutor();
+ private static final HandleSignals ALL_SIGNALS =
+ HandleSignals.none().setPeerClosed(true).setReadable(true).setWritable(true);
+
private List<Handle> mHandlesToClose = new ArrayList<Handle>();
/**
@@ -101,8 +106,8 @@ public class CoreImplTest extends MojoTestCase {
// Try to read into a small buffer.
ByteBuffer receiveBuffer = ByteBuffer.allocateDirect(bytes.length / 2);
- MessagePipeHandle.ReadMessageResult result = out.readMessage(
- receiveBuffer, 0, MessagePipeHandle.ReadFlags.NONE);
+ MessagePipeHandle.ReadMessageResult result =
+ out.readMessage(receiveBuffer, 0, MessagePipeHandle.ReadFlags.NONE);
assertEquals(MojoResult.RESOURCE_EXHAUSTED, result.getMojoResult());
assertEquals(bytes.length, result.getMessageSize());
assertEquals(0, result.getHandlesCount());
@@ -118,7 +123,6 @@ public class CoreImplTest extends MojoTestCase {
byte[] receivedBytes = new byte[result.getMessageSize()];
receiveBuffer.get(receivedBytes);
assertTrue(Arrays.equals(bytes, receivedBytes));
-
}
private static void checkSendingData(DataPipe.ProducerHandle in, DataPipe.ConsumerHandle out) {
@@ -136,6 +140,16 @@ public class CoreImplTest extends MojoTestCase {
result = out.readData(null, DataPipe.ReadFlags.none().query(true));
assertEquals(bytes.length, result);
+ // Peek data into a buffer.
+ ByteBuffer peekBuffer = ByteBuffer.allocateDirect(bytes.length);
+ result = out.readData(peekBuffer, DataPipe.ReadFlags.none().peek(true));
+ assertEquals(bytes.length, result);
+ assertEquals(0, peekBuffer.position());
+ assertEquals(bytes.length, peekBuffer.limit());
+ byte[] peekBytes = new byte[bytes.length];
+ peekBuffer.get(peekBytes);
+ assertTrue(Arrays.equals(bytes, peekBytes));
+
// Read into a buffer.
ByteBuffer receiveBuffer = ByteBuffer.allocateDirect(bytes.length);
result = out.readData(receiveBuffer, DataPipe.ReadFlags.NONE);
@@ -177,8 +191,10 @@ public class CoreImplTest extends MojoTestCase {
Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null);
addHandlePairToClose(handles);
- List<Pair<Handle, Core.HandleSignals>> handlesToWaitOn = new ArrayList<
- Pair<Handle, Core.HandleSignals>>();
+ // Test waiting on handles of a newly created message pipe - each should be writable, but
+ // not readable.
+ List<Pair<Handle, Core.HandleSignals>> handlesToWaitOn =
+ new ArrayList<Pair<Handle, Core.HandleSignals>>();
handlesToWaitOn.add(
new Pair<Handle, Core.HandleSignals>(handles.second, Core.HandleSignals.READABLE));
handlesToWaitOn.add(
@@ -186,7 +202,12 @@ public class CoreImplTest extends MojoTestCase {
WaitManyResult result = core.waitMany(handlesToWaitOn, 0);
assertEquals(MojoResult.OK, result.getMojoResult());
assertEquals(1, result.getHandleIndex());
+ for (HandleSignalsState state : result.getSignalStates()) {
+ assertEquals(HandleSignals.WRITABLE, state.getSatisfiedSignals());
+ assertEquals(ALL_SIGNALS, state.getSatisfiableSignals());
+ }
+ // Same test, but swap the handles around.
handlesToWaitOn.clear();
handlesToWaitOn.add(
new Pair<Handle, Core.HandleSignals>(handles.first, Core.HandleSignals.WRITABLE));
@@ -195,6 +216,10 @@ public class CoreImplTest extends MojoTestCase {
result = core.waitMany(handlesToWaitOn, 0);
assertEquals(MojoResult.OK, result.getMojoResult());
assertEquals(0, result.getHandleIndex());
+ for (HandleSignalsState state : result.getSignalStates()) {
+ assertEquals(HandleSignals.WRITABLE, state.getSatisfiedSignals());
+ assertEquals(ALL_SIGNALS, state.getSatisfiableSignals());
+ }
}
/**
@@ -248,37 +273,53 @@ public class CoreImplTest extends MojoTestCase {
Core core = CoreImpl.getInstance();
Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null);
addHandlePairToClose(handles);
- // Testing wait.
- assertEquals(MojoResult.OK,
- handles.first.wait(Core.HandleSignals.none().setReadable(true).setWritable(true),
- 0));
- assertEquals(MojoResult.OK, handles.first.wait(Core.HandleSignals.WRITABLE, 0));
- assertEquals(MojoResult.DEADLINE_EXCEEDED,
- handles.first.wait(Core.HandleSignals.READABLE, 0));
+ // Test waiting on handles of a newly created message pipe.
+ WaitResult waitResult = handles.first.wait(
+ Core.HandleSignals.none().setReadable(true).setWritable(true), 0);
+ assertEquals(MojoResult.OK, waitResult.getMojoResult());
+ assertEquals(
+ HandleSignals.WRITABLE, waitResult.getHandleSignalsState().getSatisfiedSignals());
+ assertEquals(ALL_SIGNALS, waitResult.getHandleSignalsState().getSatisfiableSignals());
+
+ waitResult = handles.first.wait(Core.HandleSignals.WRITABLE, 0);
+ assertEquals(MojoResult.OK, waitResult.getMojoResult());
+ assertEquals(
+ HandleSignals.WRITABLE, waitResult.getHandleSignalsState().getSatisfiedSignals());
+ assertEquals(ALL_SIGNALS, waitResult.getHandleSignalsState().getSatisfiableSignals());
+
+ waitResult = handles.first.wait(Core.HandleSignals.READABLE, 0);
+ assertEquals(MojoResult.DEADLINE_EXCEEDED, waitResult.getMojoResult());
+ assertEquals(
+ HandleSignals.WRITABLE, waitResult.getHandleSignalsState().getSatisfiedSignals());
+ assertEquals(ALL_SIGNALS, waitResult.getHandleSignalsState().getSatisfiableSignals());
// Testing read on an empty pipe.
- MessagePipeHandle.ReadMessageResult result = handles.first.readMessage(null, 0,
- MessagePipeHandle.ReadFlags.NONE);
- assertEquals(MojoResult.SHOULD_WAIT, result.getMojoResult());
+ MessagePipeHandle.ReadMessageResult readResult =
+ handles.first.readMessage(null, 0, MessagePipeHandle.ReadFlags.NONE);
+ assertEquals(MojoResult.SHOULD_WAIT, readResult.getMojoResult());
// Closing a pipe while waiting.
WORKER.schedule(new CloseHandle(handles.first), 10, TimeUnit.MILLISECONDS);
- assertEquals(MojoResult.CANCELLED,
- handles.first.wait(Core.HandleSignals.READABLE, 1000000L));
+ waitResult = handles.first.wait(Core.HandleSignals.READABLE, 1000000L);
+ assertEquals(MojoResult.CANCELLED, waitResult.getMojoResult());
+ assertEquals(
+ HandleSignals.none(), waitResult.getHandleSignalsState().getSatisfiedSignals());
+ assertEquals(
+ HandleSignals.none(), waitResult.getHandleSignalsState().getSatisfiableSignals());
handles = core.createMessagePipe(null);
addHandlePairToClose(handles);
// Closing the other pipe while waiting.
WORKER.schedule(new CloseHandle(handles.first), 10, TimeUnit.MILLISECONDS);
- assertEquals(MojoResult.FAILED_PRECONDITION,
- handles.second.wait(Core.HandleSignals.READABLE, 1000000L));
+ waitResult = handles.second.wait(Core.HandleSignals.READABLE, 1000000L);
+ assertEquals(MojoResult.FAILED_PRECONDITION, waitResult.getMojoResult());
// Waiting on a closed pipe.
- assertEquals(MojoResult.FAILED_PRECONDITION,
- handles.second.wait(Core.HandleSignals.READABLE, 0));
- assertEquals(MojoResult.FAILED_PRECONDITION,
- handles.second.wait(Core.HandleSignals.WRITABLE, 0));
+ waitResult = handles.second.wait(Core.HandleSignals.READABLE, 0);
+ assertEquals(MojoResult.FAILED_PRECONDITION, waitResult.getMojoResult());
+ waitResult = handles.second.wait(Core.HandleSignals.WRITABLE, 0);
+ assertEquals(MojoResult.FAILED_PRECONDITION, waitResult.getMojoResult());
}
/**
@@ -312,8 +353,8 @@ public class CoreImplTest extends MojoTestCase {
handles.first.writeMessage(buffer, null, MessagePipeHandle.WriteFlags.NONE);
ByteBuffer receiveBuffer = ByteBuffer.allocateDirect(1);
- MessagePipeHandle.ReadMessageResult result = handles.second
- .readMessage(receiveBuffer, 0, MessagePipeHandle.ReadFlags.NONE);
+ MessagePipeHandle.ReadMessageResult result =
+ handles.second.readMessage(receiveBuffer, 0, MessagePipeHandle.ReadFlags.NONE);
assertEquals(MojoResult.RESOURCE_EXHAUSTED, result.getMojoResult());
assertEquals(bytes.length, result.getMessageSize());
assertEquals(0, result.getHandlesCount());
@@ -330,15 +371,13 @@ public class CoreImplTest extends MojoTestCase {
addHandlePairToClose(handles);
addHandlePairToClose(handlesToShare);
- handles.first.writeMessage(null,
- Collections.<Handle> singletonList(handlesToShare.second),
+ handles.first.writeMessage(null, Collections.<Handle>singletonList(handlesToShare.second),
MessagePipeHandle.WriteFlags.NONE);
assertFalse(handlesToShare.second.isValid());
MessagePipeHandle.ReadMessageResult readMessageResult =
handles.second.readMessage(null, 1, MessagePipeHandle.ReadFlags.NONE);
assertEquals(1, readMessageResult.getHandlesCount());
- MessagePipeHandle newHandle = readMessageResult.getHandles().get(0)
- .toMessagePipeHandle();
+ MessagePipeHandle newHandle = readMessageResult.getHandles().get(0).toMessagePipeHandle();
addHandleToClose(newHandle);
assertTrue(newHandle.isValid());
checkSendingMessage(handlesToShare.first, newHandle);
@@ -347,8 +386,8 @@ public class CoreImplTest extends MojoTestCase {
private static void createAndCloseDataPipe(DataPipe.CreateOptions options) {
Core core = CoreImpl.getInstance();
- Pair<DataPipe.ProducerHandle, DataPipe.ConsumerHandle> handles = core.createDataPipe(
- options);
+ Pair<DataPipe.ProducerHandle, DataPipe.ConsumerHandle> handles =
+ core.createDataPipe(options);
handles.first.close();
handles.second.close();
}
@@ -398,15 +437,14 @@ public class CoreImplTest extends MojoTestCase {
// Writing a random 8 bytes message.
byte[] bytes = new byte[8];
random.nextBytes(bytes);
- ByteBuffer buffer = handles.first.beginWriteData(bytes.length,
- DataPipe.WriteFlags.NONE);
+ ByteBuffer buffer = handles.first.beginWriteData(bytes.length, DataPipe.WriteFlags.NONE);
assertTrue(buffer.capacity() >= bytes.length);
buffer.put(bytes);
handles.first.endWriteData(bytes.length);
// Read into a buffer.
- ByteBuffer receiveBuffer = handles.second.beginReadData(bytes.length,
- DataPipe.ReadFlags.NONE);
+ ByteBuffer receiveBuffer =
+ handles.second.beginReadData(bytes.length, DataPipe.ReadFlags.NONE);
assertEquals(0, receiveBuffer.position());
assertEquals(bytes.length, receiveBuffer.limit());
byte[] receivedBytes = new byte[bytes.length];
@@ -446,8 +484,8 @@ public class CoreImplTest extends MojoTestCase {
assertEquals(bytes.length - nbBytesToDiscard, receiveBuffer.limit());
byte[] receivedBytes = new byte[bytes.length - nbBytesToDiscard];
receiveBuffer.get(receivedBytes);
- assertTrue(Arrays.equals(Arrays.copyOfRange(bytes, nbBytesToDiscard, bytes.length),
- receivedBytes));
+ assertTrue(Arrays.equals(
+ Arrays.copyOfRange(bytes, nbBytesToDiscard, bytes.length), receivedBytes));
}
/**
@@ -513,8 +551,8 @@ public class CoreImplTest extends MojoTestCase {
// Checking waitMany.
exception = false;
try {
- List<Pair<Handle, Core.HandleSignals>> handles = new ArrayList<
- Pair<Handle, Core.HandleSignals>>();
+ List<Pair<Handle, Core.HandleSignals>> handles =
+ new ArrayList<Pair<Handle, Core.HandleSignals>>();
handles.add(Pair.create(handle, Core.HandleSignals.WRITABLE));
core.waitMany(handles, 0);
} catch (MojoException e) {
@@ -530,7 +568,7 @@ public class CoreImplTest extends MojoTestCase {
Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null);
addHandlePairToClose(handles);
try {
- handles.first.writeMessage(null, Collections.<Handle> singletonList(handle),
+ handles.first.writeMessage(null, Collections.<Handle>singletonList(handle),
MessagePipeHandle.WriteFlags.NONE);
MessagePipeHandle.ReadMessageResult readMessageResult =
handles.second.readMessage(null, 1, MessagePipeHandle.ReadFlags.NONE);
@@ -574,7 +612,6 @@ public class CoreImplTest extends MojoTestCase {
public MojoException getException() {
return mException;
}
-
}
/**
@@ -596,8 +633,8 @@ public class CoreImplTest extends MojoTestCase {
assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult());
assertEquals(null, asyncWaiterResult.getException());
- handles.second.writeMessage(ByteBuffer.allocateDirect(1), null,
- MessagePipeHandle.WriteFlags.NONE);
+ handles.second.writeMessage(
+ ByteBuffer.allocateDirect(1), null, MessagePipeHandle.WriteFlags.NONE);
runLoopUntilIdle();
assertNull(asyncWaiterResult.getException());
assertEquals(MojoResult.OK, asyncWaiterResult.getResult());
@@ -679,8 +716,8 @@ public class CoreImplTest extends MojoTestCase {
assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult());
assertEquals(null, asyncWaiterResult.getException());
- core.getDefaultAsyncWaiter().asyncWait(handles.first, Core.HandleSignals.READABLE,
- RUN_LOOP_TIMEOUT_MS, asyncWaiterResult);
+ core.getDefaultAsyncWaiter().asyncWait(
+ handles.first, Core.HandleSignals.READABLE, RUN_LOOP_TIMEOUT_MS, asyncWaiterResult);
assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult());
assertEquals(null, asyncWaiterResult.getException());
@@ -718,8 +755,8 @@ public class CoreImplTest extends MojoTestCase {
assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult());
assertEquals(null, asyncWaiterResult.getException());
- handles.second.writeMessage(ByteBuffer.allocateDirect(1), null,
- MessagePipeHandle.WriteFlags.NONE);
+ handles.second.writeMessage(
+ ByteBuffer.allocateDirect(1), null, MessagePipeHandle.WriteFlags.NONE);
runLoopUntilIdle();
assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult());
assertEquals(null, asyncWaiterResult.getException());
« no previous file with comments | « mojo/android/javatests/src/org/chromium/mojo/HandleMock.java ('k') | mojo/android/system/core_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698