diff options
| -rw-r--r-- | build/Android.common_test.mk | 4 | ||||
| -rw-r--r-- | build/Android.gtest.mk | 8 | ||||
| -rw-r--r-- | build/Android.oat.mk | 52 | ||||
| -rw-r--r-- | build/codegen.go | 10 | ||||
| -rw-r--r-- | runtime/mirror/class-inl.h | 34 | ||||
| -rw-r--r-- | runtime/mirror/class.h | 1 | ||||
| -rw-r--r-- | runtime/mirror/dex_cache_test.cc | 28 | ||||
| -rw-r--r-- | runtime/stack.cc | 8 | ||||
| -rw-r--r-- | test/Android.run-test.mk | 25 | ||||
| -rw-r--r-- | test/Packages/Package1.java | 20 | ||||
| -rw-r--r-- | test/Packages/Package2.java | 20 | ||||
| -rwxr-xr-x | test/run-test | 15 | ||||
| -rw-r--r-- | tools/art | 2 | ||||
| -rwxr-xr-x | tools/run-jdwp-tests.sh | 2 | ||||
| -rwxr-xr-x | tools/run-libcore-tests.sh | 2 |
15 files changed, 155 insertions, 76 deletions
diff --git a/build/Android.common_test.mk b/build/Android.common_test.mk index 93e310e0eb..6b7dc0932e 100644 --- a/build/Android.common_test.mk +++ b/build/Android.common_test.mk @@ -60,8 +60,8 @@ ART_TEST_OPTIMIZING ?= true # Do you want to test the optimizing compiler with graph coloring register allocation? ART_TEST_OPTIMIZING_GRAPH_COLOR ?= $(ART_TEST_FULL) -# Do we want to test a PIC-compiled core image? -ART_TEST_PIC_IMAGE ?= $(ART_TEST_FULL) +# Do we want to test a non-PIC-compiled core image? +ART_TEST_NPIC_IMAGE ?= $(ART_TEST_FULL) # Do we want to test PIC-compiled tests ("apps")? ART_TEST_PIC_TEST ?= $(ART_TEST_FULL) diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk index 0340e10ec7..8a6d52dc82 100644 --- a/build/Android.gtest.mk +++ b/build/Android.gtest.mk @@ -37,6 +37,7 @@ GTEST_DEX_DIRECTORIES := \ MyClassNatives \ Nested \ NonStaticLeafMethods \ + Packages \ ProtoCompare \ ProtoCompare2 \ ProfileTestMultiDex \ @@ -69,7 +70,7 @@ ART_GTEST_dex2oat_environment_tests_DEX_DEPS := Main MainStripped MultiDex Multi ART_GTEST_class_linker_test_DEX_DEPS := Interfaces MultiDex MyClass Nested Statics StaticsFromCode ART_GTEST_compiler_driver_test_DEX_DEPS := AbstractMethod StaticLeafMethods ProfileTestMultiDex -ART_GTEST_dex_cache_test_DEX_DEPS := Main +ART_GTEST_dex_cache_test_DEX_DEPS := Main Packages ART_GTEST_dex_file_test_DEX_DEPS := GetMethodSignature Main Nested ART_GTEST_dex2oat_test_DEX_DEPS := $(ART_GTEST_dex2oat_environment_tests_DEX_DEPS) Statics ART_GTEST_exception_test_DEX_DEPS := ExceptionHandle @@ -422,7 +423,7 @@ LOCAL_CPP_EXTENSION := cc LOCAL_SRC_FILES := runtime/common_runtime_test.cc compiler/common_compiler_test.cc LOCAL_C_INCLUDES := $(ART_C_INCLUDES) art/runtime art/cmdline art/compiler LOCAL_SHARED_LIBRARIES := libartd libartd-compiler libdl -LOCAL_STATIC_LIBRARIES += libgtest +LOCAL_WHOLE_STATIC_LIBRARIES += libgtest LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk LOCAL_ADDITIONAL_DEPENDENCIES += art/build/Android.gtest.mk $(eval LOCAL_CLANG := $(ART_TARGET_CLANG)) @@ -439,7 +440,7 @@ LOCAL_ASFLAGS := $(ART_HOST_ASFLAGS) LOCAL_SRC_FILES := runtime/common_runtime_test.cc compiler/common_compiler_test.cc LOCAL_C_INCLUDES := $(ART_C_INCLUDES) art/runtime art/cmdline art/compiler LOCAL_SHARED_LIBRARIES := libartd libartd-compiler -LOCAL_STATIC_LIBRARIES := libgtest_host +LOCAL_WHOLE_STATIC_LIBRARIES := libgtest LOCAL_LDLIBS += -ldl -lpthread LOCAL_MULTILIB := both LOCAL_CLANG := $(ART_HOST_CLANG) @@ -634,7 +635,6 @@ define define-art-gtest LOCAL_SRC_FILES := $$(art_gtest_filename) LOCAL_C_INCLUDES += $$(ART_C_INCLUDES) art/runtime art/cmdline $$(art_gtest_extra_c_includes) LOCAL_SHARED_LIBRARIES += libartd $$(art_gtest_extra_shared_libraries) libart-gtest libartd-disassembler - LOCAL_STATIC_LIBRARIES += libgtest LOCAL_WHOLE_STATIC_LIBRARIES += libsigchain LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_build.mk diff --git a/build/Android.oat.mk b/build/Android.oat.mk index 884f698cd9..c4887e61ff 100644 --- a/build/Android.oat.mk +++ b/build/Android.oat.mk @@ -37,7 +37,7 @@ else endif # Use dex2oat debug version for better error reporting -# $(1): compiler - default, optimizing, jit, interpreter or interpreter-access-checks. +# $(1): compiler - optimizing, interpreter or interpreter-access-checks. # $(2): pic/no-pic # $(3): 2ND_ or undefined, 2ND_ for 32-bit host builds. # $(4): wrapper, e.g., valgrind. @@ -53,13 +53,9 @@ define create-core-oat-host-rules core_pic_infix := core_dex2oat_dependency := $(DEX2OAT_DEPENDENCY) - ifeq ($(1),default) - core_compile_options += --compiler-backend=Quick - endif ifeq ($(1),optimizing) core_compile_options += --compiler-backend=Optimizing core_dex2oat_dependency := $(DEX2OAT) - core_infix := -optimizing endif ifeq ($(1),interpreter) core_compile_options += --compiler-filter=interpret-only @@ -69,24 +65,16 @@ define create-core-oat-host-rules core_compile_options += --compiler-filter=verify-at-runtime --runtime-arg -Xverify:softfail core_infix := -interp-ac endif - ifeq ($(1),jit) - core_compile_options += --compiler-filter=verify-at-runtime - core_infix := -jit - endif - ifeq ($(1),default) - # Default has no infix, no compile options. - endif - ifneq ($(filter-out default interpreter interp-ac jit optimizing,$(1)),) + ifneq ($(filter-out interpreter interp-ac optimizing,$(1)),) #Technically this test is not precise, but hopefully good enough. - $$(error found $(1) expected default, interpreter, interpreter-access-checks, jit or optimizing) + $$(error found $(1) expected interpreter, interpreter-access-checks, or optimizing) endif ifeq ($(2),pic) core_compile_options += --compile-pic - core_pic_infix := -pic endif ifeq ($(2),no-pic) - # No change for non-pic + core_pic_infix := -npic endif ifneq ($(filter-out pic no-pic,$(2)),) # Technically this test is not precise, but hopefully good enough. @@ -148,7 +136,7 @@ $$(core_oat_name): $$(core_image_name) core_pic_infix := endef # create-core-oat-host-rules -# $(1): compiler - default, optimizing, jit, interpreter or interpreter-access-checks. +# $(1): compiler - optimizing, interpreter or interpreter-access-checks. # $(2): wrapper. # $(3): dex2oat suffix. # $(4): multi-image. @@ -162,24 +150,18 @@ define create-core-oat-host-rule-combination endif endef -$(eval $(call create-core-oat-host-rule-combination,default,,,false)) $(eval $(call create-core-oat-host-rule-combination,optimizing,,,false)) $(eval $(call create-core-oat-host-rule-combination,interpreter,,,false)) $(eval $(call create-core-oat-host-rule-combination,interp-ac,,,false)) -$(eval $(call create-core-oat-host-rule-combination,jit,,,false)) -$(eval $(call create-core-oat-host-rule-combination,default,,,true)) $(eval $(call create-core-oat-host-rule-combination,optimizing,,,true)) $(eval $(call create-core-oat-host-rule-combination,interpreter,,,true)) $(eval $(call create-core-oat-host-rule-combination,interp-ac,,,true)) -$(eval $(call create-core-oat-host-rule-combination,jit,,,true)) valgrindHOST_CORE_IMG_OUTS := valgrindHOST_CORE_OAT_OUTS := -$(eval $(call create-core-oat-host-rule-combination,default,valgrind,32,false)) $(eval $(call create-core-oat-host-rule-combination,optimizing,valgrind,32,false)) $(eval $(call create-core-oat-host-rule-combination,interpreter,valgrind,32,false)) $(eval $(call create-core-oat-host-rule-combination,interp-ac,valgrind,32,false)) -$(eval $(call create-core-oat-host-rule-combination,jit,valgrind,32,false)) valgrind-test-art-host-dex2oat-host: $(valgrindHOST_CORE_IMG_OUTS) @@ -193,15 +175,11 @@ define create-core-oat-target-rules core_pic_infix := core_dex2oat_dependency := $(DEX2OAT_DEPENDENCY) - ifeq ($(1),default) - core_compile_options += --compiler-backend=Quick - endif ifeq ($(1),optimizing) core_compile_options += --compiler-backend=Optimizing # With the optimizing compiler, we want to rerun dex2oat whenever there is # a dex2oat change to catch regressions early. core_dex2oat_dependency := $(DEX2OAT) - core_infix := -optimizing endif ifeq ($(1),interpreter) core_compile_options += --compiler-filter=interpret-only @@ -211,24 +189,16 @@ define create-core-oat-target-rules core_compile_options += --compiler-filter=verify-at-runtime --runtime-arg -Xverify:softfail core_infix := -interp-ac endif - ifeq ($(1),jit) - core_compile_options += --compiler-filter=verify-at-runtime - core_infix := -jit - endif - ifeq ($(1),default) - # Default has no infix, no compile options. - endif - ifneq ($(filter-out default interpreter interp-ac jit optimizing,$(1)),) + ifneq ($(filter-out interpreter interp-ac optimizing,$(1)),) # Technically this test is not precise, but hopefully good enough. - $$(error found $(1) expected default, interpreter, interpreter-access-checks, jit or optimizing) + $$(error found $(1) expected interpreter, interpreter-access-checks, or optimizing) endif ifeq ($(2),pic) core_compile_options += --compile-pic - core_pic_infix := -pic endif ifeq ($(2),no-pic) - # No change for non-pic + core_pic_infix := -npic endif ifneq ($(filter-out pic no-pic,$(2)),) #Technically this test is not precise, but hopefully good enough. @@ -283,7 +253,7 @@ $$(core_oat_name): $$(core_image_name) core_pic_infix := endef # create-core-oat-target-rules -# $(1): compiler - default, optimizing, jit, interpreter or interpreter-access-checks. +# $(1): compiler - optimizing, interpreter or interpreter-access-checks. # $(2): wrapper. # $(3): dex2oat suffix. define create-core-oat-target-rule-combination @@ -296,19 +266,15 @@ define create-core-oat-target-rule-combination endif endef -$(eval $(call create-core-oat-target-rule-combination,default,,)) $(eval $(call create-core-oat-target-rule-combination,optimizing,,)) $(eval $(call create-core-oat-target-rule-combination,interpreter,,)) $(eval $(call create-core-oat-target-rule-combination,interp-ac,,)) -$(eval $(call create-core-oat-target-rule-combination,jit,,)) valgrindTARGET_CORE_IMG_OUTS := valgrindTARGET_CORE_OAT_OUTS := -$(eval $(call create-core-oat-target-rule-combination,default,valgrind,32)) $(eval $(call create-core-oat-target-rule-combination,optimizing,valgrind,32)) $(eval $(call create-core-oat-target-rule-combination,interpreter,valgrind,32)) $(eval $(call create-core-oat-target-rule-combination,interp-ac,valgrind,32)) -$(eval $(call create-core-oat-target-rule-combination,jit,valgrind,32)) valgrind-test-art-host-dex2oat-target: $(valgrindTARGET_CORE_IMG_OUTS) diff --git a/build/codegen.go b/build/codegen.go index eb2c37d651..fde9420039 100644 --- a/build/codegen.go +++ b/build/codegen.go @@ -112,7 +112,15 @@ type codegenCustomizer struct { func defaultDeviceCodegenArches(ctx android.CustomizePropertiesContext) []string { arches := make(map[string]bool) for _, a := range ctx.DeviceConfig().Arches() { - arches[a.ArchType.String()] = true + s := a.ArchType.String() + arches[s] = true + if s == "arm64" { + arches["arm"] = true + } else if s == "mips64" { + arches["mips"] = true + } else if s == "x86_64" { + arches["x86"] = true + } } ret := make([]string, 0, len(arches)) for a := range arches { diff --git a/runtime/mirror/class-inl.h b/runtime/mirror/class-inl.h index d1d8caab00..5a5f717530 100644 --- a/runtime/mirror/class-inl.h +++ b/runtime/mirror/class-inl.h @@ -371,8 +371,21 @@ inline bool Class::ResolvedFieldAccessTest(Class* access_to, ArtField* field, // class rather than the declaring class itself. DexCache* referrer_dex_cache = use_referrers_cache ? this->GetDexCache() : dex_cache; uint32_t class_idx = referrer_dex_cache->GetDexFile()->GetFieldId(field_idx).class_idx_; - // The referenced class has already been resolved with the field, get it from the dex cache. - Class* dex_access_to = referrer_dex_cache->GetResolvedType(class_idx); + // The referenced class has already been resolved with the field, but may not be in the dex + // cache. Using ResolveType here without handles in the caller should be safe since there + // should be no thread suspension due to the class being resolved. + // TODO: Clean this up to use handles in the caller. + Class* dex_access_to; + { + StackHandleScope<2> hs(Thread::Current()); + Handle<mirror::DexCache> h_dex_cache(hs.NewHandle(referrer_dex_cache)); + Handle<mirror::ClassLoader> h_class_loader(hs.NewHandle(access_to->GetClassLoader())); + dex_access_to = Runtime::Current()->GetClassLinker()->ResolveType( + *referrer_dex_cache->GetDexFile(), + class_idx, + h_dex_cache, + h_class_loader); + } DCHECK(dex_access_to != nullptr); if (UNLIKELY(!this->CanAccess(dex_access_to))) { if (throw_on_failure) { @@ -401,8 +414,21 @@ inline bool Class::ResolvedMethodAccessTest(Class* access_to, ArtMethod* method, // class rather than the declaring class itself. DexCache* referrer_dex_cache = use_referrers_cache ? this->GetDexCache() : dex_cache; uint32_t class_idx = referrer_dex_cache->GetDexFile()->GetMethodId(method_idx).class_idx_; - // The referenced class has already been resolved with the method, get it from the dex cache. - Class* dex_access_to = referrer_dex_cache->GetResolvedType(class_idx); + // The referenced class has already been resolved with the method, but may not be in the dex + // cache. Using ResolveType here without handles in the caller should be safe since there + // should be no thread suspension due to the class being resolved. + // TODO: Clean this up to use handles in the caller. + Class* dex_access_to; + { + StackHandleScope<2> hs(Thread::Current()); + Handle<mirror::DexCache> h_dex_cache(hs.NewHandle(referrer_dex_cache)); + Handle<mirror::ClassLoader> h_class_loader(hs.NewHandle(access_to->GetClassLoader())); + dex_access_to = Runtime::Current()->GetClassLinker()->ResolveType( + *referrer_dex_cache->GetDexFile(), + class_idx, + h_dex_cache, + h_class_loader); + } DCHECK(dex_access_to != nullptr); if (UNLIKELY(!this->CanAccess(dex_access_to))) { if (throw_on_failure) { diff --git a/runtime/mirror/class.h b/runtime/mirror/class.h index 99b7769b03..548087e729 100644 --- a/runtime/mirror/class.h +++ b/runtime/mirror/class.h @@ -1505,6 +1505,7 @@ class MANAGED Class FINAL : public Object { // java.lang.Class static GcRoot<Class> java_lang_Class_; + ART_FRIEND_TEST(DexCacheTest, TestResolvedFieldAccess); // For ResolvedFieldAccessTest friend struct art::ClassOffsets; // for verifying offset information friend class Object; // For VisitReferences DISALLOW_IMPLICIT_CONSTRUCTORS(Class); diff --git a/runtime/mirror/dex_cache_test.cc b/runtime/mirror/dex_cache_test.cc index 175997c2dc..43ba362aca 100644 --- a/runtime/mirror/dex_cache_test.cc +++ b/runtime/mirror/dex_cache_test.cc @@ -64,5 +64,33 @@ TEST_F(DexCacheTest, LinearAlloc) { EXPECT_TRUE(linear_alloc->Contains(klass->GetDexCache()->GetResolvedMethods())); } +TEST_F(DexCacheTest, TestResolvedFieldAccess) { + ScopedObjectAccess soa(Thread::Current()); + jobject jclass_loader(LoadDex("Packages")); + ASSERT_TRUE(jclass_loader != nullptr); + Runtime* const runtime = Runtime::Current(); + ClassLinker* const class_linker = runtime->GetClassLinker(); + StackHandleScope<3> hs(soa.Self()); + Handle<mirror::ClassLoader> class_loader(hs.NewHandle( + soa.Decode<mirror::ClassLoader*>(jclass_loader))); + Handle<mirror::Class> klass1 = + hs.NewHandle(class_linker->FindClass(soa.Self(), "Lpackage1/Package1;", class_loader)); + ASSERT_TRUE(klass1.Get() != nullptr); + Handle<mirror::Class> klass2 = + hs.NewHandle(class_linker->FindClass(soa.Self(), "Lpackage2/Package2;", class_loader)); + ASSERT_TRUE(klass2.Get() != nullptr); + EXPECT_EQ(klass1->GetDexCache(), klass2->GetDexCache()); + + EXPECT_NE(klass1->NumStaticFields(), 0u); + for (ArtField& field : klass2->GetSFields()) { + EXPECT_FALSE(( + klass1->ResolvedFieldAccessTest</*throw_on_failure*/ false, + /*use_referrers_cache*/ false>(klass2.Get(), + &field, + field.GetDexFieldIndex(), + klass1->GetDexCache()))); + } +} + } // namespace mirror } // namespace art diff --git a/runtime/stack.cc b/runtime/stack.cc index 4678ac6e50..3b5360c61f 100644 --- a/runtime/stack.cc +++ b/runtime/stack.cc @@ -325,6 +325,14 @@ bool StackVisitor::GetRegisterIfAccessible(uint32_t reg, VRegKind kind, uint32_t reg = (kind == kDoubleHiVReg) ? (2 * reg + 1) : (2 * reg); } + // MIPS32 float registers are used as 64-bit (for MIPS32r2 it is pair + // F(2n)-F(2n+1), and for MIPS32r6 it is 64-bit register F(2n)). When + // accessing upper 32-bits from double, reg + 1 should be used. + if ((kRuntimeISA == InstructionSet::kMips) && (kind == kDoubleHiVReg)) { + DCHECK_ALIGNED(reg, 2); + reg++; + } + if (!IsAccessibleRegister(reg, is_float)) { return false; } diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk index 75c4f34073..06ca09827c 100644 --- a/test/Android.run-test.mk +++ b/test/Android.run-test.mk @@ -153,17 +153,17 @@ JNI_TYPES := checkjni ifeq ($(ART_TEST_JNI_FORCECOPY),true) JNI_TYPES += forcecopy endif -IMAGE_TYPES := image +IMAGE_TYPES := picimage ifeq ($(ART_TEST_RUN_TEST_NO_IMAGE),true) IMAGE_TYPES += no-image endif ifeq ($(ART_TEST_RUN_TEST_MULTI_IMAGE),true) - IMAGE_TYPES := multiimage + IMAGE_TYPES := multipicimage endif -ifeq ($(ART_TEST_PIC_IMAGE),true) - IMAGE_TYPES += picimage +ifeq ($(ART_TEST_NPIC_IMAGE),true) + IMAGE_TYPES += npicimage ifeq ($(ART_TEST_RUN_TEST_MULTI_IMAGE),true) - IMAGE_TYPES := multipicimage + IMAGE_TYPES := multinpicimage endif endif PICTEST_TYPES := npictest @@ -397,9 +397,11 @@ ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),ndebug,$(PREB # 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. +# 004-JniTest is disabled because @CriticalNative is unsupported by generic JNI b/31400248 # 147-stripped-dex-fallback is disabled because it requires --prebuild. # 554-jit-profile-file is disabled because it needs a primary oat file to know what it should save. TEST_ART_BROKEN_FALLBACK_RUN_TESTS := \ + 004-JniTest \ 116-nodex2oat \ 117-nopatchoat \ 118-noimage-dex2oat \ @@ -473,7 +475,9 @@ TEST_ART_BROKEN_INTERPRETER_RUN_TESTS := # Known broken tests for the JIT. # CFI unwinding expects managed frames, and the test does not iterate enough to even compile. JIT # also uses Generic JNI instead of the JNI compiler. +# 004-JniTest is disabled because @CriticalNative is unsupported by generic JNI b/31400248 TEST_ART_BROKEN_JIT_RUN_TESTS := \ + 004-JniTest \ 137-cfi ifneq (,$(filter jit,$(COMPILER_TYPES))) @@ -500,7 +504,6 @@ endif # Known broken tests for the mips32 optimizing compiler backend. TEST_ART_BROKEN_OPTIMIZING_MIPS_RUN_TESTS := \ - 510-checker-try-catch \ ifeq (mips,$(TARGET_ARCH)) ifneq (,$(filter $(OPTIMIZING_COMPILER_TYPES),$(COMPILER_TYPES))) @@ -902,8 +905,9 @@ define define-test-art-run-test prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_no-pic_$(13)) endif else - ifeq ($(9),image) + ifeq ($(9),npicimage) test_groups += ART_RUN_TEST_$$(uc_host_or_target)_IMAGE_RULES + run_test_options += --npic-image # Add the core dependency. ifeq ($(1),host) prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_no-pic_$(13)) @@ -913,16 +917,15 @@ define define-test-art-run-test else ifeq ($(9),picimage) test_groups += ART_RUN_TEST_$$(uc_host_or_target)_PICIMAGE_RULES - run_test_options += --pic-image ifeq ($(1),host) prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_pic_$(13)) else prereq_rule += $$(TARGET_CORE_IMAGE_$$(image_suffix)_pic_$(13)) endif else - ifeq ($(9),multiimage) + ifeq ($(9),multinpicimage) test_groups += ART_RUN_TEST_$$(uc_host_or_target)_IMAGE_RULES - run_test_options += --multi-image + run_test_options += --npic-image --multi-image ifeq ($(1),host) prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_no-pic_multi_$(13)) else @@ -931,7 +934,7 @@ define define-test-art-run-test else ifeq ($(9),multipicimage) test_groups += ART_RUN_TEST_$$(uc_host_or_target)_PICIMAGE_RULES - run_test_options += --pic-image --multi-image + run_test_options += --multi-image ifeq ($(1),host) prereq_rule += $$(HOST_CORE_IMAGE_$$(image_suffix)_pic_multi_$(13)) else diff --git a/test/Packages/Package1.java b/test/Packages/Package1.java new file mode 100644 index 0000000000..6d58246961 --- /dev/null +++ b/test/Packages/Package1.java @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package package1; +class Package1 { + static int someField; +} diff --git a/test/Packages/Package2.java b/test/Packages/Package2.java new file mode 100644 index 0000000000..9ae370a165 --- /dev/null +++ b/test/Packages/Package2.java @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package package2; +class Package2 { + static int someField; +} diff --git a/test/run-test b/test/run-test index 4c294203b3..8fb2adf445 100755 --- a/test/run-test +++ b/test/run-test @@ -132,7 +132,7 @@ multi_image_suffix="" android_root="/system" # By default we will use optimizing. image_args="" -image_suffix="-optimizing" +image_suffix="" while true; do if [ "x$1" = "x--host" ]; then @@ -180,8 +180,8 @@ while true; do elif [ "x$1" = "x--no-image" ]; then have_image="no" shift - elif [ "x$1" = "x--pic-image" ]; then - pic_image_suffix="-pic" + elif [ "x$1" = "x--npic-image" ]; then + pic_image_suffix="-npic" shift elif [ "x$1" = "x--multi-image" ]; then multi_image_suffix="-multi" @@ -258,11 +258,10 @@ while true; do shift elif [ "x$1" = "x--jit" ]; then image_args="--jit" - image_suffix="-jit" + image_suffix="-interpreter" shift elif [ "x$1" = "x--optimizing" ]; then image_args="-Xcompiler-option --compiler-backend=Optimizing" - image_suffix="-optimizing" shift elif [ "x$1" = "x--no-verify" ]; then run_args="${run_args} --no-verify" @@ -608,8 +607,8 @@ if [ "$usage" = "yes" ]; then echo " --dex2oat-swap Use a dex2oat swap file." echo " --instruction-set-features [string]" echo " Set instruction-set-features for compilation." - echo " --pic-image Use an image compiled with position independent code for the" - echo " boot class path." + echo " --npic-image Use an image compiled with non-position independent code " + echo " for the boot class path." echo " --multi-image Use a set of images compiled with dex2oat multi-image for" echo " the boot class path." echo " --pic-test Compile the test code position independent." @@ -678,7 +677,7 @@ function arch_supports_read_barrier() { # Tests named '<number>-checker-*' will also have their CFGs verified with # Checker when compiled with Optimizing on host. if [[ "$TEST_NAME" =~ ^[0-9]+-checker- ]]; then - if [ "$runtime" = "art" -a "$image_suffix" = "-optimizing" -a "$USE_JACK" = "true" ]; then + if [ "$runtime" = "art" -a "$image_suffix" = "" -a "$USE_JACK" = "true" ]; then # Optimizing has read barrier support for certain architectures # only. On other architectures, compiling is disabled when read # barriers are enabled, meaning that we do not produce a CFG file @@ -100,7 +100,7 @@ ANDROID_DATA=$ANDROID_DATA \ $invoke_with $ANDROID_ROOT/bin/$DALVIKVM $lib \ -XXlib:$LIBART \ -Xnorelocate \ - -Ximage:$ANDROID_ROOT/framework/core-optimizing-pic.art \ + -Ximage:$ANDROID_ROOT/framework/core.art \ $DEBUG_OPTION \ "$@" diff --git a/tools/run-jdwp-tests.sh b/tools/run-jdwp-tests.sh index 01dae432e6..74b0f16466 100755 --- a/tools/run-jdwp-tests.sh +++ b/tools/run-jdwp-tests.sh @@ -43,7 +43,7 @@ vm_command="--vm-command=$art" image_compiler_option="" debug="no" verbose="no" -image="-Ximage:/data/art-test/core-optimizing-pic.art" +image="-Ximage:/data/art-test/core.art" vm_args="" # By default, we run the whole JDWP test suite. test="org.apache.harmony.jpda.tests.share.AllTests" diff --git a/tools/run-libcore-tests.sh b/tools/run-libcore-tests.sh index 2a6e172c69..01c7f203f9 100755 --- a/tools/run-libcore-tests.sh +++ b/tools/run-libcore-tests.sh @@ -95,7 +95,7 @@ while true; do if [[ "$1" == "--mode=device" ]]; then vogar_args="$vogar_args --device-dir=/data/local/tmp" vogar_args="$vogar_args --vm-command=/data/local/tmp/system/bin/art" - vogar_args="$vogar_args --vm-arg -Ximage:/data/art-test/core-optimizing.art" + vogar_args="$vogar_args --vm-arg -Ximage:/data/art-test/core.art" shift elif [[ "$1" == "--mode=host" ]]; then # We explicitly give a wrong path for the image, to ensure vogar |