diff options
| -rw-r--r-- | build/Android.common_path.mk | 17 | ||||
| -rw-r--r-- | build/Android.common_test.mk | 4 | ||||
| -rw-r--r-- | dex2oat/dex2oat_test.cc | 23 | ||||
| -rw-r--r-- | dex2oat/linker/image_test.h | 3 | ||||
| -rw-r--r-- | dexoptanalyzer/dexoptanalyzer_test.cc | 4 | ||||
| -rw-r--r-- | imgdiag/imgdiag_test.cc | 34 | ||||
| -rw-r--r-- | libartbase/base/common_art_test.cc | 49 | ||||
| -rw-r--r-- | libartbase/base/common_art_test.h | 6 | ||||
| -rw-r--r-- | oatdump/oatdump_test.h | 9 | ||||
| -rw-r--r-- | runtime/common_runtime_test.cc | 44 | ||||
| -rw-r--r-- | runtime/common_runtime_test.h | 3 | ||||
| -rw-r--r-- | runtime/dexopt_test.cc | 24 | ||||
| -rw-r--r-- | test/118-noimage-dex2oat/run | 21 | ||||
| -rw-r--r-- | test/Android.run-test.mk | 3 | ||||
| -rwxr-xr-x | test/etc/run-test-jar | 45 | ||||
| -rwxr-xr-x | tools/bootjars.sh | 26 |
16 files changed, 118 insertions, 197 deletions
diff --git a/build/Android.common_path.mk b/build/Android.common_path.mk index 775443bfef..96d3648ff6 100644 --- a/build/Android.common_path.mk +++ b/build/Android.common_path.mk @@ -74,21 +74,18 @@ HOST_CORE_IMG_LOCATION := $(HOST_OUT_JAVA_LIBRARIES)/core.art TARGET_CORE_IMG_LOCATION := $(ART_TARGET_TEST_OUT)/core.art # Jar files for core.art. -TEST_CORE_JARS := core-oj core-libart core-simple -HOST_TEST_CORE_JARS := $(addsuffix -hostdex,$(TEST_CORE_JARS)) -TARGET_TEST_CORE_JARS := $(addsuffix -testdex,$(TEST_CORE_JARS)) -HOST_CORE_DEX_LOCATIONS := $(foreach jar,$(HOST_TEST_CORE_JARS), $(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar) +HOST_CORE_DEX_LOCATIONS := $(foreach jar,$(HOST_CORE_JARS), $(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar) ifeq ($(ART_TEST_ANDROID_ROOT),) -TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_TEST_CORE_JARS),/$(DEXPREOPT_BOOT_JAR_DIR)/$(jar).jar) +TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_CORE_JARS),/$(DEXPREOPT_BOOT_JAR_DIR)/$(jar).jar) else -TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_TEST_CORE_JARS),$(ART_TEST_ANDROID_ROOT)/framework/$(jar).jar) +TARGET_CORE_DEX_LOCATIONS := $(foreach jar,$(TARGET_CORE_JARS),$(ART_TEST_ANDROID_ROOT)/framework/$(jar).jar) endif -HOST_CORE_DEX_FILES := $(foreach jar,$(HOST_TEST_CORE_JARS), $(call intermediates-dir-for,JAVA_LIBRARIES,$(jar),t,COMMON)/javalib.jar) -TARGET_CORE_DEX_FILES := $(foreach jar,$(TARGET_TEST_CORE_JARS),$(call intermediates-dir-for,JAVA_LIBRARIES,$(jar), ,COMMON)/javalib.jar) +HOST_CORE_DEX_FILES := $(foreach jar,$(HOST_CORE_JARS), $(call intermediates-dir-for,JAVA_LIBRARIES,$(jar),t,COMMON)/javalib.jar) +TARGET_CORE_DEX_FILES := $(foreach jar,$(TARGET_CORE_JARS),$(call intermediates-dir-for,JAVA_LIBRARIES,$(jar), ,COMMON)/javalib.jar) -ART_HOST_DEX_DEPENDENCIES := $(foreach jar,$(HOST_TEST_CORE_JARS),$(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar) -ART_TARGET_DEX_DEPENDENCIES := $(foreach jar,$(TARGET_TEST_CORE_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar) +ART_HOST_DEX_DEPENDENCIES := $(foreach jar,$(HOST_CORE_JARS),$(HOST_OUT_JAVA_LIBRARIES)/$(jar).jar) +ART_TARGET_DEX_DEPENDENCIES := $(foreach jar,$(TARGET_CORE_JARS),$(TARGET_OUT_JAVA_LIBRARIES)/$(jar).jar) ART_CORE_SHARED_LIBRARIES := libjavacore libopenjdk libopenjdkjvm libopenjdkjvmti ART_CORE_SHARED_DEBUG_LIBRARIES := libopenjdkd libopenjdkjvmd libopenjdkjvmtid diff --git a/build/Android.common_test.mk b/build/Android.common_test.mk index d8014bd55f..17d0232c04 100644 --- a/build/Android.common_test.mk +++ b/build/Android.common_test.mk @@ -129,7 +129,7 @@ define build-art-test-dex LOCAL_DEX_PREOPT := false LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_test.mk $(4) LOCAL_MODULE_TAGS := tests - LOCAL_JAVA_LIBRARIES := $(TARGET_TEST_CORE_JARS) + LOCAL_JAVA_LIBRARIES := $(TARGET_CORE_JARS) LOCAL_MODULE_PATH := $(3) LOCAL_DEX_PREOPT_IMAGE_LOCATION := $(TARGET_CORE_IMG_OUT) ifneq ($(wildcard $(LOCAL_PATH)/$(2)/main.list),) @@ -145,7 +145,7 @@ define build-art-test-dex LOCAL_NO_STANDARD_LIBRARIES := true LOCAL_DEX_PREOPT := false LOCAL_ADDITIONAL_DEPENDENCIES := art/build/Android.common_test.mk $(4) - LOCAL_JAVA_LIBRARIES := $(HOST_TEST_CORE_JARS) + LOCAL_JAVA_LIBRARIES := $(HOST_CORE_JARS) LOCAL_DEX_PREOPT_IMAGE := $(HOST_CORE_IMG_LOCATION) ifneq ($(wildcard $(LOCAL_PATH)/$(2)/main.list),) LOCAL_DX_FLAGS := --multi-dex --main-dex-list=$(LOCAL_PATH)/$(2)/main.list --minimal-main-dex diff --git a/dex2oat/dex2oat_test.cc b/dex2oat/dex2oat_test.cc index 92dd9328b3..97a5f2453e 100644 --- a/dex2oat/dex2oat_test.cc +++ b/dex2oat/dex2oat_test.cc @@ -192,12 +192,24 @@ class Dex2oatTest : public Dex2oatEnvironmentTest { } int Dex2Oat(const std::vector<std::string>& dex2oat_args, std::string* error_msg) { - std::vector<std::string> argv; - if (!CommonRuntimeTest::StartDex2OatCommandLine(&argv, error_msg)) { + Runtime* runtime = Runtime::Current(); + + const std::vector<gc::space::ImageSpace*>& image_spaces = + runtime->GetHeap()->GetBootImageSpaces(); + if (image_spaces.empty()) { + *error_msg = "No image location found for Dex2Oat."; return false; } + std::string image_location = image_spaces[0]->GetImageLocation(); + + std::vector<std::string> argv; + argv.push_back(runtime->GetCompilerExecutable()); + + if (runtime->IsJavaDebuggable()) { + argv.push_back("--debuggable"); + } + runtime->AddCurrentRuntimeFeaturesAsDex2OatArguments(&argv); - Runtime* runtime = Runtime::Current(); if (!runtime->IsVerificationEnabled()) { argv.push_back("--compiler-filter=assume-verified"); } @@ -214,6 +226,11 @@ class Dex2oatTest : public Dex2oatEnvironmentTest { argv.push_back("--host"); } + argv.push_back("--boot-image=" + image_location); + + std::vector<std::string> compiler_options = runtime->GetCompilerOptions(); + argv.insert(argv.end(), compiler_options.begin(), compiler_options.end()); + argv.insert(argv.end(), dex2oat_args.begin(), dex2oat_args.end()); // We must set --android-root. diff --git a/dex2oat/linker/image_test.h b/dex2oat/linker/image_test.h index 5059c51071..cde657380a 100644 --- a/dex2oat/linker/image_test.h +++ b/dex2oat/linker/image_test.h @@ -438,9 +438,6 @@ inline void ImageTest::TestWriteRead(ImageHeader::StorageMode storage_mode) { MemMap::Init(); RuntimeOptions options; - options.emplace_back(GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames()), nullptr); - options.emplace_back( - GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations()), nullptr); std::string image("-Ximage:"); image.append(helper.image_locations[0].GetFilename()); options.push_back(std::make_pair(image.c_str(), static_cast<void*>(nullptr))); diff --git a/dexoptanalyzer/dexoptanalyzer_test.cc b/dexoptanalyzer/dexoptanalyzer_test.cc index f6fd1fb014..b9116f0fb8 100644 --- a/dexoptanalyzer/dexoptanalyzer_test.cc +++ b/dexoptanalyzer/dexoptanalyzer_test.cc @@ -46,10 +46,6 @@ class DexoptAnalyzerTest : public DexoptTest { if (assume_profile_changed) { argv_str.push_back("--assume-profile-changed"); } - argv_str.push_back("--runtime-arg"); - argv_str.push_back(GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames())); - argv_str.push_back("--runtime-arg"); - argv_str.push_back(GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations())); argv_str.push_back("--image=" + GetImageLocation()); argv_str.push_back("--android-data=" + android_data_); diff --git a/imgdiag/imgdiag_test.cc b/imgdiag/imgdiag_test.cc index c789fd78d6..73df2a2b03 100644 --- a/imgdiag/imgdiag_test.cc +++ b/imgdiag/imgdiag_test.cc @@ -34,8 +34,12 @@ namespace art { +static const char* kImgDiagDiffPid = "--image-diff-pid"; +static const char* kImgDiagBootImage = "--boot-image"; static const char* kImgDiagBinaryName = "imgdiag"; +static const char* kImgDiagZygoteDiffPid = "--zygote-diff-pid"; + // from kernel <include/linux/threads.h> #define PID_MAX_LIMIT (4*1024*1024) // Upper bound. Most kernel configs will have smaller max pid. @@ -89,15 +93,25 @@ class ImgDiagTest : public CommonRuntimeTest { EXPECT_TRUE(OS::FileExists(file_path.c_str())) << file_path << " should be a valid file path"; // Run imgdiag --image-diff-pid=$image_diff_pid and wait until it's done with a 0 exit code. + std::string diff_pid_args; + std::string zygote_diff_pid_args; + { + std::stringstream diff_pid_args_ss; + diff_pid_args_ss << kImgDiagDiffPid << "=" << image_diff_pid; + diff_pid_args = diff_pid_args_ss.str(); + } + { + std::stringstream zygote_pid_args_ss; + zygote_pid_args_ss << kImgDiagZygoteDiffPid << "=" << image_diff_pid; + zygote_diff_pid_args = zygote_pid_args_ss.str(); + } + std::string boot_image_args = std::string(kImgDiagBootImage) + "=" + boot_image; + std::vector<std::string> exec_argv = { file_path, - "--image-diff-pid=" + PidToString(image_diff_pid), - "--zygote-diff-pid=" + PidToString(image_diff_pid), - "--runtime-arg", - GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames()), - "--runtime-arg", - GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations()), - "--boot-image=" + boot_image + diff_pid_args, + zygote_diff_pid_args, + boot_image_args }; return ::art::Exec(exec_argv, error_msg); @@ -109,12 +123,6 @@ class ImgDiagTest : public CommonRuntimeTest { } private: - std::string PidToString(pid_t pid) { - std::stringstream sstream; - sstream << pid; - return sstream.str(); - } - std::string runtime_args_image_; std::string boot_image_location_; }; diff --git a/libartbase/base/common_art_test.cc b/libartbase/base/common_art_test.cc index b055bb45aa..987ceb64df 100644 --- a/libartbase/base/common_art_test.cc +++ b/libartbase/base/common_art_test.cc @@ -317,52 +317,9 @@ static std::string GetDexFileName(const std::string& jar_prefix, bool host) { } std::vector<std::string> CommonArtTestImpl::GetLibCoreDexFileNames() { - // Note: This must match the TEST_CORE_JARS in Android.common_path.mk - // because that's what we use for compiling the core.art image. - static const char* const kLibcoreModules[] = { - "core-oj", - "core-libart", - "core-simple", - }; - - std::vector<std::string> result; - result.reserve(arraysize(kLibcoreModules)); - for (const char* module : kLibcoreModules) { - result.push_back(GetDexFileName(module, IsHost())); - } - return result; -} - -std::vector<std::string> CommonArtTestImpl::GetLibCoreDexLocations() { - std::vector<std::string> result = GetLibCoreDexFileNames(); - if (IsHost()) { - // Strip the ANDROID_BUILD_TOP directory including the directory separator '/'. - const char* host_dir = getenv("ANDROID_BUILD_TOP"); - CHECK(host_dir != nullptr); - std::string prefix = host_dir; - CHECK(!prefix.empty()); - if (prefix.back() != '/') { - prefix += '/'; - } - for (std::string& location : result) { - CHECK_GT(location.size(), prefix.size()); - CHECK_EQ(location.compare(0u, prefix.size(), prefix), 0); - location.erase(0u, prefix.size()); - } - } - return result; -} - -std::string CommonArtTestImpl::GetClassPathOption(const char* option, - const std::vector<std::string>& class_path) { - std::string option_string = option; - const char* separator = ""; - for (const std::string& core_dex_file_name : class_path) { - option_string += separator; - option_string += core_dex_file_name; - separator = ":"; - } - return option_string; + return std::vector<std::string>({GetDexFileName("core-oj", IsHost()), + GetDexFileName("core-libart", IsHost()), + GetDexFileName("core-simple", IsHost())}); } std::string CommonArtTestImpl::GetTestAndroidRoot() { diff --git a/libartbase/base/common_art_test.h b/libartbase/base/common_art_test.h index 5c2ae82f7d..32a2628fe6 100644 --- a/libartbase/base/common_art_test.h +++ b/libartbase/base/common_art_test.h @@ -96,12 +96,6 @@ class CommonArtTestImpl { // Gets the paths of the libcore dex files. static std::vector<std::string> GetLibCoreDexFileNames(); - // Gets the locations of the libcore dex files. - static std::vector<std::string> GetLibCoreDexLocations(); - - static std::string GetClassPathOption(const char* option, - const std::vector<std::string>& class_path); - // Returns bin directory which contains host's prebuild tools. static std::string GetAndroidHostToolsDir(); diff --git a/oatdump/oatdump_test.h b/oatdump/oatdump_test.h index 728939f93c..4ee510130b 100644 --- a/oatdump/oatdump_test.h +++ b/oatdump/oatdump_test.h @@ -122,10 +122,6 @@ class OatDumpTest : public CommonRuntimeTest { "-Xmx512m", "--runtime-arg", "-Xnorelocate", - "--runtime-arg", - GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames()), - "--runtime-arg", - GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations()), "--boot-image=" + GetCoreArtLocation(), "--instruction-set=" + std::string(GetInstructionSetString(kRuntimeISA)), "--dex-file=" + GetTestDexFileName(GetAppBaseName().c_str()), @@ -185,11 +181,6 @@ class OatDumpTest : public CommonRuntimeTest { expected_prefixes.push_back("IMAGE BEGIN:"); expected_prefixes.push_back("kDexCaches:"); } else if (mode == kModeOatWithBootImage) { - exec_argv.push_back("--runtime-arg"); - exec_argv.push_back(GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames())); - exec_argv.push_back("--runtime-arg"); - exec_argv.push_back( - GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations())); exec_argv.push_back("--boot-image=" + GetCoreArtLocation()); exec_argv.push_back("--instruction-set=" + std::string( GetInstructionSetString(kRuntimeISA))); diff --git a/runtime/common_runtime_test.cc b/runtime/common_runtime_test.cc index beec609d43..7388c2e307 100644 --- a/runtime/common_runtime_test.cc +++ b/runtime/common_runtime_test.cc @@ -44,7 +44,6 @@ #include "dex/dex_file_loader.h" #include "dex/primitive.h" #include "gc/heap.h" -#include "gc/space/image_space.h" #include "gc_root-inl.h" #include "gtest/gtest.h" #include "handle_scope-inl.h" @@ -112,14 +111,15 @@ void CommonRuntimeTestImpl::SetUp() { std::string min_heap_string(StringPrintf("-Xms%zdm", gc::Heap::kDefaultInitialSize / MB)); std::string max_heap_string(StringPrintf("-Xmx%zdm", gc::Heap::kDefaultMaximumSize / MB)); + RuntimeOptions options; - std::string boot_class_path_string = - GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames()); - std::string boot_class_path_locations_string = - GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations()); + std::string boot_class_path_string = "-Xbootclasspath"; + for (const std::string &core_dex_file_name : GetLibCoreDexFileNames()) { + boot_class_path_string += ":"; + boot_class_path_string += core_dex_file_name; + } options.push_back(std::make_pair(boot_class_path_string, nullptr)); - options.push_back(std::make_pair(boot_class_path_locations_string, nullptr)); options.push_back(std::make_pair("-Xcheck:jni", nullptr)); options.push_back(std::make_pair(min_heap_string, nullptr)); options.push_back(std::make_pair(max_heap_string, nullptr)); @@ -382,38 +382,6 @@ void CommonRuntimeTestImpl::SetUpRuntimeOptionsForFillHeap(RuntimeOptions *optio } } -bool CommonRuntimeTestImpl::StartDex2OatCommandLine(/*out*/std::vector<std::string>* argv, - /*out*/std::string* error_msg) { - DCHECK(argv != nullptr); - DCHECK(argv->empty()); - - Runtime* runtime = Runtime::Current(); - const std::vector<gc::space::ImageSpace*>& image_spaces = - runtime->GetHeap()->GetBootImageSpaces(); - if (image_spaces.empty()) { - *error_msg = "No image location found for Dex2Oat."; - return false; - } - std::string image_location = image_spaces[0]->GetImageLocation(); - - argv->push_back(runtime->GetCompilerExecutable()); - if (runtime->IsJavaDebuggable()) { - argv->push_back("--debuggable"); - } - runtime->AddCurrentRuntimeFeaturesAsDex2OatArguments(argv); - - argv->push_back("--runtime-arg"); - argv->push_back(GetClassPathOption("-Xbootclasspath:", GetLibCoreDexFileNames())); - argv->push_back("--runtime-arg"); - argv->push_back(GetClassPathOption("-Xbootclasspath-locations:", GetLibCoreDexLocations())); - - argv->push_back("--boot-image=" + image_location); - - std::vector<std::string> compiler_options = runtime->GetCompilerOptions(); - argv->insert(argv->end(), compiler_options.begin(), compiler_options.end()); - return true; -} - CheckJniAbortCatcher::CheckJniAbortCatcher() : vm_(Runtime::Current()->GetJavaVM()) { vm_->SetCheckJniAbortHook(Hook, &actual_); } diff --git a/runtime/common_runtime_test.h b/runtime/common_runtime_test.h index f5b9058893..c48ab3629c 100644 --- a/runtime/common_runtime_test.h +++ b/runtime/common_runtime_test.h @@ -97,9 +97,6 @@ class CommonRuntimeTestImpl : public CommonArtTestImpl { return true; } - static bool StartDex2OatCommandLine(/*out*/std::vector<std::string>* argv, - /*out*/std::string* error_msg); - protected: // Allow subclases such as CommonCompilerTest to add extra options. virtual void SetUpRuntimeOptions(RuntimeOptions* options ATTRIBUTE_UNUSED) {} diff --git a/runtime/dexopt_test.cc b/runtime/dexopt_test.cc index b46c93383e..f52a0f9430 100644 --- a/runtime/dexopt_test.cc +++ b/runtime/dexopt_test.cc @@ -46,13 +46,26 @@ void DexoptTest::PostRuntimeCreate() { ReserveImageSpace(); } +static std::string ImageLocation() { + Runtime* runtime = Runtime::Current(); + const std::vector<gc::space::ImageSpace*>& image_spaces = + runtime->GetHeap()->GetBootImageSpaces(); + if (image_spaces.empty()) { + return ""; + } + return image_spaces[0]->GetImageLocation(); +} + bool DexoptTest::Dex2Oat(const std::vector<std::string>& args, std::string* error_msg) { + Runtime* runtime = Runtime::Current(); + std::vector<std::string> argv; - if (!CommonRuntimeTest::StartDex2OatCommandLine(&argv, error_msg)) { - return false; + argv.push_back(runtime->GetCompilerExecutable()); + if (runtime->IsJavaDebuggable()) { + argv.push_back("--debuggable"); } + runtime->AddCurrentRuntimeFeaturesAsDex2OatArguments(&argv); - Runtime* runtime = Runtime::Current(); if (runtime->GetHiddenApiEnforcementPolicy() != hiddenapi::EnforcementPolicy::kDisabled) { argv.push_back("--runtime-arg"); argv.push_back("-Xhidden-api-checks"); @@ -62,6 +75,11 @@ bool DexoptTest::Dex2Oat(const std::vector<std::string>& args, std::string* erro argv.push_back("--host"); } + argv.push_back("--boot-image=" + ImageLocation()); + + std::vector<std::string> compiler_options = runtime->GetCompilerOptions(); + argv.insert(argv.end(), compiler_options.begin(), compiler_options.end()); + argv.insert(argv.end(), args.begin(), args.end()); std::string command_line(android::base::Join(argv, ' ')); diff --git a/test/118-noimage-dex2oat/run b/test/118-noimage-dex2oat/run index d1b9725628..d68b0a0b2c 100644 --- a/test/118-noimage-dex2oat/run +++ b/test/118-noimage-dex2oat/run @@ -31,26 +31,39 @@ if [[ "${flags}" == *--no-relocate* ]] ; then exit 1 fi +if [[ $@ == *--host* ]]; then + framework="${ANDROID_HOST_OUT}/framework" + bpath_suffix="-hostdex" +else + framework="/system/framework" + bpath_suffix="" +fi +bpath="${framework}/core-libart${bpath_suffix}.jar" +bpath="${bpath}:${framework}/conscrypt${bpath_suffix}.jar" +bpath="${bpath}:${framework}/okhttp${bpath_suffix}.jar" +bpath="${bpath}:${framework}/bouncycastle${bpath_suffix}.jar" +bpath_arg="--runtime-option -Xbootclasspath:${bpath}" + # Make sure we can run without an oat file. echo "Run -Xnoimage-dex2oat" -${RUN} ${flags} --runtime-option -Xnoimage-dex2oat +${RUN} ${flags} ${bpath_arg} --runtime-option -Xnoimage-dex2oat return_status1=$? # Make sure we cannot run without an oat file without fallback. echo "Run -Xnoimage-dex2oat -Xno-dex-file-fallback" -${RUN} ${flags} --runtime-option -Xnoimage-dex2oat \ +${RUN} ${flags} ${bpath_arg} --runtime-option -Xnoimage-dex2oat \ --runtime-option -Xno-dex-file-fallback return_status2=$? # Make sure we can run with the oat file. echo "Run -Ximage-dex2oat" -${RUN} ${flags} --runtime-option -Ximage-dex2oat +${RUN} ${flags} ${bpath_arg} --runtime-option -Ximage-dex2oat return_status3=$? # Make sure we can run with the default settings. echo "Run default" -${RUN} ${flags} +${RUN} ${flags} ${bpath_arg} return_status4=$? # Make sure we don't silently ignore an early failure. diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk index ca860e245d..148aea48ae 100644 --- a/test/Android.run-test.mk +++ b/test/Android.run-test.mk @@ -50,6 +50,9 @@ ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += libopenjdkjvmti-target libopenjdkjvmtid ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += $(TARGET_OUT_JAVA_LIBRARIES)/core-libart-testdex.jar ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += $(TARGET_OUT_JAVA_LIBRARIES)/core-oj-testdex.jar ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += $(TARGET_OUT_JAVA_LIBRARIES)/core-simple-testdex.jar +ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += $(TARGET_OUT_JAVA_LIBRARIES)/okhttp-testdex.jar +ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += $(TARGET_OUT_JAVA_LIBRARIES)/bouncycastle-testdex.jar +ART_TEST_TARGET_RUN_TEST_DEPENDENCIES += $(TARGET_OUT_JAVA_LIBRARIES)/conscrypt-testdex.jar # All tests require the host executables. The tests also depend on the core images, but on # specific version depending on the compiler. diff --git a/test/etc/run-test-jar b/test/etc/run-test-jar index 5fede0ed6b..6488d241e8 100755 --- a/test/etc/run-test-jar +++ b/test/etc/run-test-jar @@ -539,38 +539,23 @@ if [ "$USE_JVM" = "y" ]; then exit fi -bpath_modules="core-oj core-libart core-simple" -if [ "${HOST}" = "y" ]; then - framework="${ANDROID_HOST_OUT}/framework" - if [ "${ANDROID_HOST_OUT:0:${#ANDROID_BUILD_TOP}+1}" = "${ANDROID_BUILD_TOP}/" ]; then - framework_location="${ANDROID_HOST_OUT:${#ANDROID_BUILD_TOP}+1}/framework" - else - echo "error: ANDROID_BUILD_TOP/ is not a prefix of ANDROID_HOST_OUT" - echo "ANDROID_BUILD_TOP=${ANDROID_BUILD_TOP}" - echo "ANDROID_HOST_OUT=${ANDROID_HOST_OUT}" - exit - fi - bpath_suffix="-hostdex" -else - framework="${ANDROID_ROOT}/framework" - framework_location="${ANDROID_ROOT}/framework" - bpath_suffix="-testdex" -fi -bpath="" -bpath_locations="" -bpath_separator="" -for bpath_module in ${bpath_modules}; do - bpath+="${bpath_separator}${framework}/${bpath_module}${bpath_suffix}.jar" - bpath_locations+="${bpath_separator}${framework_location}/${bpath_module}${bpath_suffix}.jar" - bpath_separator=":" -done -# Pass down the bootclasspath -FLAGS="${FLAGS} -Xbootclasspath:${bpath}" -FLAGS="${FLAGS} -Xbootclasspath-locations:${bpath_locations}" -COMPILE_FLAGS="${COMPILE_FLAGS} --runtime-arg -Xbootclasspath:${bpath}" -COMPILE_FLAGS="${COMPILE_FLAGS} --runtime-arg -Xbootclasspath-locations:${bpath_locations}" if [ "$HAVE_IMAGE" = "n" ]; then + if [ "${HOST}" = "y" ]; then + framework="${ANDROID_HOST_OUT}/framework" + bpath_suffix="-hostdex" + else + framework="${ANDROID_ROOT}/framework" + bpath_suffix="-testdex" + fi + bpath="${framework}/core-libart${bpath_suffix}.jar" + bpath="${bpath}:${framework}/core-oj${bpath_suffix}.jar" + bpath="${bpath}:${framework}/core-simple${bpath_suffix}.jar" + bpath="${bpath}:${framework}/conscrypt${bpath_suffix}.jar" + bpath="${bpath}:${framework}/okhttp${bpath_suffix}.jar" + bpath="${bpath}:${framework}/bouncycastle${bpath_suffix}.jar" + # Pass down the bootclasspath + FLAGS="${FLAGS} -Xbootclasspath:${bpath}" # Disable image dex2oat - this will forbid the runtime to patch or compile an image. FLAGS="${FLAGS} -Xnoimage-dex2oat" diff --git a/tools/bootjars.sh b/tools/bootjars.sh index ecd7084d17..dca209d580 100755 --- a/tools/bootjars.sh +++ b/tools/bootjars.sh @@ -54,7 +54,7 @@ done if [[ $mode == target ]]; then if [[ $core_jars_only == y ]]; then - selected_env_var=TARGET_TEST_CORE_JARS + selected_env_var=TARGET_CORE_JARS else selected_env_var=PRODUCT_BOOT_JARS fi @@ -64,31 +64,11 @@ elif [[ $mode == host ]]; then echo "Error: --host does not have non-core boot jars, --core required" >&2 exit 1 fi - selected_env_var=HOST_TEST_CORE_JARS + selected_env_var=HOST_CORE_JARS intermediates_env_var=HOST_OUT_COMMON_INTERMEDIATES fi -if [[ $core_jars_only == y ]]; then - # FIXME: The soong invocation we're using for getting the variables does not give us anything - # defined in Android.common_path.mk, otherwise we would just use HOST-/TARGET_TEST_CORE_JARS. - - # The core_jars_list must match the TEST_CORE_JARS variable in the Android.common_path.mk . - core_jars_list="core-oj core-libart core-simple" - core_jars_suffix= - if [[ $mode == target ]]; then - core_jars_suffix=-testdex - elif [[ $mode == host ]]; then - core_jars_suffix=-hostdex - fi - boot_jars_list="" - boot_separator="" - for boot_module in ${core_jars_list}; do - boot_jars_list+="${boot_separator}${boot_module}${core_jars_suffix}" - boot_separator=" " - done -else - boot_jars_list=$(get_build_var "$selected_env_var") -fi +boot_jars_list=$(get_build_var "$selected_env_var") # Print only the list of boot jars. if [[ $print_file_path == n ]]; then |