Revert^3 "Generate a primary boot image for testing."
This reverts commit 5791123eeefd60d39b2ef1e62817ec9a1346b2af.
Reason for revert: Broke LUCI tests again.
Change-Id: I2481f9a147f8ae25930e30c0b717c139fd93fbdb
diff --git a/compiler/Android.bp b/compiler/Android.bp
index b53707a..e579e36 100644
--- a/compiler/Android.bp
+++ b/compiler/Android.bp
@@ -494,7 +494,6 @@
"art_standalone_gtest_defaults",
"art_compiler_tests_defaults",
],
- data: [":generate-boot-image"],
shared_libs: [
"libprofile",
"libart-compiler",
diff --git a/compiler/art_standalone_compiler_tests.xml b/compiler/art_standalone_compiler_tests.xml
index f723971..f4f5236 100644
--- a/compiler/art_standalone_compiler_tests.xml
+++ b/compiler/art_standalone_compiler_tests.xml
@@ -27,19 +27,6 @@
<option name="push" value="art-gtest-jars-MyClassNatives.jar->/data/local/tmp/art_standalone_compiler_tests/art-gtest-jars-MyClassNatives.jar" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_compiler_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_compiler_tests/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/art_standalone_compiler_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_compiler_tests/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_compiler_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_compiler_tests" />
<option name="module-name" value="art_standalone_compiler_tests" />
diff --git a/dex2oat/Android.bp b/dex2oat/Android.bp
index 86e9c7a..254df02 100644
--- a/dex2oat/Android.bp
+++ b/dex2oat/Android.bp
@@ -564,7 +564,6 @@
"art_standalone_gtest_defaults",
"art_dex2oat_tests_defaults",
],
- data: [":generate-boot-image"],
shared_libs: [
"libartbase",
"libart-compiler",
diff --git a/dex2oat/art_standalone_dex2oat_tests.xml b/dex2oat/art_standalone_dex2oat_tests.xml
index c117a02..6bbe69a 100644
--- a/dex2oat/art_standalone_dex2oat_tests.xml
+++ b/dex2oat/art_standalone_dex2oat_tests.xml
@@ -49,19 +49,6 @@
<option name="push" value="art-gtest-jars-VerifySoftFailDuringClinit.dex->/data/local/tmp/art_standalone_dex2oat_tests/art-gtest-jars-VerifySoftFailDuringClinit.dex" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_dex2oat_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_dex2oat_tests/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/art_standalone_dex2oat_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_dex2oat_tests/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_dex2oat_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_dex2oat_tests" />
<option name="module-name" value="art_standalone_dex2oat_tests" />
diff --git a/dexdump/Android.bp b/dexdump/Android.bp
index 1bc6334..a08aee3 100644
--- a/dexdump/Android.bp
+++ b/dexdump/Android.bp
@@ -99,6 +99,4 @@
"art_standalone_gtest_defaults",
"art_dexdump_tests_defaults",
],
- data: [":generate-boot-image"],
- test_config_template: ":art-gtests-target-standalone-with-boot-image-template",
}
diff --git a/dexlist/Android.bp b/dexlist/Android.bp
index 6a65ef4..1e69bdc 100644
--- a/dexlist/Android.bp
+++ b/dexlist/Android.bp
@@ -84,6 +84,4 @@
"art_standalone_gtest_defaults",
"art_dexlist_tests_defaults",
],
- data: [":generate-boot-image"],
- test_config_template: ":art-gtests-target-standalone-with-boot-image-template",
}
diff --git a/dexoptanalyzer/Android.bp b/dexoptanalyzer/Android.bp
index 1e37b8d..385230b 100644
--- a/dexoptanalyzer/Android.bp
+++ b/dexoptanalyzer/Android.bp
@@ -126,6 +126,5 @@
"art_standalone_gtest_defaults",
"art_dexoptanalyzer_tests_defaults",
],
- data: [":generate-boot-image"],
test_config_template: "art_standalone_dexoptanalyzer_tests.xml",
}
diff --git a/dexoptanalyzer/art_standalone_dexoptanalyzer_tests.xml b/dexoptanalyzer/art_standalone_dexoptanalyzer_tests.xml
index ca10751..475b974 100644
--- a/dexoptanalyzer/art_standalone_dexoptanalyzer_tests.xml
+++ b/dexoptanalyzer/art_standalone_dexoptanalyzer_tests.xml
@@ -35,19 +35,6 @@
<option name="push" value="art-gtest-jars-VerifierDepsMulti.dex->/data/local/tmp/art_standalone_dexoptanalyzer_tests/art-gtest-jars-VerifierDepsMulti.dex" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_dexoptanalyzer_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_dexoptanalyzer_tests/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/art_standalone_dexoptanalyzer_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_dexoptanalyzer_tests/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_dexoptanalyzer_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_dexoptanalyzer_tests" />
<option name="module-name" value="art_standalone_dexoptanalyzer_tests" />
diff --git a/libartbase/Android.bp b/libartbase/Android.bp
index f676dd7..1f034e6 100644
--- a/libartbase/Android.bp
+++ b/libartbase/Android.bp
@@ -332,8 +332,6 @@
"art_standalone_gtest_defaults",
"art_libartbase_tests_defaults",
],
- data: [":generate-boot-image"],
- test_config_template: ":art-gtests-target-standalone-with-boot-image-template",
}
cc_library_headers {
diff --git a/libartbase/base/common_art_test.cc b/libartbase/base/common_art_test.cc
index 4823fc2..b0f1c6c 100644
--- a/libartbase/base/common_art_test.cc
+++ b/libartbase/base/common_art_test.cc
@@ -507,7 +507,12 @@
std::string CommonArtTestImpl::GetTestDexFileName(const char* name) const {
CHECK(name != nullptr);
// The needed jar files for gtest are located next to the gtest binary itself.
- std::string executable_dir = android::base::GetExecutableDirectory();
+ std::string cmdline;
+ bool result = android::base::ReadFileToString("/proc/self/cmdline", &cmdline);
+ CHECK(result);
+ UniqueCPtr<char[]> executable_path(realpath(cmdline.c_str(), nullptr));
+ CHECK(executable_path != nullptr);
+ std::string executable_dir = dirname(executable_path.get());
for (auto ext : {".jar", ".dex"}) {
std::string path = executable_dir + "/art-gtest-jars-" + name + ext;
if (OS::FileExists(path.c_str())) {
@@ -559,19 +564,7 @@
CHECK(host_dir != nullptr);
return std::string(host_dir) + "/apex/art_boot_images/javalib";
}
- // On device, the boot image is generated by `generate-boot-image`.
- // In a standalone test, the boot image is located next to the gtest binary itself.
- std::string path = android::base::GetExecutableDirectory() + "/art_boot_images";
- if (OS::DirectoryExists(path.c_str())) {
- return path;
- }
- // In a chroot test, the boot image is located in a predefined location.
- path = "/data/local/tmp/art_boot_images";
- if (OS::DirectoryExists(path.c_str())) {
- return path;
- }
- LOG(FATAL) << "Boot image not found";
- UNREACHABLE();
+ return GetPrebuiltPrimaryBootImageDir();
}
std::string CommonArtTestImpl::GetCoreFileLocation(const char* suffix) {
diff --git a/oatdump/Android.bp b/oatdump/Android.bp
index 5724280..7335e09 100644
--- a/oatdump/Android.bp
+++ b/oatdump/Android.bp
@@ -235,6 +235,5 @@
"art_standalone_gtest_defaults",
"art_oatdump_tests_defaults",
],
- data: [":generate-boot-image"],
test_config: "art_standalone_oatdump_tests.xml",
}
diff --git a/oatdump/art_standalone_oatdump_tests.xml b/oatdump/art_standalone_oatdump_tests.xml
index bcd94ed..573096b 100644
--- a/oatdump/art_standalone_oatdump_tests.xml
+++ b/oatdump/art_standalone_oatdump_tests.xml
@@ -25,20 +25,6 @@
<option name="push" value="art-gtest-jars-ProfileTestMultiDex.jar->/data/local/tmp/art_standalone_oatdump_tests/art-gtest-jars-ProfileTestMultiDex.jar" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_oatdump_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_oatdump_tests/art_boot_images" />
- <!-- `compiler-filter=speed-profile` is required because this test checks the compiled code in the boot image. -->
- <option name="run-command" value="/data/local/tmp/art_standalone_oatdump_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_oatdump_tests/art_boot_images --compiler-filter=speed-profile" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_oatdump_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_oatdump_tests" />
<option name="module-name" value="art_standalone_oatdump_tests" />
diff --git a/profman/Android.bp b/profman/Android.bp
index 0317fe6..8069a4b 100644
--- a/profman/Android.bp
+++ b/profman/Android.bp
@@ -193,7 +193,6 @@
"art_standalone_gtest_defaults",
"art_profman_tests_defaults",
],
- data: [":generate-boot-image"],
shared_libs: [
"libprofile",
],
diff --git a/profman/art_standalone_profman_tests.xml b/profman/art_standalone_profman_tests.xml
index a8d34b2..acf4bd7 100644
--- a/profman/art_standalone_profman_tests.xml
+++ b/profman/art_standalone_profman_tests.xml
@@ -27,19 +27,6 @@
<option name="push" value="art-gtest-jars-ProfileTestMultiDex.jar->/data/local/tmp/art_standalone_profman_tests/art-gtest-jars-ProfileTestMultiDex.jar" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_profman_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_profman_tests/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/art_standalone_profman_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_profman_tests/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_profman_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_profman_tests" />
<option name="module-name" value="art_standalone_profman_tests" />
diff --git a/runtime/art_standalone_runtime_compiler_tests.xml b/runtime/art_standalone_runtime_compiler_tests.xml
index 3ae3a82..ca21146 100644
--- a/runtime/art_standalone_runtime_compiler_tests.xml
+++ b/runtime/art_standalone_runtime_compiler_tests.xml
@@ -27,19 +27,6 @@
<option name="push" value="art-gtest-jars-StaticLeafMethods.jar->/data/local/tmp/art_standalone_runtime_compiler_tests/art-gtest-jars-StaticLeafMethods.jar" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_runtime_compiler_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_runtime_compiler_tests/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/art_standalone_runtime_compiler_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_runtime_compiler_tests/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_runtime_compiler_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_runtime_compiler_tests" />
<option name="module-name" value="art_standalone_runtime_compiler_tests" />
diff --git a/runtime/art_standalone_runtime_tests.xml b/runtime/art_standalone_runtime_tests.xml
index 5200529..9129a8f 100644
--- a/runtime/art_standalone_runtime_tests.xml
+++ b/runtime/art_standalone_runtime_tests.xml
@@ -61,19 +61,6 @@
<option name="push" value="art-gtest-jars-XandY.jar->/data/local/tmp/art_standalone_runtime_tests/art-gtest-jars-XandY.jar" />
</target_preparer>
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art_standalone_runtime_tests/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art_standalone_runtime_tests/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/art_standalone_runtime_tests/generate-boot-image --output-dir=/data/local/tmp/art_standalone_runtime_tests/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art_standalone_runtime_tests/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.GTest" >
<option name="native-test-device-path" value="/data/local/tmp/art_standalone_runtime_tests" />
<option name="module-name" value="art_standalone_runtime_tests" />
diff --git a/runtime/common_runtime_test.cc b/runtime/common_runtime_test.cc
index a14d386..e8c8385 100644
--- a/runtime/common_runtime_test.cc
+++ b/runtime/common_runtime_test.cc
@@ -99,7 +99,13 @@
options.push_back(std::make_pair(boot_class_path_string, nullptr));
options.push_back(std::make_pair(boot_class_path_locations_string, nullptr));
if (use_boot_image_) {
- options.emplace_back("-Ximage:" + GetImageLocation(), nullptr);
+ std::string image_location = GetImageLocation();
+ if (!IsHost()) {
+ // On target, the boot image can be outdated due to an ART update. In such case, the profile
+ // will be used for generating a boot image in memory.
+ image_location += "!/apex/com.android.art/etc/boot-image.prof";
+ }
+ options.emplace_back("-Ximage:" + image_location, nullptr);
}
options.push_back(std::make_pair("-Xcheck:jni", nullptr));
options.push_back(std::make_pair(min_heap_string, nullptr));
diff --git a/test/Android.bp b/test/Android.bp
index ca6816c..07980fb 100644
--- a/test/Android.bp
+++ b/test/Android.bp
@@ -150,13 +150,6 @@
srcs: ["art-gtests-target-standalone-root-template.xml"],
}
-// Test configuration template for standalone ART gtests run with a boot image on target (not
-// bundled with the ART APEX).
-filegroup {
- name: "art-gtests-target-standalone-with-boot-image-template",
- srcs: ["art-gtests-target-standalone-with-boot-image-template.xml"],
-}
-
art_cc_defaults {
name: "art_standalone_test_defaults",
defaults: [
@@ -1312,7 +1305,6 @@
// We need the ART testing apex, which contains all gtest binaries.
// Note that due to build system and linker constraints the gtests must be in the apex.
":com.android.art.testing",
- ":generate-boot-image",
],
test_suites: ["general-tests"],
test_config: "art-gtests-target-chroot.xml",
diff --git a/test/art-gtests-target-chroot.xml b/test/art-gtests-target-chroot.xml
index 5fd76f8..aa2473d 100644
--- a/test/art-gtests-target-chroot.xml
+++ b/test/art-gtests-target-chroot.xml
@@ -21,20 +21,6 @@
<target_preparer class="com.android.tradefed.targetprep.DisableSELinuxTargetPreparer" />
<target_preparer class="com.android.tradefed.targetprep.ArtChrootPreparer" />
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/art-test-chroot/data/local/tmp/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/art-test-chroot/data/local/tmp/art_boot_images" />
- <!-- `compiler-filter=speed-profile` is required because OatDumpTest checks the compiled code in the boot image. -->
- <option name="run-command" value="chroot /data/local/tmp/art-test-chroot /data/local/tmp/generate-boot-image --output-dir=/data/local/tmp/art_boot_images --compiler-filter=speed-profile" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/art-test-chroot/data/local/tmp/art_boot_images" />
- </target_preparer>
-
<test class="com.android.tradefed.testtype.ArtGTest" >
<!-- TODO(b/147821328): These tests do not work since they need to write to /system -->
<option name="exclude-filter" value="HiddenApiTest.DexDomain_System*:OatFileAssistantTest.SystemFrameworkDir" />
diff --git a/test/art-gtests-target-standalone-with-boot-image-template.xml b/test/art-gtests-target-standalone-with-boot-image-template.xml
deleted file mode 100644
index f028f2f..0000000
--- a/test/art-gtests-target-standalone-with-boot-image-template.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2022 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.
--->
-<!-- Note: This test config file for {MODULE} is generated from a template. -->
-<configuration description="Runs {MODULE}.">
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="push" value="{MODULE}->/data/local/tmp/{MODULE}/{MODULE}" />
- <option name="append-bitness" value="true" />
- </target_preparer>
-
- <target_preparer class="com.android.compatibility.common.tradefed.targetprep.FilePusher">
- <option name="cleanup" value="true" />
- <option name="append-bitness" value="true" />
- <option name="push-file" key="generate-boot-image" value="/data/local/tmp/{MODULE}/generate-boot-image" />
- </target_preparer>
-
- <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
- <option name="throw-if-cmd-fail" value="true" />
- <option name="run-command" value="mkdir -p /data/local/tmp/{MODULE}/art_boot_images" />
- <option name="run-command" value="/data/local/tmp/{MODULE}/generate-boot-image --output-dir=/data/local/tmp/{MODULE}/art_boot_images" />
- <option name="teardown-command" value="rm -rf /data/local/tmp/{MODULE}/art_boot_images" />
- </target_preparer>
-
- <test class="com.android.tradefed.testtype.GTest" >
- <option name="native-test-device-path" value="/data/local/tmp/{MODULE}" />
- <option name="module-name" value="{MODULE}" />
- <option name="ld-library-path-32" value="/apex/com.android.art/lib" />
- <option name="ld-library-path-64" value="/apex/com.android.art/lib64" />
- </test>
-
- <!-- When this test is run in a Mainline context (e.g. with `mts-tradefed`), only enable it if
- one of the Mainline modules below is present on the device used for testing. -->
- <object type="module_controller" class="com.android.tradefed.testtype.suite.module.MainlineTestModuleController">
- <!-- ART Mainline Module (internal version). -->
- <option name="mainline-module-package-name" value="com.google.android.art" />
- <!-- ART Mainline Module (external (AOSP) version). -->
- <option name="mainline-module-package-name" value="com.android.art" />
- </object>
-
- <!-- Only run tests if the device under test is SDK version 31 (Android 12) or above. -->
- <object type="module_controller" class="com.android.tradefed.testtype.suite.module.Sdk31ModuleController" />
-</configuration>
diff --git a/test/generate-boot-image/Android.bp b/test/generate-boot-image/Android.bp
deleted file mode 100644
index 4b56c53..0000000
--- a/test/generate-boot-image/Android.bp
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Copyright (C) 2022 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 {
- // See: http://go/android-license-faq
- // A large-scale-change added 'default_applicable_licenses' to import
- // all of the 'license_kinds' from "art_license"
- // to get the below license kinds:
- // SPDX-license-identifier-Apache-2.0
- default_applicable_licenses: ["art_license"],
-}
-
-art_cc_binary {
- name: "generate-boot-image",
- defaults: [
- "art_defaults",
- ],
- host_supported: false,
- compile_multilib: "both",
- multilib: {
- lib32: {
- suffix: "32",
- },
- lib64: {
- suffix: "64",
- },
- },
- required: [
- "dex2oat",
- ],
- srcs: ["generate-boot-image.cc"],
- shared_libs: [
- "libbase",
- "liblog",
- ],
- static_libs: [
- "libartbase",
- ],
- tidy: true,
- tidy_flags: [
- "-format-style=file",
- ],
-}
diff --git a/test/generate-boot-image/generate-boot-image.cc b/test/generate-boot-image/generate-boot-image.cc
deleted file mode 100644
index 9144064..0000000
--- a/test/generate-boot-image/generate-boot-image.cc
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (C) 2022 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.
- */
-
-/** A commandline tool to generate a primary boot image for testing. */
-
-#include <sys/stat.h>
-#include <sysexits.h>
-
-#include <algorithm>
-#include <cstdlib>
-#include <string>
-#include <vector>
-
-#ifdef __ANDROID__
-#include <android/api-level.h>
-#endif
-
-#include "android-base/stringprintf.h"
-#include "android-base/strings.h"
-#include "arch/instruction_set.h"
-#include "base/file_utils.h"
-#include "base/globals.h"
-#include "base/os.h"
-
-namespace art {
-
-namespace {
-
-using ::android::base::Join;
-using ::android::base::Split;
-using ::android::base::StringPrintf;
-
-std::string GetCompilerExecutable() {
- std::string compiler_executable = GetArtBinDir() + "/dex2oat";
- if (kIsDebugBuild) {
- compiler_executable += 'd';
- }
- compiler_executable += Is64BitInstructionSet(kRuntimeISA) ? "64" : "32";
- return compiler_executable;
-}
-
-std::vector<std::string> GetDexFiles() {
- const char* bootclasspath_env = getenv("BOOTCLASSPATH");
- CHECK_NE(bootclasspath_env, nullptr);
- std::vector<std::string> dex_files = Split(bootclasspath_env, ":");
- std::string art_root = GetArtRoot();
-// Java core libraries are located in a different location on old versions. We need to rewrite the
-// locations to match where the testing scripts actually place Java core libraries.
-#ifdef __ANDROID__
- if (android_get_device_api_level() <= __ANDROID_API_Q__) {
- for (std::string& dex_file : dex_files) {
- dex_file = android::base::StringReplace(
- dex_file, "/apex/com.android.runtime", art_root, /*all=*/false);
- }
- }
-#endif
- auto end = std::remove_if(dex_files.begin(), dex_files.end(), [&](const std::string& file) {
- return !android::base::StartsWith(file, art_root);
- });
- dex_files.erase(end, dex_files.end());
- return dex_files;
-}
-
-// Joins a list of commandline args into a single string, where each part is quoted with double
-// quotes. Note that this is a naive implementation that does NOT escape existing double quotes,
-// which is fine since we don't have existing double quotes in the args in this particular use case
-// and this code is never used in production.
-std::string BuildCommand(const std::vector<std::string>& args) {
- std::string command = "";
- for (const std::string& arg : args) {
- if (!command.empty()) {
- command += " ";
- }
- command += '"' + arg + '"';
- }
- return command;
-}
-
-int GenerateBootImage(const std::string& dir, const std::string& compiler_filter) {
- std::string isa = GetInstructionSetString(kRuntimeISA);
-
- std::vector<std::string> args;
- args.push_back(GetCompilerExecutable());
-
- std::vector<std::string> dex_files = GetDexFiles();
- args.push_back("--runtime-arg");
- args.push_back("-Xbootclasspath:" + Join(dex_files, ":"));
- for (const std::string& file : dex_files) {
- args.push_back("--dex-file=" + file);
- }
-
- args.push_back("--instruction-set=" + isa);
- args.push_back(StringPrintf("--base=0x%08x", ART_BASE_ADDRESS));
- args.push_back("--compiler-filter=" + compiler_filter);
- args.push_back(StringPrintf("--profile-file=%s/etc/boot-image.prof", GetArtRoot().c_str()));
- args.push_back("--avoid-storing-invocation");
- args.push_back("--generate-debug-info");
- args.push_back("--generate-build-id");
- args.push_back("--image-format=lz4hc");
- args.push_back("--strip");
- args.push_back("--android-root=out/empty");
-
- std::string path = StringPrintf("%s/%s", dir.c_str(), isa.c_str());
- if (!OS::DirectoryExists(path.c_str())) {
- CHECK_EQ(mkdir(path.c_str(), S_IRWXU), 0);
- }
- args.push_back(StringPrintf("--image=%s/boot.art", path.c_str()));
- args.push_back(StringPrintf("--oat-file=%s/boot.oat", path.c_str()));
-
- int exit_code = system(BuildCommand(args).c_str());
- if (exit_code != 0) {
- LOG(ERROR) << "dex2oat invocation failed. Exit code: " << exit_code;
- }
- return exit_code;
-}
-
-} // namespace
-} // namespace art
-
-int main(int argc, char** argv) {
- android::base::InitLogging(argv, android::base::LogdLogger(android::base::SYSTEM));
-
- std::string dir = "";
- // Set the compiler filter to `verify` by default to make test preparation faster.
- std::string compiler_filter = "verify";
- for (int i = 1; i < argc; i++) {
- std::string_view arg{argv[i]};
- if (android::base::ConsumePrefix(&arg, "--output-dir=")) {
- dir = arg;
- } else if (android::base::ConsumePrefix(&arg, "--compiler-filter=")) {
- compiler_filter = arg;
- } else {
- LOG(ERROR) << android::base::StringPrintf("Unrecognized argument: '%s'", argv[i]);
- exit(EX_USAGE);
- }
- }
-
- if (dir.empty()) {
- LOG(ERROR) << "--output-dir must be specified";
- exit(EX_USAGE);
- }
-
- return art::GenerateBootImage(dir, compiler_filter);
-}
diff --git a/tools/buildbot-build.sh b/tools/buildbot-build.sh
index 8a1c10b..b89efa2 100755
--- a/tools/buildbot-build.sh
+++ b/tools/buildbot-build.sh
@@ -133,8 +133,6 @@
make_command+=" event-log-tags"
# Needed to extract prebuilt APEXes.
make_command+=" deapexer"
- # Needed to generate the primary boot image for testing.
- make_command+=" generate-boot-image"
# Build/install the required APEXes.
make_command+=" ${apexes[*]}"
make_command+=" ${specific_targets}"
diff --git a/tools/buildbot-sync.sh b/tools/buildbot-sync.sh
index 277839b..8c3e8ff 100755
--- a/tools/buildbot-sync.sh
+++ b/tools/buildbot-sync.sh
@@ -110,20 +110,3 @@
activate_apex com.android.tzdata
activate_apex com.android.conscrypt
activate_apex com.android.os.statsd
-
-# Generate primary boot images on device for testing.
-for b in {32,64}; do
- basename="generate-boot-image$b"
- bin_on_host="$ANDROID_PRODUCT_OUT/system/bin/$basename"
- bin_on_device="/data/local/tmp/$basename"
- output_dir="/data/local/tmp/art_boot_images"
- if [ -f $bin_on_host ]; then
- msginfo "Generating the primary boot image ($b-bit)..."
- adb push "$bin_on_host" "$ART_TEST_CHROOT$bin_on_device"
- adb shell mkdir -p "$ART_TEST_CHROOT$output_dir"
- # `compiler-filter=speed-profile` is required because OatDumpTest checks the compiled code in
- # the boot image.
- adb shell chroot "$ART_TEST_CHROOT" \
- "$bin_on_device" --output-dir=$output_dir --compiler-filter=speed-profile
- fi
-done