From dd86cb7caf224de0df9c5fff7439677972424fec Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Thu, 14 Feb 2013 16:02:05 -0800 Subject: Update scrubClass() to match CoreTestRunner. AndroidTestCase.scrubClass() is quite aggressive, and would end up clearing out final fields like these: private static final byte[] TEST_DATA = new byte[1]; This change updates the logic to match InstrumentationCoreTestRunner in the cleanup() method. Change-Id: Iba455ea35b2628473ce0ccc1431ab47c1caad45c --- core/java/android/test/AndroidTestCase.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'core/java/android/test/AndroidTestCase.java') diff --git a/core/java/android/test/AndroidTestCase.java b/core/java/android/test/AndroidTestCase.java index 0c8cbe639615..0635559ab605 100644 --- a/core/java/android/test/AndroidTestCase.java +++ b/core/java/android/test/AndroidTestCase.java @@ -20,9 +20,11 @@ import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.net.Uri; + import junit.framework.TestCase; import java.lang.reflect.Field; +import java.lang.reflect.Modifier; /** * Extend this if you need to access Resources or other things that depend on Activity Context. @@ -152,11 +154,11 @@ public class AndroidTestCase extends TestCase { * @throws IllegalAccessException */ protected void scrubClass(final Class testCaseClass) - throws IllegalAccessException { + throws IllegalAccessException { final Field[] fields = getClass().getDeclaredFields(); for (Field field : fields) { - final Class fieldClass = field.getDeclaringClass(); - if (testCaseClass.isAssignableFrom(fieldClass) && !field.getType().isPrimitive()) { + if (!field.getType().isPrimitive() && + !Modifier.isStatic(field.getModifiers())) { try { field.setAccessible(true); field.set(this, null); @@ -170,6 +172,4 @@ public class AndroidTestCase extends TestCase { } } } - - } -- cgit v1.2.3