OSDN Git Service

DO NOT MERGE ART: Turn off duplicate-classes checking
authorAndreas Gampe <agampe@google.com>
Wed, 20 May 2015 21:48:10 +0000 (14:48 -0700)
committerAndreas Gampe <agampe@google.com>
Sun, 7 Jun 2015 22:24:53 +0000 (15:24 -0700)
Bug: 21333911

(cherry picked from commit aafcfca5fe545365ef377fff2897b8a908f03e71)

Change-Id: I9832526a6d2996aadb459e3ec0930cbaf151478a

runtime/class_linker.cc
test/Android.run-test.mk

index 31140a8..429fa5b 100644 (file)
@@ -85,6 +85,9 @@ namespace art {
 
 static constexpr bool kSanityCheckObjects = kIsDebugBuild;
 
+// For b/21333911.
+static constexpr bool kDuplicateClassesCheck = false;
+
 static void ThrowNoClassDefFoundError(const char* fmt, ...)
     __attribute__((__format__(__printf__, 1, 2)))
     SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
@@ -840,6 +843,10 @@ const OatFile* ClassLinker::GetPrimaryOatFile() {
 // the two elements agree on whether their dex file was from an already-loaded oat-file or the
 // new oat file. Any disagreement indicates a collision.
 bool ClassLinker::HasCollisions(const OatFile* oat_file, std::string* error_msg) {
+  if (!kDuplicateClassesCheck) {
+    return false;
+  }
+
   // Dex files are registered late - once a class is actually being loaded. We have to compare
   // against the open oat files. Take the dex_lock_ that protects oat_files_ accesses.
   ReaderMutexLock mu(Thread::Current(), dex_lock_);
index fa13fe5..3ca1c06 100644 (file)
@@ -259,6 +259,11 @@ ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),
     $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
     $(PICTEST_TYPES),$(DEBUGGABLE_TYPES),131-structural-change,$(ALL_ADDRESS_SIZES))
 
+# 138-duplicate-classes-check. Turned off temporarily, b/21333911.
+ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \
+    $(COMPILER_TYPES),$(RELOCATE_TYPES),$(TRACE_TYPES),$(GC_TYPES),$(JNI_TYPES),$(IMAGE_TYPES), \
+    $(PICTEST_TYPES),$(DEBUGGABLE_TYPES),138-duplicate-classes-check,$(ALL_ADDRESS_SIZES))
+
 # All these tests check that we have sane behavior if we don't have a patchoat or dex2oat.
 # Therefore we shouldn't run them in situations where we actually don't have these since they
 # explicitly test for them. These all also assume we have an image.