am 87bf1fd2: Merge "Don\'t load abstract classes."

* commit '87bf1fd2dc91da265938b47cb2cabed07e2faf31':
  Don't load abstract classes.
diff --git a/androidtestlib/src/com/android/test/runner/TestLoader.java b/androidtestlib/src/com/android/test/runner/TestLoader.java
index d5ad737..97c1083 100644
--- a/androidtestlib/src/com/android/test/runner/TestLoader.java
+++ b/androidtestlib/src/com/android/test/runner/TestLoader.java
@@ -23,6 +23,7 @@
 
 import java.io.PrintStream;
 import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -126,6 +127,11 @@
      * @return <code>true</code> if loadedClass is a test
      */
     private boolean isTestClass(Class<?> loadedClass) {
+        if (Modifier.isAbstract(loadedClass.getModifiers())) {
+            Log.v(LOG_TAG, String.format("Skipping abstract class %s: not a test",
+                    loadedClass.getName()));
+            return false;
+        }
         // TODO: try to find upstream junit calls to replace these checks
         if (junit.framework.Test.class.isAssignableFrom(loadedClass)) {
             return true;
diff --git a/androidtestlib/tests/src/com/android/test/runner/TestLoaderTest.java b/androidtestlib/tests/src/com/android/test/runner/TestLoaderTest.java
index 5ffff5c..34cadc1 100644
--- a/androidtestlib/tests/src/com/android/test/runner/TestLoaderTest.java
+++ b/androidtestlib/tests/src/com/android/test/runner/TestLoaderTest.java
@@ -34,6 +34,9 @@
     public static class JUnit3Test extends TestCase {
     }
 
+    public static abstract class AbstractTest extends TestCase {
+    }
+
     public static class JUnit4Test {
         @Test
         public void thisIsATest() {
@@ -93,4 +96,11 @@
         Assert.assertEquals(0, mLoader.getLoadFailures().size());
         Assert.assertTrue(mLoader.getLoadedClasses().contains(clazz));
     }
+
+    @Test
+    public void testLoadTests_abstract() {
+        Assert.assertNull(mLoader.loadIfTest(AbstractTest.class.getName()));
+        Assert.assertEquals(0, mLoader.getLoadedClasses().size());
+        Assert.assertEquals(0, mLoader.getLoadFailures().size());
+    }
 }