MessageQueueTest: test removeMessages
Bug: 305311707
Test: atest MessageQueueTest
Change-Id: I3cf7eee14f8b768476ee11981398f4984f220a81
diff --git a/tests/tests/os/src/android/os/cts/MessageQueueTest.java b/tests/tests/os/src/android/os/cts/MessageQueueTest.java
index 45488bf..27448b7 100644
--- a/tests/tests/os/src/android/os/cts/MessageQueueTest.java
+++ b/tests/tests/os/src/android/os/cts/MessageQueueTest.java
@@ -238,6 +238,39 @@
tester.doTest(1000, 50);
}
+ /**
+ * Use MessageQueue, remove messages.
+ */
+ @Test
+ public void testRemoveMessages() throws Exception {
+
+ OrderTestHelper tester = new OrderTestHelper() {
+ @Override
+ public void init() {
+ super.init();
+ long now = SystemClock.uptimeMillis() + 200;
+ mLastMessage = 4;
+
+ /* Queue up some messages, then remove from the front, the middle and the back. */
+ Object object = new Object();
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(5, object), now + 5);
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(2), now + 2);
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(3), now + 3);
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(4), now + 4);
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(0), now + 0);
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(1), now + 1);
+ mHandler.removeMessages(3, null);
+ mHandler.removeMessages(2, null);
+ mHandler.removeCallbacksAndMessages(object);
+ /* Re-add these messages as OrderTestHelper will be looking for them */
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(2), now + 2);
+ mHandler.sendMessageAtTime(mHandler.obtainMessage(3), now + 3);
+ }
+ };
+ tester.doTest(1000, 50);
+ }
+
+
@Test
@IgnoreUnderRavenwood(blockedBy = android.os.ParcelFileDescriptor.class)
public void testRegisterFileDescriptorCallbackThrowsWhenFdIsNull() {