OSDN Git Service

Fix class_linker_test to take into account default methods.
authorAlex Light <allight@google.com>
Wed, 3 Feb 2016 21:45:41 +0000 (13:45 -0800)
committerAlex Light <allight@google.com>
Wed, 3 Feb 2016 21:45:41 +0000 (13:45 -0800)
Bug: 26963208
Change-Id: Ie22ce4e7fae3b259b9a58356dbd9662fda6d49e3

runtime/class_linker_test.cc

index 40dfda9..a909cd8 100644 (file)
@@ -210,11 +210,10 @@ class ClassLinkerTest : public CommonRuntimeTest {
                                                klass->GetDescriptor(&temp2)));
     if (klass->IsInterface()) {
       EXPECT_TRUE(klass->IsAbstract());
-      if (klass->NumDirectMethods() == 1) {
-        EXPECT_TRUE(klass->GetDirectMethod(0, sizeof(void*))->IsClassInitializer());
-        EXPECT_TRUE(klass->GetDirectMethod(0, sizeof(void*))->IsDirect());
-      } else {
-        EXPECT_EQ(0U, klass->NumDirectMethods());
+      // Check that all direct methods are static (either <clinit> or a regular static method).
+      for (ArtMethod& m : klass->GetDirectMethods(sizeof(void*))) {
+        EXPECT_TRUE(m.IsStatic());
+        EXPECT_TRUE(m.IsDirect());
       }
     } else {
       if (!klass->IsSynthetic()) {