summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorAndroid (Google) Code Review <android-gerrit@google.com>2009-12-10 11:54:13 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2009-12-10 11:54:13 -0800
commitf44ecff46732f30977da91eb9614673bad8282f8 (patch)
treefe52df2d73418bb1146d05317e725e6a3596f20f /core/java
parent97ef7637c6799e72956db8e08192539f1b1942f6 (diff)
parentd432656e60dd6b3e9a1acb14001bc2d2b886789d (diff)
downloadframeworks_base-f44ecff46732f30977da91eb9614673bad8282f8.zip
frameworks_base-f44ecff46732f30977da91eb9614673bad8282f8.tar.gz
frameworks_base-f44ecff46732f30977da91eb9614673bad8282f8.tar.bz2
Merge change Id432656e into eclair-mr2
* changes: Add support for @UiThreadTest on setUp() and tearDown() in InstrumentationTestCase.
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/test/InstrumentationTestCase.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/core/java/android/test/InstrumentationTestCase.java b/core/java/android/test/InstrumentationTestCase.java
index 22d95d1..6d92ea3 100644
--- a/core/java/android/test/InstrumentationTestCase.java
+++ b/core/java/android/test/InstrumentationTestCase.java
@@ -147,6 +147,42 @@ public class InstrumentationTestCase extends TestCase {
}
}
+ @Override
+ public void runBare() throws Throwable {
+ runMethod("setUp");
+
+ try {
+ runTest();
+ } finally {
+ runMethod("tearDown");
+ }
+ }
+
+ private Throwable[] runMethod(String name) throws Throwable {
+ final Throwable[] exceptions = new Throwable[1];
+ final Method m = getClass().getMethod(name, (Class[]) null);
+
+ if (m.isAnnotationPresent(UiThreadTest.class)) {
+ getInstrumentation().runOnMainSync(new Runnable() {
+ public void run() {
+ try {
+ m.invoke(this);
+ } catch (Throwable throwable) {
+ exceptions[0] = throwable;
+ }
+ }
+ });
+ if (exceptions[0] != null) {
+ throw exceptions[0];
+ }
+ exceptions[0] = null;
+ } else {
+ m.invoke(this);
+ }
+
+ return exceptions;
+ }
+
/**
* Runs the current unit test. If the unit test is annotated with
* {@link android.test.UiThreadTest}, the test is run on the UI thread.