diff options
-rw-r--r-- | build/Android.gtest.mk | 46 | ||||
-rw-r--r-- | build/Android.oat.mk | 7 | ||||
-rw-r--r-- | cmdline/cmdline.h | 2 | ||||
-rw-r--r-- | compiler/elf_writer_test.cc | 16 | ||||
-rw-r--r-- | runtime/common_runtime_test.cc | 4 |
5 files changed, 43 insertions, 32 deletions
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk index d376f291cd..c319b1a387 100644 --- a/build/Android.gtest.mk +++ b/build/Android.gtest.mk @@ -119,8 +119,8 @@ ART_GTEST_verifier_deps_test_DEX_DEPS := VerifierDeps MultiDex ART_GTEST_dex_to_dex_decompiler_test_DEX_DEPS := VerifierDeps DexToDexDecompiler # The elf writer test has dependencies on core.oat. -ART_GTEST_elf_writer_test_HOST_DEPS := $(HOST_CORE_IMAGE_optimizing_no-pic_64) $(HOST_CORE_IMAGE_optimizing_no-pic_32) -ART_GTEST_elf_writer_test_TARGET_DEPS := $(TARGET_CORE_IMAGE_optimizing_no-pic_64) $(TARGET_CORE_IMAGE_optimizing_no-pic_32) +ART_GTEST_elf_writer_test_HOST_DEPS := $(HOST_CORE_IMAGE_DEFAULT_64) $(HOST_CORE_IMAGE_DEFAULT_32) +ART_GTEST_elf_writer_test_TARGET_DEPS := $(TARGET_CORE_IMAGE_DEFAULT_64) $(TARGET_CORE_IMAGE_DEFAULT_32) ART_GTEST_dex2oat_environment_tests_HOST_DEPS := \ $(HOST_CORE_IMAGE_optimizing_pic_64) \ @@ -158,63 +158,63 @@ ART_GTEST_dex2oat_test_TARGET_DEPS := \ $(ART_GTEST_dex2oat_environment_tests_TARGET_DEPS) # TODO: document why this is needed. -ART_GTEST_proxy_test_HOST_DEPS := $(HOST_CORE_IMAGE_optimizing_no-pic_64) $(HOST_CORE_IMAGE_optimizing_no-pic_32) +ART_GTEST_proxy_test_HOST_DEPS := $(HOST_CORE_IMAGE_DEFAULT_64) $(HOST_CORE_IMAGE_DEFAULT_32) # The dexdump test requires an image and the dexdump utility. # TODO: rename into dexdump when migration completes ART_GTEST_dexdump_test_HOST_DEPS := \ - $(HOST_CORE_IMAGE_optimizing_no-pic_64) \ - $(HOST_CORE_IMAGE_optimizing_no-pic_32) \ + $(HOST_CORE_IMAGE_DEFAULT_64) \ + $(HOST_CORE_IMAGE_DEFAULT_32) \ $(HOST_OUT_EXECUTABLES)/dexdump2 ART_GTEST_dexdump_test_TARGET_DEPS := \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_64) \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_32) \ + $(TARGET_CORE_IMAGE_DEFAULT_64) \ + $(TARGET_CORE_IMAGE_DEFAULT_32) \ dexdump2 # The dexlayout test requires an image and the dexlayout utility. # TODO: rename into dexdump when migration completes ART_GTEST_dexlayout_test_HOST_DEPS := \ - $(HOST_CORE_IMAGE_optimizing_no-pic_64) \ - $(HOST_CORE_IMAGE_optimizing_no-pic_32) \ + $(HOST_CORE_IMAGE_DEFAULT_64) \ + $(HOST_CORE_IMAGE_DEFAULT_32) \ $(HOST_OUT_EXECUTABLES)/dexlayout \ $(HOST_OUT_EXECUTABLES)/dexdump2 ART_GTEST_dexlayout_test_TARGET_DEPS := \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_64) \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_32) \ + $(TARGET_CORE_IMAGE_DEFAULT_64) \ + $(TARGET_CORE_IMAGE_DEFAULT_32) \ dexlayout \ dexdump2 # The dexlist test requires an image and the dexlist utility. ART_GTEST_dexlist_test_HOST_DEPS := \ - $(HOST_CORE_IMAGE_optimizing_no-pic_64) \ - $(HOST_CORE_IMAGE_optimizing_no-pic_32) \ + $(HOST_CORE_IMAGE_DEFAULT_64) \ + $(HOST_CORE_IMAGE_DEFAULT_32) \ $(HOST_OUT_EXECUTABLES)/dexlist ART_GTEST_dexlist_test_TARGET_DEPS := \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_64) \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_32) \ + $(TARGET_CORE_IMAGE_DEFAULT_64) \ + $(TARGET_CORE_IMAGE_DEFAULT_32) \ dexlist # The imgdiag test has dependencies on core.oat since it needs to load it during the test. # For the host, also add the installed tool (in the base size, that should suffice). For the # target, just the module is fine, the sync will happen late enough. ART_GTEST_imgdiag_test_HOST_DEPS := \ - $(HOST_CORE_IMAGE_optimizing_no-pic_64) \ - $(HOST_CORE_IMAGE_optimizing_no-pic_32) \ + $(HOST_CORE_IMAGE_DEFAULT_64) \ + $(HOST_CORE_IMAGE_DEFAULT_32) \ $(HOST_OUT_EXECUTABLES)/imgdiagd ART_GTEST_imgdiag_test_TARGET_DEPS := \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_64) \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_32) \ + $(TARGET_CORE_IMAGE_DEFAULT_64) \ + $(TARGET_CORE_IMAGE_DEFAULT_32) \ imgdiagd # Oatdump test requires an image and oatfile to dump. ART_GTEST_oatdump_test_HOST_DEPS := \ - $(HOST_CORE_IMAGE_optimizing_no-pic_64) \ - $(HOST_CORE_IMAGE_optimizing_no-pic_32) \ + $(HOST_CORE_IMAGE_DEFAULT_64) \ + $(HOST_CORE_IMAGE_DEFAULT_32) \ $(HOST_OUT_EXECUTABLES)/oatdumpd \ $(HOST_OUT_EXECUTABLES)/oatdumpds ART_GTEST_oatdump_test_TARGET_DEPS := \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_64) \ - $(TARGET_CORE_IMAGE_optimizing_no-pic_32) \ + $(TARGET_CORE_IMAGE_DEFAULT_64) \ + $(TARGET_CORE_IMAGE_DEFAULT_32) \ oatdump # Profile assistant tests requires profman utility. diff --git a/build/Android.oat.mk b/build/Android.oat.mk index e297b4f531..0086660a05 100644 --- a/build/Android.oat.mk +++ b/build/Android.oat.mk @@ -281,3 +281,10 @@ $(eval $(call create-core-oat-target-rule-combination,interp-ac,valgrind,32)) valgrind-test-art-host-dex2oat-target: $(valgrindTARGET_CORE_IMG_OUTS) valgrind-test-art-host-dex2oat: valgrind-test-art-host-dex2oat-host valgrind-test-art-host-dex2oat-target + +# Define a default core image that can be used for things like gtests that +# need some image to run, but don't otherwise care which image is used. +HOST_CORE_IMAGE_DEFAULT_32 := $(HOST_CORE_IMAGE_optimizing_pic_32) +HOST_CORE_IMAGE_DEFAULT_64 := $(HOST_CORE_IMAGE_optimizing_pic_64) +TARGET_CORE_IMAGE_DEFAULT_32 := $(TARGET_CORE_IMAGE_optimizing_pic_32) +TARGET_CORE_IMAGE_DEFAULT_64 := $(TARGET_CORE_IMAGE_optimizing_pic_64) diff --git a/cmdline/cmdline.h b/cmdline/cmdline.h index f4540ff655..98010d7089 100644 --- a/cmdline/cmdline.h +++ b/cmdline/cmdline.h @@ -267,7 +267,7 @@ struct CmdlineArgs { std::string file_name; if (!LocationToFilename(boot_image_location, instruction_set_, &file_name)) { *error_msg = android::base::StringPrintf("No corresponding file for location '%s' exists", - file_name.c_str()); + boot_image_location.c_str()); return false; } diff --git a/compiler/elf_writer_test.cc b/compiler/elf_writer_test.cc index 9669c4a9d3..fa2d78d2e8 100644 --- a/compiler/elf_writer_test.cc +++ b/compiler/elf_writer_test.cc @@ -41,7 +41,6 @@ class ElfWriterTest : public CommonCompilerTest { symbol_name, \ build_map)); \ EXPECT_NE(nullptr, addr); \ - EXPECT_LT(static_cast<uintptr_t>(ART_BASE_ADDRESS), reinterpret_cast<uintptr_t>(addr)); \ if ((expected_value) == nullptr) { \ (expected_value) = addr; \ } \ @@ -60,7 +59,7 @@ TEST_F(ElfWriterTest, dlsym) { void* dl_oatlastword = nullptr; std::unique_ptr<File> file(OS::OpenFileForReading(elf_filename.c_str())); - ASSERT_TRUE(file.get() != nullptr); + ASSERT_TRUE(file.get() != nullptr) << elf_filename; { std::string error_msg; std::unique_ptr<ElfFile> ef(ElfFile::Open(file.get(), @@ -86,17 +85,22 @@ TEST_F(ElfWriterTest, dlsym) { EXPECT_ELF_FILE_ADDRESS(ef, dl_oatlastword, "oatlastword", true); } { + uint8_t* base = reinterpret_cast<uint8_t*>(ART_BASE_ADDRESS); std::string error_msg; std::unique_ptr<ElfFile> ef(ElfFile::Open(file.get(), false, true, /*low_4gb*/false, - &error_msg)); + &error_msg, + base)); CHECK(ef.get() != nullptr) << error_msg; CHECK(ef->Load(file.get(), false, /*low_4gb*/false, &error_msg)) << error_msg; - EXPECT_EQ(dl_oatdata, ef->FindDynamicSymbolAddress("oatdata")); - EXPECT_EQ(dl_oatexec, ef->FindDynamicSymbolAddress("oatexec")); - EXPECT_EQ(dl_oatlastword, ef->FindDynamicSymbolAddress("oatlastword")); + EXPECT_EQ(reinterpret_cast<uintptr_t>(dl_oatdata) + reinterpret_cast<uintptr_t>(base), + reinterpret_cast<uintptr_t>(ef->FindDynamicSymbolAddress("oatdata"))); + EXPECT_EQ(reinterpret_cast<uintptr_t>(dl_oatexec) + reinterpret_cast<uintptr_t>(base), + reinterpret_cast<uintptr_t>(ef->FindDynamicSymbolAddress("oatexec"))); + EXPECT_EQ(reinterpret_cast<uintptr_t>(dl_oatlastword) + reinterpret_cast<uintptr_t>(base), + reinterpret_cast<uintptr_t>(ef->FindDynamicSymbolAddress("oatlastword"))); } } diff --git a/runtime/common_runtime_test.cc b/runtime/common_runtime_test.cc index fc82264b6a..78ba6e7510 100644 --- a/runtime/common_runtime_test.cc +++ b/runtime/common_runtime_test.cc @@ -625,9 +625,9 @@ std::string CommonRuntimeTestImpl::GetCoreFileLocation(const char* suffix) { if (IsHost()) { const char* host_dir = getenv("ANDROID_HOST_OUT"); CHECK(host_dir != nullptr); - location = StringPrintf("%s/framework/core-npic.%s", host_dir, suffix); + location = StringPrintf("%s/framework/core.%s", host_dir, suffix); } else { - location = StringPrintf("/data/art-test/core-npic.%s", suffix); + location = StringPrintf("/data/art-test/core.%s", suffix); } return location; |