diff options
Diffstat (limited to 'tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java')
-rw-r--r-- | tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java b/tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java deleted file mode 100644 index f2025c6..0000000 --- a/tests/AndroidTests/src/com/android/unit_tests/os/HandlerThreadTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.unit_tests.os; - -import junit.framework.TestCase; -import android.os.Handler; -import android.os.HandlerThread; -import android.os.Message; -import android.os.Process; -import android.test.suitebuilder.annotation.MediumTest; -import android.test.suitebuilder.annotation.SmallTest; - -public class HandlerThreadTest extends TestCase { - private static final int TEST_WHAT = 1; - - private boolean mGotMessage = false; - private int mGotMessageWhat = -1; - private volatile boolean mDidSetup = false; - private volatile int mLooperTid = -1; - - @MediumTest - public void testHandlerThread() throws Exception { - HandlerThread th1 = new HandlerThread("HandlerThreadTest") { - protected void onLooperPrepared() { - synchronized (HandlerThreadTest.this) { - mDidSetup = true; - mLooperTid = Process.myTid(); - HandlerThreadTest.this.notify(); - } - } - }; - - assertFalse(th1.isAlive()); - assertNull(th1.getLooper()); - - th1.start(); - - assertTrue(th1.isAlive()); - assertNotNull(th1.getLooper()); - - // The call to getLooper() internally blocks until the looper is - // available, but will call onLooperPrepared() after that. So we - // need to block here to wait for our onLooperPrepared() to complete - // and fill in the values we expect. - synchronized (this) { - while (!mDidSetup) { - try { - wait(); - } catch (InterruptedException e) { - } - } - } - - // Make sure that the process was set. - assertNotSame(-1, mLooperTid); - // Make sure that the onLooperPrepared() was called on a different thread. - assertNotSame(Process.myTid(), mLooperTid); - - final Handler h1 = new Handler(th1.getLooper()) { - public void handleMessage(Message msg) { - assertEquals(TEST_WHAT, msg.what); - // Ensure that we are running on the same thread in which the looper was setup on. - assertEquals(mLooperTid, Process.myTid()); - - mGotMessageWhat = msg.what; - mGotMessage = true; - synchronized(this) { - notifyAll(); - } - } - }; - - Message msg = h1.obtainMessage(TEST_WHAT); - - synchronized (h1) { - // wait until we have the lock before sending the message. - h1.sendMessage(msg); - try { - // wait for the message to be handled - h1.wait(); - } catch (InterruptedException e) { - } - } - - assertTrue(mGotMessage); - assertEquals(TEST_WHAT, mGotMessageWhat); - } -} |