Merge "Add the 'runtime' namespace."
diff --git a/build/Android.gtest.mk b/build/Android.gtest.mk
index 3dab025..67d85c1 100644
--- a/build/Android.gtest.mk
+++ b/build/Android.gtest.mk
@@ -216,6 +216,7 @@
ART_GTEST_verifier_deps_test_DEX_DEPS := VerifierDeps VerifierDepsMulti MultiDex
ART_GTEST_dex_to_dex_decompiler_test_DEX_DEPS := VerifierDeps DexToDexDecompiler
ART_GTEST_oatdump_app_test_DEX_DEPS := ProfileTestMultiDex
+ART_GTEST_oatdump_test_DEX_DEPS := ProfileTestMultiDex
# The elf writer test has dependencies on core.oat.
ART_GTEST_elf_writer_test_HOST_DEPS := $(HOST_CORE_IMAGE_DEFAULT_64) $(HOST_CORE_IMAGE_DEFAULT_32)
diff --git a/build/apex/Android.bp b/build/apex/Android.bp
index f271ea1..d53a7f2 100644
--- a/build/apex/Android.bp
+++ b/build/apex/Android.bp
@@ -79,9 +79,13 @@
art_tools_device_binaries = art_tools_common_binaries + art_tools_device_only_binaries
art_tools_host_binaries = art_tools_common_binaries + art_tools_host_only_binaries
-// (Some) Libcore native libraries.
+// Libcore native libraries.
libcore_native_shared_libs = [
+ "libjavacore",
"libopenjdk",
+ "libexpat",
+ "libz",
+ "libziparchive"
]
// Java libraries
diff --git a/build/apex/runtests.sh b/build/apex/runtests.sh
index 2448a0d..84c0f4f 100755
--- a/build/apex/runtests.sh
+++ b/build/apex/runtests.sh
@@ -175,7 +175,12 @@
check_library libopenjdkjvmti.so
check_library libprofile.so
# Check that the mounted image contains Android Core libraries.
+ check_library "libexpat${host_suffix}.so"
+ check_library libjavacore.so
+ check_library libjavacrypto.so
check_library libopenjdk.so
+ check_library "libz${host_suffix}.so"
+ check_library libziparchive.so
# Check that the mounted image contains additional required libraries.
check_library libadbconnection.so
@@ -284,6 +289,7 @@
work_dir=$(mktemp -d)
mount_point="$work_dir/image"
+host_suffix=""
trap finish_target EXIT
@@ -317,6 +323,7 @@
work_dir=$(mktemp -d)
mount_point="$work_dir/image"
+host_suffix=""
trap finish_target EXIT
@@ -388,6 +395,7 @@
work_dir=$(mktemp -d)
mount_point="$work_dir/zip"
+host_suffix="-host"
trap finish_host EXIT
diff --git a/oatdump/oatdump_image_test.cc b/oatdump/oatdump_image_test.cc
index de48b04..0a076f0 100644
--- a/oatdump/oatdump_image_test.cc
+++ b/oatdump/oatdump_image_test.cc
@@ -40,13 +40,13 @@
TEST_F(OatDumpTest, TestOatImage) {
TEST_DISABLED_FOR_ARM_AND_MIPS();
std::string error_msg;
- ASSERT_TRUE(Exec(kDynamic, kModeOat, {}, kListAndCode));
+ ASSERT_TRUE(Exec(kDynamic, kModeCoreOat, {}, kListAndCode));
}
TEST_F(OatDumpTest, TestOatImageStatic) {
TEST_DISABLED_FOR_ARM_AND_MIPS();
TEST_DISABLED_FOR_NON_STATIC_HOST_BUILDS();
std::string error_msg;
- ASSERT_TRUE(Exec(kStatic, kModeOat, {}, kListAndCode));
+ ASSERT_TRUE(Exec(kStatic, kModeCoreOat, {}, kListAndCode));
}
} // namespace art
diff --git a/oatdump/oatdump_test.cc b/oatdump/oatdump_test.cc
index e6936f6..7b1de01 100644
--- a/oatdump/oatdump_test.cc
+++ b/oatdump/oatdump_test.cc
@@ -14,6 +14,8 @@
* limitations under the License.
*/
+#include <android-base/file.h>
+
#include "oatdump_test.h"
namespace art {
@@ -90,8 +92,11 @@
// Test is failing on target, b/77469384.
TEST_DISABLED_FOR_TARGET();
std::string error_msg;
+ ASSERT_TRUE(GenerateAppOdexFile(kDynamic, {}));
ASSERT_TRUE(Exec(kDynamic, kModeOat, {"--export-dex-to=" + tmp_dir_}, kListOnly));
- const std::string dex_location = tmp_dir_+ "/core-oj-hostdex.jar_export.dex";
+ const std::string dex_location =
+ tmp_dir_+ "/" + android::base::Basename(GetTestDexFileName(GetAppBaseName().c_str())) +
+ "_export.dex";
const std::string dexdump2 = GetExecutableFilePath("dexdump2",
/*is_debug=*/false,
/*is_static=*/false);
@@ -104,6 +109,7 @@
TEST_DISABLED_FOR_ARM_AND_MIPS();
TEST_DISABLED_FOR_NON_STATIC_HOST_BUILDS();
std::string error_msg;
+ ASSERT_TRUE(GenerateAppOdexFile(kDynamic, {}));
ASSERT_TRUE(Exec(kStatic, kModeOat, {"--export-dex-to=" + tmp_dir_}, kListOnly));
}
diff --git a/oatdump/oatdump_test.h b/oatdump/oatdump_test.h
index dfa659b..3ead8de 100644
--- a/oatdump/oatdump_test.h
+++ b/oatdump/oatdump_test.h
@@ -90,6 +90,7 @@
enum Mode {
kModeOat,
+ kModeCoreOat,
kModeOatWithBootImage,
kModeArt,
kModeSymbolize,
@@ -199,9 +200,11 @@
exec_argv.push_back("--instruction-set=" + std::string(
GetInstructionSetString(kRuntimeISA)));
exec_argv.push_back("--oat-file=" + GetAppOdexName());
+ } else if (mode == kModeCoreOat) {
+ exec_argv.push_back("--oat-file=" + core_oat_location_);
} else {
CHECK_EQ(static_cast<size_t>(mode), static_cast<size_t>(kModeOat));
- exec_argv.push_back("--oat-file=" + core_oat_location_);
+ exec_argv.push_back("--oat-file=" + GetAppOdexName());
}
}
exec_argv.insert(exec_argv.end(), args.begin(), args.end());