diff options
Diffstat (limited to 'mojo/android/javatests/src/org/chromium/mojo')
16 files changed, 98 insertions, 286 deletions
diff --git a/mojo/android/javatests/src/org/chromium/mojo/MojoTestCase.java b/mojo/android/javatests/src/org/chromium/mojo/MojoTestCase.java index c7348ca..f4d7ab7 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/MojoTestCase.java +++ b/mojo/android/javatests/src/org/chromium/mojo/MojoTestCase.java @@ -4,7 +4,6 @@ package org.chromium.mojo; -import android.content.Context; import android.test.InstrumentationTestCase; import org.chromium.base.ContextUtils; @@ -26,9 +25,9 @@ public class MojoTestCase extends InstrumentationTestCase { @Override protected void setUp() throws Exception { super.setUp(); - Context appContext = getInstrumentation().getTargetContext().getApplicationContext(); - ContextUtils.initApplicationContext(appContext); - LibraryLoader.get(LibraryProcessType.PROCESS_BROWSER).ensureInitialized(appContext); + ContextUtils.initApplicationContext( + getInstrumentation().getTargetContext().getApplicationContext()); + LibraryLoader.get(LibraryProcessType.PROCESS_BROWSER).ensureInitialized(); nativeInit(); mTestEnvironmentPointer = nativeSetupTestEnvironment(); } diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsHelperTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsHelperTest.java index a46a157..38bd348 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsHelperTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsHelperTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import junit.framework.TestCase; @@ -34,8 +34,8 @@ public class BindingsHelperTest extends TestCase { BindingsHelper.utf8StringSizeInBytes(s)); } assertEquals(1, BindingsHelper.utf8StringSizeInBytes("\0")); - String s = new StringBuilder().appendCodePoint(0x0).appendCodePoint(0x80). - appendCodePoint(0x800).appendCodePoint(0x10000).toString(); + String s = new StringBuilder().appendCodePoint(0x0).appendCodePoint(0x80) + .appendCodePoint(0x800).appendCodePoint(0x10000).toString(); assertEquals(10, BindingsHelper.utf8StringSizeInBytes(s)); assertEquals(10, s.getBytes(Charset.forName("utf8")).length); } diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsTest.java index 6886023..d280c77 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import junit.framework.TestCase; @@ -21,12 +21,15 @@ import org.chromium.mojo.bindings.test.mojom.sample.Foo; import org.chromium.mojo.bindings.test.mojom.sample.InterfaceConstants; import org.chromium.mojo.bindings.test.mojom.sample.SampleServiceConstants; import org.chromium.mojo.bindings.test.mojom.test_structs.EmptyStruct; +import org.chromium.mojo.bindings.test.mojom.test_structs.Rect; import org.chromium.mojo.system.DataPipe.ConsumerHandle; import org.chromium.mojo.system.DataPipe.ProducerHandle; import org.chromium.mojo.system.MessagePipeHandle; import java.lang.reflect.Field; import java.lang.reflect.Modifier; +import java.util.HashMap; +import java.util.Map; /** * Testing generated classes and associated features. @@ -81,6 +84,15 @@ public class BindingsTest extends TestCase { return foo; } + private static Rect createRect(int x, int y, int width, int height) { + Rect rect = new Rect(); + rect.x = x; + rect.y = y; + rect.width = width; + rect.height = height; + return rect; + } + private static <T> void checkConstantField( Field field, Class<T> expectedClass, T value) throws IllegalAccessException { assertEquals(expectedClass, field.getType()); @@ -209,4 +221,21 @@ public class BindingsTest extends TestCase { assertNotNull(emptyStruct); } + // In testing maps we want to make sure that the key used when inserting an + // item the key used when looking it up again are different objects. Java + // has default implementations of equals and hashCode that use reference + // equality and hashing, respectively, and that's not what we want for our + // mojom values. + @SmallTest + public void testHashMapStructKey() { + Map<Rect, Integer> map = new HashMap<>(); + map.put(createRect(1, 2, 3, 4), 123); + + Rect key = createRect(1, 2, 3, 4); + assertNotNull(map.get(key)); + assertEquals(123, map.get(key).intValue()); + + map.remove(key); + assertTrue(map.isEmpty()); + } } diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsVersioningTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsVersioningTest.java index f0c0f7c..eea92ab 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsVersioningTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/BindingsVersioningTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; import org.chromium.mojo.bindings.test.mojom.test_structs.MultiVersionStruct; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/CallbacksTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/CallbacksTest.java index dfb8e21..497be65 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/CallbacksTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/CallbacksTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import junit.framework.TestCase; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/ConnectorTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/ConnectorTest.java index 9c26875..15f9f1f 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/ConnectorTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/ConnectorTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; import org.chromium.mojo.bindings.BindingsTestUtils.CapturingErrorHandler; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/ExecutorFactoryTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/ExecutorFactoryTest.java index 56f4b40..cabe230 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/ExecutorFactoryTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/ExecutorFactoryTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; import org.chromium.mojo.system.impl.CoreImpl; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfaceControlMessageTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfaceControlMessageTest.java index c101675..8cdd4ab 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfaceControlMessageTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfaceControlMessageTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; import org.chromium.mojo.bindings.Callbacks.Callback1; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java index f96b1e3..d8bd3e8 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/InterfacesTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; import org.chromium.mojo.bindings.BindingsTestUtils.CapturingErrorHandler; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/MessageHeaderTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/MessageHeaderTest.java index 8af8be1..b2e6ac8 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/MessageHeaderTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/MessageHeaderTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import junit.framework.TestCase; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/ReadAndDispatchMessageTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/ReadAndDispatchMessageTest.java index f2edb01..51dbd22 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/ReadAndDispatchMessageTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/ReadAndDispatchMessageTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; import org.chromium.mojo.bindings.BindingsTestUtils.RecordingMessageReceiver; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java index 0b632a9..5affb8f 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/RouterTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.base.annotations.SuppressFBWarnings; import org.chromium.mojo.MojoTestCase; diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/SerializationTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/SerializationTest.java index a7e213c..2c17e3a 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/SerializationTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/SerializationTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import junit.framework.TestCase; @@ -17,6 +17,8 @@ import org.chromium.mojo.bindings.test.mojom.mojo.Struct5; import org.chromium.mojo.bindings.test.mojom.mojo.Struct6; import org.chromium.mojo.bindings.test.mojom.mojo.StructOfNullables; +import java.nio.ByteBuffer; + /** * Tests for the serialization logic of the generated structs, using structs defined in * mojo/public/interfaces/bindings/tests/serialization_test_structs.mojom . @@ -128,4 +130,46 @@ public class SerializationTest extends TestCase { assertNull(struct.str); struct.serialize(null); } + + /** + * Verifies that a struct can be serialized to and deserialized from a ByteBuffer. + */ + @SmallTest + public void testByteBufferSerialization() { + Struct1 input = new Struct1(); + input.i = 0x7F; + + ByteBuffer buf = input.serialize(); + + byte[] expected_raw_bytes = {16, 0, 0, 0, 0, 0, 0, 0, 0x7F, 0, 0, 0, 0, 0, 0, 0}; + ByteBuffer expected_buf = ByteBuffer.wrap(expected_raw_bytes); + assertEquals(expected_buf, buf); + + Struct1 output = Struct1.deserialize(buf); + assertEquals(0x7F, output.i); + } + + /** + * Verifies that a struct with handles cannot be serialized to a ByteBuffer. + */ + @SmallTest + public void testByteBufferSerializationWithHandles() { + StructOfNullables struct = new StructOfNullables(); + assertFalse(struct.hdl.isValid()); + assertNull(struct.struct1); + assertNull(struct.str); + + // It is okay to serialize invalid handles. + struct.serialize(); + + struct.hdl = new HandleMock(); + + try { + struct.serialize(); + fail("Serializing a struct with handles to a ByteBuffer should have thrown an " + + "exception."); + } catch (UnsupportedOperationException ex) { + // Expected. + } + } } diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTest.java index e5c4549..8424618 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.base.test.util.UrlUtils; import org.chromium.mojo.HandleMock; @@ -13,6 +13,7 @@ import org.chromium.mojo.bindings.test.mojom.mojo.ConformanceTestInterface; import org.chromium.mojo.bindings.test.mojom.mojo.IntegrationTestInterface; import org.chromium.mojo.bindings.test.mojom.mojo.IntegrationTestInterfaceTestHelper; import org.chromium.mojo.system.Handle; +import org.chromium.mojo.system.impl.CoreImpl; import java.io.File; import java.io.FileFilter; @@ -189,8 +190,10 @@ public class ValidationTest extends MojoTestCase { */ @SmallTest public void testConformance() throws FileNotFoundException { - runTest("conformance_", ConformanceTestInterface.MANAGER.buildStub(null, - ConformanceTestInterface.MANAGER.buildProxy(null, new SinkMessageReceiver()))); + runTest("conformance_", + ConformanceTestInterface.MANAGER.buildStub(CoreImpl.getInstance(), + ConformanceTestInterface.MANAGER.buildProxy( + CoreImpl.getInstance(), new SinkMessageReceiver()))); } /** diff --git a/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTestUtilTest.java b/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTestUtilTest.java index 14259ef..623abc3 100644 --- a/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTestUtilTest.java +++ b/mojo/android/javatests/src/org/chromium/mojo/bindings/ValidationTestUtilTest.java @@ -4,7 +4,7 @@ package org.chromium.mojo.bindings; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; 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 16c16f2..77a9bda 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 @@ -4,12 +4,9 @@ package org.chromium.mojo.system.impl; -import android.test.suitebuilder.annotation.SmallTest; +import android.support.test.filters.SmallTest; import org.chromium.mojo.MojoTestCase; -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; @@ -584,266 +581,6 @@ public class CoreImplTest extends MojoTestCase { } } - private static class AsyncWaiterResult implements Callback { - private int mResult = Integer.MIN_VALUE; - private MojoException mException = null; - - /** - * @see Callback#onResult(int) - */ - @Override - public void onResult(int result) { - this.mResult = result; - } - - /** - * @see Callback#onError(MojoException) - */ - @Override - public void onError(MojoException exception) { - this.mException = exception; - } - - /** - * @return the result - */ - public int getResult() { - return mResult; - } - - /** - * @return the exception - */ - public MojoException getException() { - return mException; - } - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterCorrectResult() { - Core core = CoreImpl.getInstance(); - - // Checking a correct result. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - core.getDefaultAsyncWaiter().asyncWait(handles.first, Core.HandleSignals.READABLE, - Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - handles.second.writeMessage( - ByteBuffer.allocateDirect(1), null, MessagePipeHandle.WriteFlags.NONE); - runLoopUntilIdle(); - assertNull(asyncWaiterResult.getException()); - assertEquals(MojoResult.OK, asyncWaiterResult.getResult()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterClosingPeerHandle() { - Core core = CoreImpl.getInstance(); - - // Closing the peer handle. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - core.getDefaultAsyncWaiter().asyncWait(handles.first, Core.HandleSignals.READABLE, - Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - runLoopUntilIdle(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - handles.second.close(); - runLoopUntilIdle(); - assertNull(asyncWaiterResult.getException()); - assertEquals(MojoResult.FAILED_PRECONDITION, asyncWaiterResult.getResult()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterClosingWaitingHandle() { - Core core = CoreImpl.getInstance(); - - // Closing the peer handle. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - core.getDefaultAsyncWaiter().asyncWait(handles.first, Core.HandleSignals.READABLE, - Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - runLoopUntilIdle(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - handles.first.close(); - runLoopUntilIdle(); - // TODO(qsr) Re-enable when MojoWaitMany handles it correctly. - // assertNull(asyncWaiterResult.getException()); - // assertEquals(MojoResult.CANCELLED, asyncWaiterResult.getResult()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterWaitingOnInvalidHandle() { - Core core = CoreImpl.getInstance(); - - // Closing the peer handle. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - handles.first.close(); - core.getDefaultAsyncWaiter().asyncWait(handles.first, Core.HandleSignals.READABLE, - Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - runLoopUntilIdle(); - assertNotNull(asyncWaiterResult.getException()); - assertEquals(MojoResult.INVALID_ARGUMENT, - asyncWaiterResult.getException().getMojoResult()); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterWaitingOnDefaultInvalidHandle() { - Core core = CoreImpl.getInstance(); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - core.getDefaultAsyncWaiter().asyncWait(InvalidHandle.INSTANCE, Core.HandleSignals.READABLE, - Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - runLoopUntilIdle(); - assertNotNull(asyncWaiterResult.getException()); - assertEquals(MojoResult.INVALID_ARGUMENT, asyncWaiterResult.getException().getMojoResult()); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterWaitingWithTimeout() { - Core core = CoreImpl.getInstance(); - - // Closing the peer handle. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - core.getDefaultAsyncWaiter().asyncWait( - handles.first, Core.HandleSignals.READABLE, RUN_LOOP_TIMEOUT_MS, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - runLoopUntilIdle(); - assertNull(asyncWaiterResult.getException()); - assertEquals(MojoResult.DEADLINE_EXCEEDED, asyncWaiterResult.getResult()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterCancelWaiting() { - Core core = CoreImpl.getInstance(); - - // Closing the peer handle. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - Cancellable cancellable = core.getDefaultAsyncWaiter().asyncWait(handles.first, - Core.HandleSignals.READABLE, Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - runLoopUntilIdle(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - cancellable.cancel(); - runLoopUntilIdle(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - handles.second.writeMessage( - ByteBuffer.allocateDirect(1), null, MessagePipeHandle.WriteFlags.NONE); - runLoopUntilIdle(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - } - - /** - * Testing core {@link AsyncWaiter} implementation. - */ - @SmallTest - public void testAsyncWaiterImmediateCancelOnInvalidHandle() { - Core core = CoreImpl.getInstance(); - - // Closing the peer handle. - Pair<MessagePipeHandle, MessagePipeHandle> handles = core.createMessagePipe(null); - addHandlePairToClose(handles); - - final AsyncWaiterResult asyncWaiterResult = new AsyncWaiterResult(); - handles.first.close(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - - Cancellable cancellable = core.getDefaultAsyncWaiter().asyncWait(handles.first, - Core.HandleSignals.READABLE, Core.DEADLINE_INFINITE, asyncWaiterResult); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - cancellable.cancel(); - - runLoopUntilIdle(); - assertEquals(Integer.MIN_VALUE, asyncWaiterResult.getResult()); - assertEquals(null, asyncWaiterResult.getException()); - } - /** * Testing the pass method on message pipes. */ |