diff options
| author | Android (Google) Code Review <android-gerrit@google.com> | 2009-12-10 11:54:13 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-12-10 11:54:13 -0800 |
| commit | f44ecff46732f30977da91eb9614673bad8282f8 (patch) | |
| tree | fe52df2d73418bb1146d05317e725e6a3596f20f /core/java | |
| parent | 97ef7637c6799e72956db8e08192539f1b1942f6 (diff) | |
| parent | d432656e60dd6b3e9a1acb14001bc2d2b886789d (diff) | |
| download | frameworks_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.java | 36 |
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. |
